From cb34181bd62e7f33305f125aa67abe113d626c6a Mon Sep 17 00:00:00 2001 From: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Date: Thu, 26 Aug 2021 01:19:24 +0530 Subject: [PATCH 001/219] Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- .../Asite (US Gov.)/Readme.md | 33 + .../apiDefinition.swagger.json | 957 ++++++++++++++++++ .../Asite (US Gov.)/apiProperties.json | 55 + 3 files changed, 1045 insertions(+) create mode 100644 certified-connectors/Asite (US Gov.)/Readme.md create mode 100644 certified-connectors/Asite (US Gov.)/apiDefinition.swagger.json create mode 100644 certified-connectors/Asite (US Gov.)/apiProperties.json diff --git a/certified-connectors/Asite (US Gov.)/Readme.md b/certified-connectors/Asite (US Gov.)/Readme.md new file mode 100644 index 0000000000..b4769d1835 --- /dev/null +++ b/certified-connectors/Asite (US Gov.)/Readme.md @@ -0,0 +1,33 @@ +# About + +Asite is an open construction platform that enables organizations with comprehensive range of solutions connect dispersed teams across the lifecycle of capital assets by collaborate, plan, design, and build with seamless information sharing across the entire supply chain which helps capital project owners stay at the forefront of innovation, maintaining a golden thread of information. + +The Asite connector helps to build a connection between two systems for file exchange. The connector collaborates both systems by uploading and downloading files based on triggers. + +# Pre-requisites + +- An active Asite CDE Subscription +- An active Microsoft Power Automate subscription +- An active workflow configuration in Asite platform, configured workflow trigger with the type "Microsoft Flow" + +# Actions + +Following are the internal and external actions used during connection flow to share a file + +| **Name** | **Trigger / Action Name** | **API EndPoint** | **Description** | **Visibility** | +| -------- | ------------------------- | ---------------- | --------------- | -------------- | +| Select Project Name || /workspaceList | It will list out all the Asite's projects where you have access. | Internal | +| Select Folder Name || /folderAndFileList | It will list out all the accessible folders based on your access from the selected Project. | Internal | +| When an Asite workflow event is triggered | Trigger | /asitePullDataWebhook | To upload file with metadata and download file on defined folder based on triggered workflow. | Important | +| Get file content | Action | /downloadFileByUrl | Retrieves the file content from Asite | Important | +| List of configured Triggers from Asite Platform | | /triggerList | To display list of configured Triggers from Asite Platform | Internal | +| Delete configured trigger || /deleteAsitePullDataWebhook/{id} | To Delete configured trigger | Internal | +| Get Dynamic Schema based on project and folder | | /getFolderAttributes | Get Dynamic Schema based on project and folder | Internal | +| Set file metadata | Action | /saveMetadataForUpload | Retrieves standard and custom metadata | Important | +| Create file | Action | /uploadFileFromExternalSystem | Upload a file in Asite project folder. | Important | +| Get dynamic schema based on project Id and trigger Id || /getFolderAttributesFromTrigger | Get dynamic schema based on project Id and trigger Id | Internal | +| Select Folder Name || /getSubFolderList | List out all the accessible folders based on your access from the above selected Project. | Internal | + +# Reference Link: + +Please refer help document for authorize connector and configure flow. [Click here](https://adoddleqa2ak.asite.com/adoddle%20online%20help/Asite_Integration_via_Microsoft_Power_Automate.htm) \ No newline at end of file diff --git a/certified-connectors/Asite (US Gov.)/apiDefinition.swagger.json b/certified-connectors/Asite (US Gov.)/apiDefinition.swagger.json new file mode 100644 index 0000000000..59af0ee6ae --- /dev/null +++ b/certified-connectors/Asite (US Gov.)/apiDefinition.swagger.json @@ -0,0 +1,957 @@ +{ + "swagger": "2.0", + "info": { + "title": "Asite (US Gov.)", + "description": "Transform how your teams work together with the Asite connector, the ultimate collaboration solution to build connections between business systems.", + "version": "1.0.0", + "contact": { + "name": "Asite Solutions Limited", + "url": "https://www.asite.com/contact-support", + "email": "support@asite.com" + } + }, + "host": "integrationusgov.asite.com", + "basePath": "/api", + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.asite.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.asite.com/legal-terms-of-use#privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Collaboration;Content and Files" + } + ], + "schemes": [ + "https" + ], + "consumes": [ + "application/json", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json" + ], + "paths": { + "/workspaceList": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "projectName": { + "type": "string", + "description": "projectName" + }, + "cloudUrl": { + "type": "string", + "description": "cloudUrl" + } + } + } + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "operationId": "GET_ASITE_PROJECT_LIST", + "summary": "Select Project Name", + "description": "List out all the Asite's projects where you have access. Please contact support@asite.com for access on required project.", + "x-ms-visibility": "internal", + "consumes": [ + "application/x-www-form-urlencoded" + ], + "parameters": [ + { + "name": "getJsonResult", + "in": "query", + "required": true, + "type": "boolean" + }, + { + "name": "Accept", + "in": "header", + "type": "string", + "required": true + } + ] + } + }, + "/folderAndFileList": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "object", + "properties": { + "folderData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "folder_title": { + "type": "string", + "description": "Please select Folder Name followed by Project name." + }, + "folderId": { + "type": "string", + "description": "Unique identification of folder." + } + } + }, + "description": "There is array of folder data." + } + } + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "Select Folder Name", + "description": "List out all the accessible folders based on your access from the above selected Project.", + "operationId": "GET_ASITE_FOLDER_LIST", + "x-ms-visibility": "internal", + "consumes": [ + "application/x-www-form-urlencoded" + ], + "parameters": [ + { + "name": "projectId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "isWorkspace", + "in": "query", + "required": true, + "type": "integer" + }, + { + "name": "isFolderDataReq", + "in": "query", + "required": true, + "type": "boolean" + }, + { + "name": "Accept", + "in": "header", + "type": "string", + "required": true + } + ] + } + }, + "/getSubFolderList": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "folder_title": { + "type": "string", + "description": "Please select Folder Name followed by Project name." + }, + "folderId": { + "type": "string", + "description": "Unique identification of folder." + }, + "folderPath": { + "type": "string", + "description": "Unique identification of folder path." + }, + "hasSubFolder": { + "type": "boolean", + "description": "identification of sub-folder." + } + } + }, + "description": "There is array of folder data." + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "Select Folder Name", + "description": "List out all the accessible folders based on your access from the above selected Project.", + "operationId": "GET_ASITE_SUB_FOLDER_LIST", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "projectId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "hasSubFolder", + "in": "query", + "required": true, + "type": "boolean" + } + ] + } + }, + "/asitePullDataWebhook": { + "x-ms-notification-content": { + "description": "When trigger is initiated in Asite.", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GET_DYNAMIC_SCHEMA_PROJECTID_TRIGGERID", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "triggerId": { + "parameter": "resourceId" + }, + "Accept": "*/*" + } + }, + "x-ms-dynamic-properties": { + "operationId": "GET_DYNAMIC_SCHEMA_PROJECTID_TRIGGERID", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "triggerId": { + "parameterReference": "body/resourceId" + }, + "Accept": { + "value": "*/*" + } + } + } + } + }, + "post": { + "responses": { + "201": { + "description": "Created" + } + }, + "summary": "When an Asite workflow event is triggered", + "description": "Triggers a workflow event to upload a file to the project folder.", + "operationId": "ASITE_TRIGGER_EVENT", + "x-ms-trigger": "single", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "x-ms-visibility": "internal", + "default": "*/*" + }, + { + "name": "projectId", + "type": "string", + "required": true, + "in": "query", + "description": "Select a Project", + "x-ms-dynamic-values": { + "operationId": "GET_ASITE_PROJECT_LIST", + "value-title": "projectName", + "value-path": "cloudUrl", + "parameters": { + "getJsonResult": true, + "Accept": "*/*" + } + }, + "x-ms-dynamic-list": { + "operationId": "GET_ASITE_PROJECT_LIST", + "itemValuePath": "cloudUrl", + "itemTitlePath": "projectName", + "parameters": { + "getJsonResult": { + "value": true + }, + "Accept": { + "value": "*/*" + } + } + }, + "x-ms-summary": "Project Name" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "webhookUrl": { + "type": "string", + "description": "Webhook URL", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "x-ms-summary": "Webhook URL" + }, + "resourceId": { + "type": "string", + "description": "Select a Trigger configured for selected project", + "x-ms-summary": "Trigger Name", + "x-ms-dynamic-values": { + "operationId": "ASITE_TRIGGER_LIST", + "value-title": "triggerName", + "value-path": "triggerId", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "ruleContext": 3 + } + }, + "x-ms-dynamic-list": { + "operationId": "ASITE_TRIGGER_LIST", + "itemValuePath": "triggerId", + "itemTitlePath": "triggerName", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "ruleContext": { + "value": 3 + } + } + } + }, + "resourceType": { + "type": "integer", + "description": "Resource Type", + "x-ms-summary": "Resource Type", + "x-ms-visibility": "internal", + "default": 1 + } + }, + "required": [ + "webhookUrl", + "resourceId", + "resourceType" + ] + } + } + ] + } + }, + "/downloadFileByUrl": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "format": "binary", + "description": "The content of the file.", + "type": "string", + "x-ms-summary": "File Content" + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "Get file content", + "description": "Retrieves the file content from Asite.", + "operationId": "FILE_DOWNLOAD_BY_URL", + "parameters": [ + { + "name": "downloadUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Select 'DirectLink' metadata to download a file", + "x-ms-summary": "URL Selection" + } + ] + } + }, + "/triggerList": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "triggerId": { + "type": "integer", + "format": "int32", + "description": "Trigger ID" + }, + "triggerName": { + "type": "string", + "description": "Trigger Name" + } + } + } + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "List of configured Triggers from Asite Platform", + "description": "List of configured Triggers from Asite Platform", + "operationId": "ASITE_TRIGGER_LIST", + "x-ms-visibility": "internal", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "projectId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "ruleContext", + "in": "query", + "required": true, + "type": "integer" + } + ] + } + }, + "/deleteAsitePullDataWebhook/{id}": { + "delete": { + "responses": { + "200": { + "description": "OK, Success" + } + }, + "summary": "Delete configured trigger", + "description": "Delete configured trigger", + "operationId": "DELETE_TRIGGER_WEBHOOK", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "x-ms-url-encoding": "single", + "type": "string" + } + ] + } + }, + "/getFolderAttributes": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": {} + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "Get Dynamic Schema based on project and folder", + "description": "Get Dynamic Schema based on project and folder", + "operationId": "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "x-ms-visibility": "internal", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "x-ms-visibility": "internal", + "default": "*/*" + }, + { + "name": "projectId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "isRequiredField", + "in": "query", + "required": true, + "type": "boolean", + "default": false + } + ] + } + }, + "/saveMetadataForUpload": { + "post": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "string", + "title": "Metadata Id" + } + } + }, + "summary": "Set file metadata", + "description": "Retrieves the defined file meta-data and sets the values during the file upload process. Note: it is mandatory to set this action before the Create file action is triggered.", + "operationId": "SET_FILE_METADATA", + "parameters": [ + { + "name": "projectId", + "description": "Select a Project", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Project Name", + "x-ms-dynamic-values": { + "operationId": "GET_ASITE_PROJECT_LIST", + "value-title": "projectName", + "value-path": "cloudUrl", + "parameters": { + "getJsonResult": true, + "Accept": "*/*" + } + }, + "x-ms-dynamic-list": { + "operationId": "GET_ASITE_PROJECT_LIST", + "itemValuePath": "cloudUrl", + "itemTitlePath": "projectName", + "parameters": { + "getJsonResult": { + "value": true + }, + "Accept": { + "value": "*/*" + } + } + } + }, + { + "name": "folderId", + "description": "Select a Folder", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Folder Name", + "x-ms-dynamic-values": { + "capability": "file-picker", + "value-title": "folder_title", + "value-path": "folderId", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "fileFilter": [], + "hasSubFolder": true + } + }, + "x-ms-dynamic-tree": { + "settings": { + "canSelectParentNodes": true, + "canSelectLeafNodes": false + }, + "open": { + "operationId": "GET_ASITE_FOLDER_LIST", + "itemValuePath": "folderId", + "itemTitlePath": "folder_title", + "itemFullTitlePath": "folderPath", + "itemIsParent": "true", + "itemsPath": "folderData", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "isFolderDataReq": { + "value": true + }, + "isWorkspace": { + "value": 1 + }, + "Accept": { + "value": "*/*" + } + } + }, + "browse": { + "operationId": "GET_ASITE_SUB_FOLDER_LIST", + "itemValuePath": "folderId", + "itemTitlePath": "folder_title", + "itemFullTitlePath": "folderPath", + "itemIsParent": "true", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "folderId": { + "selectedItemValuePath": "folderId" + }, + "hasSubFolder": { + "value": true + } + } + } + } + }, + { + "name": "items", + "in": "body", + "required": true, + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "folderId": { + "parameter": "folderId" + }, + "Accept": "*/*", + "isRequiredField": true + } + }, + "x-ms-dynamic-properties": { + "operationId": "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "folderId": { + "parameterReference": "folderId" + }, + "Accept": { + "value": "*/*" + }, + "isRequiredField": { + "value": true + } + } + } + } + } + ] + } + }, + "/uploadFileFromExternalSystem": { + "post": { + "responses": { + "200": { + "description": "OK, Success", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "folderId": { + "parameter": "folderId" + }, + "Accept": "*/*", + "isRequiredField": false + } + }, + "x-ms-dynamic-properties": { + "operationId": "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "folderId": { + "parameterReference": "folderId" + }, + "Accept": { + "value": "*/*" + }, + "isRequiredField": { + "value": false + } + } + } + } + }, + "400": { + "description": "BAD REQUEST, Invalid request" + } + }, + "summary": "Create file", + "description": "Upload a file in Asite project folder.", + "operationId": "UPLOAD_BINARY_FILE", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "projectId", + "description": "Select a Project", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Project Name", + "x-ms-dynamic-values": { + "operationId": "GET_ASITE_PROJECT_LIST", + "value-title": "projectName", + "value-path": "cloudUrl", + "parameters": { + "getJsonResult": true, + "Accept": "*/*" + } + }, + "x-ms-dynamic-list": { + "operationId": "GET_ASITE_PROJECT_LIST", + "itemValuePath": "cloudUrl", + "itemTitlePath": "projectName", + "parameters": { + "getJsonResult": { + "value": true + }, + "Accept": { + "value": "*/*" + } + } + } + }, + { + "name": "folderId", + "description": "Select a Folder", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "Folder Name", + "x-ms-dynamic-values": { + "capability": "file-picker", + "value-title": "folder_title", + "value-path": "folderId", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "fileFilter": [], + "hasSubFolder": true + } + }, + "x-ms-dynamic-tree": { + "settings": { + "canSelectParentNodes": true, + "canSelectLeafNodes": false + }, + "open": { + "operationId": "GET_ASITE_FOLDER_LIST", + "itemValuePath": "folderId", + "itemTitlePath": "folder_title", + "itemFullTitlePath": "folderPath", + "itemIsParent": "true", + "itemsPath": "folderData", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "isFolderDataReq": { + "value": true + }, + "isWorkspace": { + "value": 1 + }, + "Accept": { + "value": "*/*" + } + } + }, + "browse": { + "operationId": "GET_ASITE_SUB_FOLDER_LIST", + "itemValuePath": "folderId", + "itemTitlePath": "folder_title", + "itemFullTitlePath": "folderPath", + "itemIsParent": "true", + "parameters": { + "projectId": { + "parameterReference": "projectId" + }, + "folderId": { + "selectedItemValuePath": "folderId" + }, + "hasSubFolder": { + "value": true + } + } + } + } + }, + { + "name": "fileName", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "File Name", + "description": "Enter File name with file type extension" + }, + { + "name": "metadataId", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "File Metadata", + "description": "Select Metadata ID from Dynamic Content section" + }, + { + "name": "fileBinary", + "in": "body", + "x-ms-summary": "File Content", + "required": true, + "schema": { + "type": "string", + "format": "binary", + "description": "Binary file content" + } + } + ] + } + }, + "/getFolderAttributesFromTrigger": { + "get": { + "responses": { + "200": { + "description": "OK, Success", + "schema": {} + } + }, + "summary": "Get dynamic schema based on project Id and trigger Id", + "parameters": [ + { + "name": "projectId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "triggerId", + "in": "query", + "required": true, + "type": "string" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string" + } + ], + "description": "Get dynamic schema based on project Id and trigger Id", + "operationId": "GET_DYNAMIC_SCHEMA_PROJECTID_TRIGGERID", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "x-ms-visibility": "internal" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauthusgov.asite.com/oauth/authorize", + "tokenUrl": "https://oauthusgov.asite.com/oauth/token", + "scopes": { + "DOCUMENT_READ DOCUMENT_WRITE": "DOCUMENT_READ DOCUMENT_WRITE" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "DOCUMENT_READ DOCUMENT_WRITE" + ] + } + ], + "tags": [], + "x-ms-capabilities": { + "file-picker": { + "open": { + "operationId": "GET_ASITE_FOLDER_LIST", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "isFolderDataReq": { + "value": true + }, + "isWorkspace": { + "value": 1 + }, + "Accept": { + "value": "*/*" + } + } + }, + "browse": { + "operationId": "GET_ASITE_SUB_FOLDER_LIST", + "parameters": { + "projectId": { + "parameter": "projectId" + }, + "folderId": { + "value-property": "folderId" + }, + "hasSubFolder": { + "value": true + } + } + }, + "value-title": "folder_title", + "value-path": "folderId", + "value-media-property": "MediaType", + "value-folder-property": "hasSubFolder" + } + } +} \ No newline at end of file diff --git a/certified-connectors/Asite (US Gov.)/apiProperties.json b/certified-connectors/Asite (US Gov.)/apiProperties.json new file mode 100644 index 0000000000..7b93d8074b --- /dev/null +++ b/certified-connectors/Asite (US Gov.)/apiProperties.json @@ -0,0 +1,55 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "{{ client id }}", + "scopes": [ + "DOCUMENT_READ DOCUMENT_WRITE" + ], + "redirectMode": "Global", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauthusgov.asite.com/oauth/authorize" + }, + "tokenUrl": { + "value": "https://oauthusgov.asite.com/oauth/token" + }, + "refreshUrl": { + "value": "https://oauthusgov.asite.com/oauth/token" + } + } + } + } + }, + "iconBrandColor": "#1F344A", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "set Host URL", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@queryParameters('projectId')", + "x-ms-apimTemplate-operationName": [ + "GET_ASITE_FOLDER_LIST", + "ASITE_TRIGGER_LIST", + "DELETE_TRIGGER_WEBHOOK", + "GET_CUSTOM_ATTR_DYNAMIC_SCHEMA", + "SET_FILE_METADATA", + "UPLOAD_BINARY_FILE", + "GET_DYNAMIC_SCHEMA_PROJECTID_TRIGGERID", + "ASITE_TRIGGER_EVENT", + "GET_ASITE_SUB_FOLDER_LIST" + ] + } + } + ], + "publisher": "Asite Solutions Limited", + "stackOwner": "Asite Solutions Limited" + } +} \ No newline at end of file From 5eb8ac76b73e6e7e2e0eae2c6fca1a4a661155e7 Mon Sep 17 00:00:00 2001 From: robin-larsson <79982549+robin-larsson@users.noreply.github.com> Date: Thu, 9 Sep 2021 03:12:36 +0300 Subject: [PATCH 002/219] Added additional fields to SendMessage methods (#1092) Co-authored-by: Robin Larsson --- .../SmartDialog/apiDefinition.swagger.json | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/certified-connectors/SmartDialog/apiDefinition.swagger.json b/certified-connectors/SmartDialog/apiDefinition.swagger.json index 3d5b4ed611..514e91cc95 100644 --- a/certified-connectors/SmartDialog/apiDefinition.swagger.json +++ b/certified-connectors/SmartDialog/apiDefinition.swagger.json @@ -205,6 +205,23 @@ "type": "string", "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", "title": "Attachment Uri" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional", + "title": "Customer Data" + }, + "AdMessage": { + "type": "boolean", + "description": "Optional overriding flag for marking the message as an ad message", + "title": "Ad Message" + }, + "DlrUrl": { + "type": "string", + "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", + "example": "https://api.company.com/Dlr", + "title": "Dlr Url" } }, "required": [ @@ -733,6 +750,12 @@ "type": "string", "description": "Delivery report Url that will recieve a callback when the sendprocess completes.", "title": "Dlr Url" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional", + "title": "Customer Data" } }, "required": [ From 3f9feb1041240b5d3b4bc43af6ea5d39c0047ad0 Mon Sep 17 00:00:00 2001 From: kian-beetroot <70074720+kian-beetroot@users.noreply.github.com> Date: Thu, 9 Sep 2021 20:56:51 +0200 Subject: [PATCH 003/219] Assently E-Sign updates readme file (#1096) * Adds Assently E-Sign custom connector for certification * fixes bug of getting file content of Assently case documents * Updates Assently readme file. --- certified-connectors/Assently E-Sign/Readme.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/certified-connectors/Assently E-Sign/Readme.md b/certified-connectors/Assently E-Sign/Readme.md index e08376901d..70c4f8d8cd 100644 --- a/certified-connectors/Assently E-Sign/Readme.md +++ b/certified-connectors/Assently E-Sign/Readme.md @@ -1,22 +1,22 @@  ## Assently E-Sign Connector -The Assently E-Sign connector makes functionality of the Assently E-Sign API available for use in Power Automate. +The Assently E-Sign Connector makes functionality of Assently E-Sign available for use in Microsoft Power Automate (Flow). ## Pre-requisites -An Assently E-Sign account with Miscrosoft Flow license. [Create a free trial account](https://app.assently.com/user/signup) +An Assently E-Sign Account with Microsoft Flow add-on. [Create a free Assently E-Sign Trial Account](https://app.assently.com/user/signup). ## How to get credentials -After the Microsoft Flow feature is enabled by the admin on your Assently account, a personal access token can be generated under your user profile. +When the Microsoft Flow add-on is enabled by the Administrator on your Assently E-Sign Account, a Personal Access Token can be generated under your user profile. -## API documentation -The API documentation can be found [here](https://app.assently.com/api) +## API Documentation +See Assently E-Sign's [API Documentation](https://app.assently.com/api). -## Deployment instructions -Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. +## Deployment Instructions +Please use the [instructions on Microsoft Power Platform Connectors CLI](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate (Flow) and Power Apps. ## Supported Operations @@ -49,4 +49,4 @@ Please use [these instructions](https://docs.microsoft.com/en-us/connectors/cust - **Delete a Case:** By this action you can delete a Case permanently. If the case is sent, it will be recalled prior to deletion. - **Recall a case:** By this action you can recall a case if it is already sent. Finished cases cannot be recalled. - **Get a case by temporary id:** By this action you can get a case by its temporaryId. A temporary id is a 4+ digit number that is only valid for 24 hours. -- **Get file content of a Case Document:** By this action you can get file of a case by caseId and documentId. \ No newline at end of file +- **Get file content of a Case Document:** By this action you can get file of a case by caseId and documentId. From 836a42da91bc17eeb82b43d5c5a16113bc3ac5d2 Mon Sep 17 00:00:00 2001 From: Adi Winata Date: Fri, 10 Sep 2021 02:10:14 +0700 Subject: [PATCH 004/219] Add new actions (#1095) * Add new actions * swagger definition * paths definitions updated --- .../Tallyfy/apiDefinition.swagger.json | 592 +++++++++++++++++- certified-connectors/Tallyfy/readme.md | 31 +- 2 files changed, 613 insertions(+), 10 deletions(-) diff --git a/certified-connectors/Tallyfy/apiDefinition.swagger.json b/certified-connectors/Tallyfy/apiDefinition.swagger.json index 149dd7ecab..156fe784ea 100644 --- a/certified-connectors/Tallyfy/apiDefinition.swagger.json +++ b/certified-connectors/Tallyfy/apiDefinition.swagger.json @@ -3,10 +3,15 @@ "info": { "title": "Tallyfy", "description": "Tallyfy is beautiful workflow software that helps you create, track and scale any repeatable process. It helps you eliminate the use of flowcharts, forms and emails by digitizing manual business processes and approval workflows.", + "contact": { + "name": "Tallyfy", + "url": "https://tallyfy.com", + "email": "support@tallyfy.com" + }, "version": "2.0.0" }, - "host": "api.tallyfy.com", - "basePath": "/", + "host": "go.tallyfy.com", + "basePath": "/api", "schemes": [ "https" ], @@ -194,6 +199,38 @@ "x-ms-visibility": "internal" } }, + "/organizations/{org}/guests": { + "get": { + "tags": [ + "Account", + "Guest" + ], + "description": "Get guests in an organization", + "operationId": "Get_Guests", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Get guests in an organization" + } + }, "/me/organizations": { "get": { "tags": [ @@ -1725,6 +1762,543 @@ "summary": "Launch a Process", "x-ms-visibility": "important" } + }, + "/organizations/{org}/completed-tasks": { + "post": { + "tags": [ + "Task", + "One off task", + "Complete task" + ], + "produces": [ + "application/json" + ], + "description": "Complete one off task", + "operationId": "Completed_One_Off_Task", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "task_id": { + "type": "string", + "description": "Task ID" + }, + "is_approved": { + "type": "boolean", + "description": "starred" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Complete One Off Task" + } + }, + "/organizations/{org}/completed-tasks/{task}": { + "delete": { + "tags": [ + "Task", + "One off task", + "Reopen task" + ], + "produces": [ + "application/json" + ], + "description": "Reopen one off task", + "operationId": "Reopen_One_Off_Task", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task Id", + "x-ms-summary": "Task Id", + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Reopen One Off Task" + } + }, + "/organizations/{org}/runs/{run}/completed-tasks": { + "post": { + "tags": [ + "Process Task", + "Complete task" + ], + "produces": [ + "application/json" + ], + "description": "Complete process task", + "operationId": "Completed_Process_Task", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization", + "x-ms-visibility": "important" + }, + { + "name": "run", + "in": "path", + "required": true, + "type": "string", + "description": "Run Id", + "x-ms-summary": "Run", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "task_id": { + "type": "string", + "description": "Task ID" + }, + "is_approved": { + "type": "boolean", + "description": "starred" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Complete process task" + } + }, + "/organizations/{org}/runs/{run}/completed-tasks/{task}": { + "post": { + "tags": [ + "Process Task", + "Reopen task" + ], + "produces": [ + "application/json" + ], + "description": "Reopen process task", + "operationId": "Reopen_Process_Task", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization", + "x-ms-visibility": "important" + }, + { + "name": "run", + "in": "path", + "required": true, + "type": "string", + "description": "Run Id", + "x-ms-summary": "Run", + "x-ms-visibility": "important" + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task Id", + "x-ms-summary": "Task", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "task_id": { + "type": "string", + "description": "Task ID" + }, + "is_approved": { + "type": "boolean", + "description": "starred" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Reopen One Off Task" + } + }, + "/organizations/{org}/tasks/{task}/comment": { + "post": { + "tags": [], + "produces": [], + "description": "task deadline, in date-time format", + "operationId": "Comment_Task", + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization", + "x-ms-visibility": "important" + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task Id", + "x-ms-summary": "Task", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "content": { + "title": "Content", + "type": "string", + "description": "Comment content", + "x-ms-visibility": "important" + }, + "label": { + "title": "Comment Label", + "type": "string", + "description": "Comment label", + "x-ms-visibility": "internal", + "default": "comment", + "enum": [ + "comment", + "problem", + "resolve" + ] + } + }, + "x-ms-visibility": "internal", + "required": [ + "content", + "label" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Add comment, report issue, resolve issue on a task", + "x-ms-visibility": "internal" + } + }, + "/processes/micro-functions/organizations/{org}/tasks/{task}/edit-deadline": { + "put": { + "tags": [ + "Task", + "Edit", + "Deadline" + ], + "description": "Edit deadline of a task", + "operationId": "Edit_Task_Deadline", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization" + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task id", + "x-ms-summary": "Task Id" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Deadline": { + "title": "New Task Deadline", + "type": "string", + "description": "New task deadline", + "x-ms-visibility": "important" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Edit task deadline", + "x-ms-visibility": "internal" + } + }, + "/processes/micro-functions/organizations/{org}/tasks/{task}/remove-guest/{guest}": { + "put": { + "tags": [ + "Task", + "Edit", + "Guest" + ], + "description": "Remove guest of a task", + "operationId": "Remove_Guest", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization" + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task id", + "x-ms-summary": "Task id" + }, + { + "name": "guest", + "in": "path", + "required": true, + "type": "string", + "description": "Guest email", + "x-ms-summary": "Guest Email" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Remove guest assigned", + "x-ms-visibility": "internal" + } + }, + "/processes/micro-functions/organizations/{org}/tasks/{task}/remove-assignee/{member}": { + "put": { + "tags": [ + "Task", + "Edit", + "Assignee" + ], + "description": "Remove assignee of a task", + "operationId": "Remove_Assignee", + "produces": [ + "application/text" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization" + }, + { + "name": "task", + "in": "path", + "required": true, + "type": "string", + "description": "Task id", + "x-ms-summary": "Task Id" + }, + { + "name": "member", + "in": "path", + "required": true, + "type": "string", + "description": "Member id", + "x-ms-summary": "Member Id" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Remove assignee", + "x-ms-visibility": "internal" + } + }, + "/processes/micro-functions/organizations/{org}/blueprints/{blueprint}/steps/{step}/edit-step-type": { + "put": { + "tags": [ + "Blueprint", + "Step", + "Edit", + "Step Type" + ], + "description": "Edit step type", + "operationId": "Edit_Step_Type", + "produces": [ + "application/text" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-summary": "Organization" + }, + { + "name": "blueprint", + "in": "path", + "required": true, + "type": "string", + "description": "Blueprint id", + "x-ms-summary": "Blueprint Id" + }, + { + "name": "step", + "in": "path", + "required": true, + "type": "string", + "description": "Step id", + "x-ms-summary": "Step Id" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "stepType": { + "title": "New step type", + "type": "string", + "enum": [ + "all", + "any" + ], + "description": "New step type", + "x-ms-visibility": "important" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object" + } + } + }, + "summary": "Edit step type", + "x-ms-visibility": "internal" + } } }, "definitions": { @@ -3944,5 +4518,19 @@ "name": "Groups", "description": "Group ops" } + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://tallyfy.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://tallyfy.com/policy-management/" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management" + } ] } \ No newline at end of file diff --git a/certified-connectors/Tallyfy/readme.md b/certified-connectors/Tallyfy/readme.md index 1c94e77321..506f684c98 100644 --- a/certified-connectors/Tallyfy/readme.md +++ b/certified-connectors/Tallyfy/readme.md @@ -1,31 +1,46 @@ # Tallyfy -Tallyfy is beautiful workflow software that helps you create, track, and scale any repeatable process. It helps you eliminate the use of flowcharts, forms and emails by digitizing manual business processes and approval workflows. This connector offers the ability to integrate your other applications with actions in Tallyfy. +Tallyfy is beautiful workflow software that helps you create, track, and scale any repeatable process. It helps you eliminate the use of flowcharts, forms and emails by digitizing manual business processes and approval workflows. This connector offers the ability to integrate your other applications with actions in Tallyfy. ## Pre-requisites + To use this connector, all you need to have is an account on [Tallyfy](https://go.tallyfy.com/). You will be prompted to login upon creation of your first Flow. For further information - please visit the [Tallyfy integrations](https://tallyfy.com/integrations/). - ## API documentation + https://go.tallyfy.com/api/ You will need an access token. This is found under the `integrations` tab in the `settings` page of your Tallyfy account. - ## Supported Operations + The connector supports the following operations: -* ```Create a Task```: Create a new Task for yourself or other Members. -* ```Get a Member's tasks```: Get all Tasks that belong to a specific Member. -* ```Invite a new member```: Invite a new Member to your organization. -* ```Launch a Process```: Launch a Process using a Blueprint. +* ```Get_Organization_Users```: Get organization's users. +* ```Get_Guests```: Get guests in an organization. +* ```Get_User_Organizations```: Get user's organizations. +* ```Get_User_Tasks```: Get a member's tasks. +* ```Invite_User_To_Organization```: Invite a new member to your organization. +* ```Create_Task```: Create a task. +* ```Get_Checklists```: Get Blueprints. +* ```Create_Run```: Launch a process using a blueprint. +* ```Completed_One_Off_Task```: Complete one off task. +* ```Reopen_One_Off_Task```: Reopen one off task. +* ```Completed_Process_Task```: Complete process task. +* ```Reopen_Process_Task```: Reopen process task. +* ```Comment_Task```: Add comment / Report issue / Resolve issue on a tasks. +* ```Edit_Task_Deadline```: Edit deadline of a task. +* ```Remove_Guest```: Remove guest of a task. +* ```Remove_Assignee```: Remove assignee of a task. +* ```Edit_Step_Type```: Edit step type. ## Deployment instructions -Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps ## Further Support + For further support, checkout our [support documentation](https://support.tallyfy.com/) or [contact us](https://tallyfy.com/contact-us/) From 7fe8c8a3f2d1d19b8af1deb257866f90df8f98ef Mon Sep 17 00:00:00 2001 From: Roman Rylov Date: Thu, 9 Sep 2021 22:12:45 +0300 Subject: [PATCH 005/219] Fix operations for remove webhook action (#1090) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Fix operation Id for webhook * Fix merge issues Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- .../Plumsail Documents/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Plumsail Documents/apiDefinition.swagger.json b/certified-connectors/Plumsail Documents/apiDefinition.swagger.json index 52919e95c3..d69b18928f 100644 --- a/certified-connectors/Plumsail Documents/apiDefinition.swagger.json +++ b/certified-connectors/Plumsail Documents/apiDefinition.swagger.json @@ -270,7 +270,7 @@ "tags": [ "ProcessesTriggers" ], - "operationId": "FlowV1ProcessesFlowTriggersByUserIdByProcessIdByHookIdDelete", + "operationId": "FlowV1ProcessesFlowTriggersByProcessIdByHookIdDelete", "consumes": [ "application/json" ], From 9b7bab3dbf7b49d9ab40eec10653e70db76aed45 Mon Sep 17 00:00:00 2001 From: Martin <45198686+ridlees@users.noreply.github.com> Date: Tue, 14 Sep 2021 00:15:14 +0200 Subject: [PATCH 006/219] removes schema from default response (#1103) Otherwise, I fail Connector archive validation --- .../tyntec-WA/apiDefinition.swagger.json | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/certified-connectors/tyntec-WA/apiDefinition.swagger.json b/certified-connectors/tyntec-WA/apiDefinition.swagger.json index c04550a7f8..b00e604f68 100644 --- a/certified-connectors/tyntec-WA/apiDefinition.swagger.json +++ b/certified-connectors/tyntec-WA/apiDefinition.swagger.json @@ -8,7 +8,7 @@ "url": "https://www.tyntec.com/get-help-support", "email": "support@tyntec.com" }, - "version": "2.1" + "version": "2.3" }, "host": "api.tyntec.com", "basePath": "/", @@ -506,13 +506,6 @@ "type": "array", "items": {} } - }, - "default": { - "description": "default", - "schema": { - "type": "object", - "properties": {} - } } }, "x-ms-visibility": "internal", @@ -555,4 +548,4 @@ "propertyValue": "Communication;Commerce" } ] -} + } \ No newline at end of file From 7a87deb2625a852452d4a8a50cd32c2fa01b1ce9 Mon Sep 17 00:00:00 2001 From: Adi Winata Date: Tue, 14 Sep 2021 06:34:34 +0700 Subject: [PATCH 007/219] Add publisher and stackOwner on API properties (#1100) * Add new actions * swagger definition * paths definitions updated * Add publisher and stackOwner on API properties --- certified-connectors/Tallyfy/apiProperties.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/certified-connectors/Tallyfy/apiProperties.json b/certified-connectors/Tallyfy/apiProperties.json index fe8786af15..d5e8a6855d 100644 --- a/certified-connectors/Tallyfy/apiProperties.json +++ b/certified-connectors/Tallyfy/apiProperties.json @@ -28,6 +28,8 @@ } } }, + "publisher": "Tallyfy, Inc", + "stackOwner": "Tallyfy, Inc", "iconBrandColor": "#f5f5f5", "capabilities": [] } From 2dbef8062ec0c1d8085b7fb2b4e1a9e5ad1349e6 Mon Sep 17 00:00:00 2001 From: Emil Bech Madsen <46725931+emilbm@users.noreply.github.com> Date: Wed, 15 Sep 2021 01:06:32 +0200 Subject: [PATCH 008/219] Lassox/v1.2 (#1102) * LassoX: Initial Certification Commit * LassoX: Fixed validation errors * LassoX: Removed all Danish translations * - LassoX: Fixed missing comma in apiProperties.json causing submission process to fail. * LassoX: Added missing newline * - Added a new endpoint, RelatedProductionUnits, which returns a list of the object type found in "ProductionUnitInformation" - Changed description of cityName a little. - Changed version number to 1.2 * - Changed some descriptions and titles for phonenumber and faxnumber. --- .../LassoX/apiDefinition.swagger.json | 391 +++++++++++++++++- certified-connectors/LassoX/readme.md | 1 + 2 files changed, 383 insertions(+), 9 deletions(-) diff --git a/certified-connectors/LassoX/apiDefinition.swagger.json b/certified-connectors/LassoX/apiDefinition.swagger.json index c5902b871d..273ba3be3b 100644 --- a/certified-connectors/LassoX/apiDefinition.swagger.json +++ b/certified-connectors/LassoX/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "Lasso X", "description": "This connector allows you to use the Lasso X API to retrieve information about the People, Companies and Production Units in the Danish CVR Registry. \n\nRequires an API Key from Lasso X. For more information, visit www.lassox.com", - "version": "1.0", + "version": "1.2", "contact": { "name": "Lasso X Support", "url": "https://lassox.com/support/tech-support", @@ -186,7 +186,7 @@ "type": "integer", "format": "int32", "description": "Postal code", - "title": "Postalcode" + "title": "Postal Code" }, "postalDistrict": { "type": "string", @@ -195,7 +195,7 @@ }, "cityName": { "type": "string", - "description": "Name of the city", + "description": "Name of the city (Can be empty, use 'postalDistrict' as fallback)", "title": "City" }, "municipality": { @@ -838,6 +838,379 @@ ] } }, + "/CVR-1-{CVR Number}/related/place": { + "get": { + "responses": { + "200": { + "description": "Company exists", + "schema": { + "type": "array", + "description": "Production Units related to company", + "title": "Production Units", + "items": { + "type": "object", + "properties": { + "lassoId": { + "type": "string", + "description": "Lasso Id of the Production Unit", + "title": "Lasso Id" + }, + "pNumber": { + "type": "integer", + "format": "int32", + "description": "Id of the Production Unit (PNummer)", + "title": "PNumber" + }, + "unitNumber": { + "type": "integer", + "format": "int32", + "description": "The Unit Number of the Production Unit", + "title": "Unit Number" + }, + "name": { + "type": "string", + "description": "Name of the production unit", + "title": "Name" + }, + "cvr": { + "type": "integer", + "format": "int32", + "description": "CVR of the related company", + "title": "CVR" + }, + "status": { + "type": "string", + "description": "Status of the Production Unit", + "title": "Status" + }, + "lifeTime": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "(DATE) From", + "title": "From" + }, + "to": { + "type": "string", + "description": "(DATE) To", + "title": "To" + } + }, + "description": "(OBJECT) The life time of this company", + "title": "Lifetime" + }, + "phone": { + "type": "string", + "description": "Phone number", + "title": "Phone" + }, + "email": { + "type": "string", + "description": "E-Mail Address", + "title": "E-mail" + }, + "fax": { + "type": "string", + "description": "Fax number", + "title": "fax" + }, + "website": { + "type": "string", + "description": "Website", + "title": "Website" + }, + "commerciallyProtected": { + "type": "boolean", + "description": "Whether this company is acceptable to contact for commercial purposes", + "title": "Commercially Protected" + }, + "creationDate": { + "type": "string", + "description": "Date this Production Unit was created", + "title": "Creation Date" + }, + "address": { + "type": "object", + "properties": { + "address1": { + "type": "string", + "description": "First line of the address", + "title": "Address1" + }, + "address2": { + "type": "string", + "description": "Second line of the address", + "title": "Address2" + }, + "streetName": { + "type": "string", + "description": "Street name", + "title": "Streetname" + }, + "streetCode": { + "type": "integer", + "format": "int32", + "description": "Street code", + "title": "Street Code" + }, + "houseNumberFrom": { + "type": "integer", + "format": "int32", + "description": "Housenumber From", + "title": "Housenumber From" + }, + "houseNumberTo": { + "type": "string", + "description": "Housenumber To", + "title": "Housenumber To" + }, + "houseLetterFrom": { + "type": "string", + "description": "Houseletter From", + "title": "Houseletter From" + }, + "houseLetterTo": { + "type": "string", + "description": "Houseletter To", + "title": "Houseletter To" + }, + "floor": { + "type": "string", + "description": "Floor", + "title": "Floor" + }, + "sideDoor": { + "type": "string", + "description": "e.g. th", + "title": "Side Door" + }, + "postalCode": { + "type": "integer", + "format": "int32", + "description": "Postal code", + "title": "Postal Code" + }, + "postalDistrict": { + "type": "string", + "description": "Postal District", + "title": "Postal District" + }, + "cityName": { + "type": "string", + "description": "Name of the city (Can be empty, use 'postalDistrict' as fallback)", + "title": "City" + }, + "municipality": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the municipality, e.g. 'ODENSE'", + "title": "Name" + }, + "code": { + "type": "integer", + "format": "int32", + "description": "The Municipality Code, e.g. 101", + "title": "Code" + } + }, + "description": "(OBJECT) Municipality", + "title": "Municipality" + }, + "coName": { + "type": "string", + "description": "C/O Name", + "title": "C/O Name" + }, + "postalBox": { + "type": "string", + "description": "The PO Box", + "title": "Postalbox" + }, + "freeText": { + "type": "string", + "description": "Free text, usually a non-Danish address", + "title": "Freetext" + }, + "countryCode": { + "type": "string", + "description": "Country Code, e.g. DK", + "title": "Country Code" + } + }, + "description": "(OBJECT) Production Unit Address", + "title": "Address" + }, + "industry": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Industry Text, e.g. 'Softwareudvikling'", + "title": "Text" + }, + "code": { + "type": "string", + "description": "Code of the industry, e.g. 642020", + "title": "Code" + } + }, + "description": "(OBJECT) Industry", + "title": "Industry" + }, + "altIndustry1": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Industry Text, e.g. 'Softwareudvikling'", + "title": "Text" + }, + "code": { + "type": "string", + "description": "Code of the industry, e.g. 642020", + "title": "Code" + } + }, + "description": "(OBJECT) Alternate Industry 1", + "title": "Alternate Industry 1" + }, + "altIndustry2": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Industry Text, e.g. 'Softwareudvikling'", + "title": "Text" + }, + "code": { + "type": "string", + "description": "Code of the industry, e.g. 642020", + "title": "Code" + } + }, + "description": "(OBJECT) Alternate Industry 2", + "title": "Alternate Industry 2" + }, + "altIndustry3": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "Industry Text, e.g. 'Softwareudvikling'", + "title": "Text" + }, + "code": { + "type": "string", + "description": "Code of the industry, e.g. 642020", + "title": "Code" + } + }, + "description": "(OBJECT) Alternate Industry 3", + "title": "Alternate Industry 3" + }, + "employees": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "Exact amount of employees", + "title": "Count" + }, + "fullTimeEquivalentCount": { + "type": "number", + "format": "double", + "description": "The full time equivalent count of workers", + "title": "Full Time Equivalent" + }, + "interval": { + "type": "string", + "description": "Interval the count falls into, e.g. 20-49", + "title": "Interval" + }, + "type": { + "type": "string", + "description": "Monthly/Quarterly/Yearly", + "title": "Type" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "The month of the year the data is from", + "title": "Month" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "The year the data is from", + "title": "Year" + } + }, + "description": "(OBJECT) Information on Employees", + "title": "Employees" + }, + "lastUpdated": { + "type": "string", + "description": "Last time the data was updated", + "title": "Last Updated" + } + } + } + } + }, + "404": { + "description": "Company not Found", + "schema": { + "type": "object", + "properties": { + "errorMessage": { + "type": "string", + "description": "errorMessage", + "title": "Error Message" + }, + "httpStatusCode": { + "type": "integer", + "format": "int32", + "description": "httpStatusCode", + "title": "Http Status Code" + }, + "errorCode": { + "type": "integer", + "format": "int32", + "description": "errorCode", + "title": "Error Code" + } + } + } + } + }, + "summary": "Get ProductionUnit information from CVR number", + "operationId": "RelatedProductionUnits", + "description": "Gets information about Production Units related to a Company.", + "parameters": [ + { + "name": "CVR Number", + "in": "path", + "required": true, + "type": "integer", + "description": "CVR Number of the company.", + "x-ms-summary": "CVR Number", + "format": "int32" + }, + { + "name": "sameaddress", + "in": "query", + "required": false, + "type": "boolean", + "description": "Same address as Company? Leave empty to retrieve all", + "x-ms-summary": "Same Address", + } + ] + } + }, "/CVR-1-{CVR Number}/reports/latest": { "get": { "responses": { @@ -2843,7 +3216,7 @@ }, "fax": { "type": "string", - "description": "Faxnumber", + "description": "Fax number", "title": "fax" }, "website": { @@ -2920,7 +3293,7 @@ "type": "integer", "format": "int32", "description": "Postal code", - "title": "Postalcode" + "title": "Postal Code" }, "postalDistrict": { "type": "string", @@ -2929,7 +3302,7 @@ }, "cityName": { "type": "string", - "description": "Name of the city", + "description": "Name of the city (Can be empty, use 'postalDistrict' as fallback)", "title": "City" }, "municipality": { @@ -3236,7 +3609,7 @@ "type": "integer", "format": "int32", "description": "Postal code", - "title": "Postalcode" + "title": "Postal Code" }, "postalDistrict": { "type": "string", @@ -3245,7 +3618,7 @@ }, "cityName": { "type": "string", - "description": "Name of the city", + "description": "Name of the city (Can be empty, use 'postalDistrict' as fallback)", "title": "City" }, "municipality": { @@ -3306,7 +3679,7 @@ }, "fax": { "type": "string", - "description": "Faxnumber", + "description": "Fax number", "title": "Fax" }, "stakeholder": { diff --git a/certified-connectors/LassoX/readme.md b/certified-connectors/LassoX/readme.md index a232c377a3..628a4a3097 100644 --- a/certified-connectors/LassoX/readme.md +++ b/certified-connectors/LassoX/readme.md @@ -16,6 +16,7 @@ For general information on the API offerings of Lasso X, visit our [documentatio The connector supports the following operations: `CompanyInformation`: Retrieves information regarding a company. Takes a CVR number as input. +`RelatedProductionUnits`: Retrieves information regarding Production units related to a company. Takes CVR Number as input, and optionally whether to only include companies at same address or not at the same address as the company. `CompanyLatestReport`: Retrieves the company's latest financial report. Takes a CVR number as input. `PersonInformation`: Retrieves information regarding a person. Takes a unit number as input. `ProductionUnitInformation`: Retrieves information regarding a production unit. Takes a Production Unit Number (P number) as input. From 62a7c9f9cc945d1fe92ed40f5cfbbd67ec54d970 Mon Sep 17 00:00:00 2001 From: BeritHorst <89509738+BeritHorst@users.noreply.github.com> Date: Wed, 15 Sep 2021 01:07:02 +0200 Subject: [PATCH 009/219] dvelop connector Review20210908 (#1101) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Changes after review * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- .../dvelop/apiDefinition.swagger.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/certified-connectors/dvelop/apiDefinition.swagger.json b/certified-connectors/dvelop/apiDefinition.swagger.json index ff396b1853..921296b2e4 100644 --- a/certified-connectors/dvelop/apiDefinition.swagger.json +++ b/certified-connectors/dvelop/apiDefinition.swagger.json @@ -1242,17 +1242,5 @@ } } }, - "securityDefinitions": { - "API-Schl\u00fcssel": { - "type": "apiKey", - "in": "header", - "name": "Authorization" - } - }, - "security": [ - { - "API-Schl\u00fcssel": [] - } - ], "tags": [] } From dda79d79a11c71d10a07152b1c62c7c11ba4676e Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Thu, 16 Sep 2021 14:18:01 -0700 Subject: [PATCH 010/219] Update README.md --- README.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 1bb200e199..6320b8b185 100644 --- a/README.md +++ b/README.md @@ -4,27 +4,27 @@ Welcome to the Microsoft Power Platform Connectors open source repository. This ## Custom Connectors -The ```custom-connectors``` folder contains fully functional connector samples which can be deployed to the Power Platform for extension and use. These samples may not be certified connectors, but should be maintained by the open source community to offer useful scenarios or examples of connector concepts. +The ```custom-connectors``` folder contains fully functional connector samples which can be deployed to the Power Platform for extension and use. If you are looking to publish a connector to the Power Platform, please explore Certified Connectors and Independent Publisher Connectors. ## Certified Connectors -The ```certified-connectors``` folder contains certified connectors which are already deployed and available out-of-box within the Power Platform for use. -A requirement of our [connector certification program](https://docs.microsoft.com/connectors/custom-connectors/submit-certification) is that new certified connectors be open sourced for community contributions. +The ```certified-connectors``` folder contains certified connectors which are built by partners who own the end service of their connector. These connectors are deployed and available out-of-box within the Power Platform for use. +One requirement of our [connector certification program](https://docs.microsoft.com/connectors/custom-connectors/submit-certification) is that new certified connectors be open sourced for community contributions. The ```certified-connectors``` folder is managed by the Microsoft Connector Certification Team to ensure that within the ```master``` branch, the connector version is identical to that deployed in the Power Platform. The ```dev``` branch is maintained by the connector owner and the Microsoft Connector Certification Team to allow community development of the connector prior to certification and deployment of a version. ## Independent Publisher Connectors -The ```independent-publisher-connectors``` folder contains connectors that are submitted by publishers that do not own the underlying service behind their connector. Anyone can submit a new connector to this folder, add functionality to connectors in this folder, and resolve issues related to the connectors in this folder. The folder is managed by the Independent Publisher Connector Community, which includes Independent Publishers and Project Coordinators. The master branch is maintained by the Microsoft Connector Certification Team, who ensures that the connector version is identical to that deployed in the Power Platform. The dev branch is maintained by the connector maintainer(s) and the Microsoft Connector Certification Team to allow community development of the connector prior to certification and deployment of a version. Click here to view the Independent Publisher Connector Manifesto. +The ```independent-publisher-connectors``` folder contains connectors that are submitted by publishers (MVPs, developers, and companies) that do not own the underlying service behind their connector. These connectors are deployed and available out-of-box within the Power Platform as premium connectors. Anyone can submit a new connector to this folder, add functionality to connectors in this folder, and resolve issues related to the connectors in this folder. The folder is managed by the Independent Publisher Connector Community, which includes Independent Publishers and Project Coordinators. The master branch is maintained by the Microsoft Connector Certification Team, who ensures that the connector version is identical to that deployed in the Power Platform. The dev branch is maintained by the connector maintainer(s) and the Microsoft Connector Certification Team to allow community development of the connector prior to certification and deployment of a version. Click here to view the [Independent Publisher Connector Manifesto](https://github.com/microsoft/PowerPlatformConnectors/wiki/Independent-Publisher-Connector-Group-%22Manifesto%22). ## Contributing -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA), which declares that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com. ### Files to Include -Please submit the following files: An Open API swagger definition, an API properties file, and a README.md. +Please submit the following files: An Open API 2.0 swagger definition, an API properties file, and a README.md. ### API Definition (Swagger) File @@ -83,7 +83,7 @@ More information on the each of the properties are given below: ### README.md -README.md file for your connector includes a description for your connector, any prerequisite a developer or contributor may need to build your connector. It includes instructions on how to use your connector and api, how to get credentials, supported operations, known issues and limitations, etc. This file is meant to be a standalone guide for deploying and using your connector by other users and developers. A [template](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/README.template.md) and a [sample](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/custom-connectors/AzureKeyVault/Readme.md) in included for reference. +README.md file for your connector includes a description for your connector, any prerequisite a developer or contributor may need to build your connector. It includes instructions on how to use your connector and api, how to get credentials, supported operations, known issues and limitations, etc. This file is meant to be a standalone guide for deploying and using your connector by other users and developers. A [template](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/README.template.md) and a [sample](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/custom-connectors/AzureKeyVault/Readme.md) is included for reference. If you are submitting an Independent Publisher connector that requires OAuth, please make sure to explain how to create the OAuth app. The Microsoft Certification Team will use those instructions to create the app, so please make sure they are detailed and accurate. ### Creating a Fork @@ -128,13 +128,12 @@ You are now ready to develop your connector in your own branch. ### Submitting to the Open Source Repository Contributions to the open source repository are made through pull requests. -Prior to submitting a pull request, ensure that your pull request does not contain any sensitive or specific information, for example Client IDs or Client Secrets. +Prior to submitting a pull request, ensure that 1) you have thoroughly tested the connector 2) you have provided response schemas unless the responses are dynamic, and 3) that your pull request does not contain any sensitive or specific information, for example client ids or client secrets. Any sensitive values can be replaced with fake or dummy values for the purposes of submission as long as it is clearly indicated. Also, ensure that the readme.md of the connector is updated with the latest information, or created for new connector submissions. An example of a clear, structured, readme.md can be found in the [Azure Key Vault](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/custom-connectors/AzureKeyVault/Readme.md) connector repository. A [README template](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/README.template.md) is also included for your reference. Include this completed `readme.md` in same connector directory which contains the artifacts. - Add tags indicating which connector type you are submitting. Connector type name should match the folder name you are submitting to: custom-connector, certified-connector, or independent-publisher-connector. #### Certified Connectors @@ -152,7 +151,12 @@ Updates to an existing custom connector can be made through a simple pull reques #### Independent Publisher Follow the same instructions as above on submitting for certification, create a directory under the "independent-publisher-connectors" directory and place the connector files in the sub-folder. -Add a tag by selecting the labels option to "independent-publisher-connector". Your icon color in the API properties file must be set to `#da3b01`, as in `"iconBrandColor": "#da3b01"`. [A sample icon for Independent Publisher connector](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/independent-publisher-icon.png) is included for your reference. +Your icon color in the API properties file must be set to `#da3b01`, as in `"iconBrandColor": "#da3b01"`. [A sample icon for Independent Publisher connector](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/independent-publisher-icon.png) is included for your reference. +Set your pull request title to "Connector Name (Independent Publisher)." +Paste in screenshots from the Test operations section and 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding. +Add a tag by selecting the labels option to "independent-publisher-connector." +If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md. + #### Custom Connector From d7a6bb3bd4011be0a7b02f57053fc2da08800e7f Mon Sep 17 00:00:00 2001 From: mdujardibs <88819755+mdujardibs@users.noreply.github.com> Date: Fri, 17 Sep 2021 03:12:04 +0200 Subject: [PATCH 011/219] New connector : Sociabbe (Updated) (#1106) * New connector : Sociabble * Changes requested during certification process * Missing descriptions * Missing titles * Update iconBrandColor * Updating swagger with UploadMedia and UploadMediaUrl returing an object + changing visibility of some endpoints --- .../Sociabble/apiDefinition.swagger.json | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/certified-connectors/Sociabble/apiDefinition.swagger.json b/certified-connectors/Sociabble/apiDefinition.swagger.json index a72dd654ef..db48659925 100644 --- a/certified-connectors/Sociabble/apiDefinition.swagger.json +++ b/certified-connectors/Sociabble/apiDefinition.swagger.json @@ -44,7 +44,6 @@ "summary": "Get audiences", "operationId": "GetAudiences", "parameters": [], - "x-ms-visibility": "internal", "description": "Get audiences" } }, @@ -73,7 +72,6 @@ }, "summary": "Get channels", "operationId": "GetChannels", - "x-ms-visibility": "internal", "parameters": [], "description": "Get channels" } @@ -663,8 +661,7 @@ "summary": "Get all badges", "description": "Get all badges", "operationId": "GetAllBadges", - "parameters": [], - "x-ms-visibility": "internal" + "parameters": [] } }, "/badges/{badgeId}/levels": { @@ -698,14 +695,15 @@ "summary": "Get badge levels", "description": "Get badge levels", "operationId": "GetBadgeLevels", - "x-ms-visibility": "internal", "parameters": [ { "name": "badgeId", "in": "path", "required": true, "type": "string", - "x-ms-url-encoding": "single" + "x-ms-url-encoding": "single", + "description": "A unique identifier of a badge", + "x-ms-summary": "Badge Id" } ] } @@ -716,8 +714,14 @@ "200": { "description": "A media unique identifier", "schema": { - "type": "string", - "title": "mediaId" + "type": "object", + "properties": { + "mediaId": { + "type": "string", + "description": "A media unique identifier", + "title": "Media Id" + } + } } } }, @@ -746,8 +750,14 @@ "200": { "description": "A media unique identifier", "schema": { - "type": "string", - "title": "mediaId" + "type": "object", + "properties": { + "mediaId": { + "type": "string", + "description": "A media unique identifier", + "title": "Media Id" + } + } } } }, @@ -986,13 +996,14 @@ "summary": "Get Media Drive folders", "description": "Get Media Drive folders", "operationId": "GetMediaFolders", - "x-ms-visibility": "internal", "parameters": [ { "name": "culture", "in": "query", "required": false, - "type": "string" + "type": "string", + "description": "The culture in which you want the default folders to be returned", + "x-ms-summary": "Culture" } ] } From 7a9d6d85b0ffb47b2dfa2a8fd8a9cc349b9a2b58 Mon Sep 17 00:00:00 2001 From: honeywellForge <90189824+honeywellForge@users.noreply.github.com> Date: Sat, 18 Sep 2021 01:33:57 +0530 Subject: [PATCH 012/219] adding connector HoneyWellForge (#1089) --- certified-connectors/HoneywellForge/README.md | 14 + .../HoneywellForge/apiDefinition.swagger.json | 430 ++++++++++++++++++ .../HoneywellForge/apiProperties.json | 37 ++ 3 files changed, 481 insertions(+) create mode 100644 certified-connectors/HoneywellForge/README.md create mode 100644 certified-connectors/HoneywellForge/apiDefinition.swagger.json create mode 100644 certified-connectors/HoneywellForge/apiProperties.json diff --git a/certified-connectors/HoneywellForge/README.md b/certified-connectors/HoneywellForge/README.md new file mode 100644 index 0000000000..82a1cd0b4b --- /dev/null +++ b/certified-connectors/HoneywellForge/README.md @@ -0,0 +1,14 @@ +# Honeywell Forge Connector + +Honeywell Forge connector enables seamless integration between Honeywell Forge and Dynamics Field Services. This connector exposes a subset of APIs as operations in Power Platform. + +## Supported Operations +The connector supports the following operations: + +| Operation | Description | +| --- | --- | +| Register a webhook to receive open service cases from Honeywell Forge | This operation registers a webhook that allows you to receive open service cases from Honeywell Forge. | +| Cancel webhook registration | This operation cancels registration for a webhook. | +| List open service cases | This operation returns a list of open service sases for a specified customer. | +| Close a service case | This operation closes a service case. | +| Send event to Honeywell Forge | This operation sends success and failure events to Honeywell Forge. | \ No newline at end of file diff --git a/certified-connectors/HoneywellForge/apiDefinition.swagger.json b/certified-connectors/HoneywellForge/apiDefinition.swagger.json new file mode 100644 index 0000000000..d79a04a125 --- /dev/null +++ b/certified-connectors/HoneywellForge/apiDefinition.swagger.json @@ -0,0 +1,430 @@ +{ + "swagger": "2.0", + "info": { + "title": "Honeywell Forge", + "description": "Honeywell Forge is an Enterprise Performance Management Software-as-a-Service. It enables autonomous control of devices and codifies domain knowledge of assets in a contextual way. Use Honeywell Forge Connector to subscribe to Honeywell Forge to receive service cases and to close existing service cases.", + "version": "1.0", + "contact": { + "name": "Honeywell Support", + "email": "DL-HCE-SRE@HoneywellProd.onmicrosoft.com", + "url": "https://www.honeywell.com/us/en/contact/support" + } + }, + "host": "api.forge.connected.honeywell.com", + "basePath": "/v1", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/projects/{projectId}/webhooks/{connectorId}": { + "x-ms-notification-content": { + "description": "This operation returns a list of open service cases for a specified customer.", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "List of open service cases.", + "title": "Service Cases", + "items": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "description": "Brief description of the service case.", + "title": "Summary" + }, + "sourceSystem": { + "type": "string", + "description": "System that caused the creation of the service case.", + "title": "Source System" + }, + "description": { + "type": "string", + "description": "Detailed description of the service case.", + "title": "Detailed Description" + }, + "siteName": { + "type": "string", + "description": "The name of the site where the equipment that caused the service case is located.", + "title": "Site Name" + }, + "analystNotes": { + "type": "string", + "description": "Use this field for additional notes as needed.", + "title": "Notes" + }, + "priority": { + "type": "string", + "description": "The priority of the service case. Possible values are: low, medium, high.", + "title": "Priority" + }, + "costOfFault": { + "type": "string", + "description": "The estimated cost of the fault of the equipment.", + "title": "Cost of Fault" + }, + "equipmentId": { + "type": "string", + "description": "The ID of the equipment that caused the service case.", + "title": "Equipment ID" + }, + "createdBy": { + "type": "string", + "description": "The email of the user who has created the service case.", + "title": "Created By" + }, + "faultCreatedOn": { + "type": "integer", + "format": "int32", + "description": "The date and time when the fault has occurred in UNIX epoch format.", + "title": "Fault Creation Timestamp" + }, + "serviceCaseNumber": { + "type": "string", + "description": "The unique number that identifies the service case.", + "title": "Service Case Number" + }, + "siteId": { + "type": "string", + "description": "The ID of the site where the equipment that caused the service case is located.", + "title": "Site ID" + }, + "location": { + "type": "string", + "description": "The specific location within a site where the equipment that caused the service case is located. This can be a building, a floor, or a zone.", + "title": "Equipment Location" + }, + "equipmentGroup": { + "type": "string", + "description": "The type of the equipment that caused the service case, such as AHU, VAV.", + "title": "Equipment Type" + }, + "status": { + "type": "string", + "description": "The status of the service case.", + "title": "Status" + } + } + } + } + } + } + }, + "post": { + "responses": { + "200": { + "description": "The webhook has been registered." + } + }, + "summary": "Register a webhook that allows you to receive open service cases", + "consumes": [ + "application/json" + ], + "description": "This operation registers a webhook that allows you to receive open service cases from Honeywell Forge.", + "operationId": "ServiceCaseCreated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify an ID for your project. The Project ID is a unique identifier that represents you as a customer in Honeywell Forge.", + "x-ms-summary": "Project ID", + "x-example": "dynamics-azure", + "x-ms-url-encoding": "single" + }, + { + "name": "connectorId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify an ID for your connector. Connector ID is a unique identifier that represents your connector in Honeywell Forge.", + "x-ms-summary": "Connector ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Specify the URL where you want to receive service cases.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "URL", + "default": "https://www.honeywell.com/" + } + }, + "required": [ + "url" + ] + } + } + ] + }, + "delete": { + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "The registration for the webhook has been cancelled." + } + }, + "summary": "Cancel webhook registration", + "description": "This operation cancels registration for a webhook.", + "operationId": "DeleteServiceCaseWebhook", + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify the ID of the project for which you want to cancel connector registration.", + "x-ms-summary": "Project ID", + "x-example": "dynamics-azure", + "x-ms-url-encoding": "single" + }, + { + "name": "connectorId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify the ID of the connector for which you want to cancel registration.", + "x-ms-summary": "Connector ID", + "x-ms-url-encoding": "single" + } + ] + } + }, + "/projects/{projectId}/service-cases/{serviceCaseNumber}": { + "patch": { + "responses": { + "200": { + "description": "The service case has been closed.", + "schema": { + "$ref": "#/definitions/CloseCaseResponse" + } + } + }, + "summary": "Close a service case", + "consumes": [ + "application/json" + ], + "operationId": "CloseServiceCaseAtForge", + "description": "This operation closes a service case.", + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify the ID of the Project for which you want to cancel a service case.", + "x-ms-summary": "Project ID", + "x-example": "dynamics-azure", + "x-ms-url-encoding": "single" + }, + { + "name": "serviceCaseNumber", + "in": "path", + "required": true, + "type": "string", + "description": "Specify the number of the service case which you want to close.", + "x-ms-summary": "Service Case Number", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "required": [ + "resolutionText", + "siteId", + "status" + ], + "properties": { + "siteId": { + "type": "string", + "description": "Specify the ID of the site where the equipment that caused the service case is located.", + "title": "Site ID" + }, + "status": { + "type": "string", + "description": "Specify CLOSED to close the service case. This parameter updates the status of the service case.", + "default": "Closed", + "title": "Status", + "x-ms-visibility": "internal" + }, + "workOrderIDs": { + "type": "string", + "description": "Specify the work order ID", + "title": "Work Order ID" + }, + "priority": { + "type": "string", + "description": "Specify the priority of the service case.", + "default": "Medium", + "title": "Priority" + }, + "resolutionText": { + "type": "string", + "description": "Specify the resolution of the service case.??added title", + "title": "Resolution" + }, + "resolutionCode": { + "type": "string", + "description": "Specify the resolution code for the service case.??added title", + "title": "Resolution Code" + }, + "rootCauseCode": { + "type": "string", + "description": "Specify the root cause of the service case.??added title", + "title": "Root Cause Code" + }, + "serviceCaseClosedOn": { + "type": "integer", + "format": "int64", + "description": "Specify the date and time when the service has been closed in UNIX epoch format.", + "title": "Service Case Closing Timestamp" + } + } + } + } + ] + } + }, + "/projects/{projectId}/transactionEvent": { + "post": { + "responses": { + "200": { + "description": "The event has been sent to Honeywell Forge." + } + }, + "description": "This operation sends success and failure events to Honeywell Forge.", + "summary": "Send event to Honeywell Forge", + "consumes": [ + "application/json" + ], + "operationId": "SendEventToForge", + "parameters": [ + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string", + "description": "Specify the ID of the Project for which you want to send an event to Honeywell Forge.", + "x-ms-summary": "Project ID", + "x-example": "dynamics-azure", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "description": "The body of the event message that has been sent to Honeywell Forge.", + "x-ms-summary": "Event Body", + "schema": { + "type": "object", + "required": [ + "event", + "eventType", + "message", + "corelationId", + "source" + ], + "properties": { + "event": { + "type": "string", + "description": "Specify the name of the event.", + "x-ms-summary": "Event Name", + "default": "defaultEvent" + }, + "eventType": { + "type": "string", + "description": "Specify the type of the event. Acceptable values are: warning, error, information, telemetry.", + "x-ms-summary": "Event Type", + "default": "defaultEventType" + }, + "message": { + "type": "string", + "description": "Specify the description of the event.", + "x-ms-summary": "Message", + "default": "defaultMessage" + }, + "corelationId": { + "type": "string", + "description": "Specify Correlation ID of the transaction.", + "x-ms-summary": "Correlation ID", + "default": "defaultCorrelationID" + }, + "connectorId": { + "type": "string", + "description": "Specify the ID of the connector.", + "x-ms-summary": "Connector ID" + }, + "source": { + "type": "string", + "description": "Specify the source system of the event.", + "x-ms-summary": "Source", + "default": "defaultSource" + } + } + } + } + ] + } + } + }, + "definitions": { + "CloseCaseResponse": { + "type": "object", + "properties": { + "correlationId": { + "type": "string" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://forge-sso.spec.honeywell.com/oauth2/token", + "tokenUrl": "https://forge-sso.spec.honeywell.com/oauth2/token", + "scopes": { + "openid forge.access offline": "openid forge.access offline" + } + } + }, + "security": [ + { + "undefined": [ + "openid forge.access offline" + ] + } + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.honeywell.com/us/en/honeywell-forge" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.honeywell.com/us/en/privacy-statement" + }, + { + "propertyName": "Categories", + "propertyValue": "Internet of Things" + } + ], + "tags": [] +} diff --git a/certified-connectors/HoneywellForge/apiProperties.json b/certified-connectors/HoneywellForge/apiProperties.json new file mode 100644 index 0000000000..123ae80257 --- /dev/null +++ b/certified-connectors/HoneywellForge/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "capabilities": [], + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "YOUR_CLIENT_ID", + "clientSecret": "YOUR_CLIENT_SECRET", + "scopes": [ + "openid forge.access offline" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://forge-sso.spec.honeywell.com/oauth2/token" + }, + "tokenUrl": { + "value": "https://forge-sso.spec.honeywell.com/oauth2/token" + }, + "refreshUrl": { + "value": "https://forge-sso.spec.honeywell.com/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#EE4677", + "publisher": "Honeywell International", + "stackOwner": "Honeywell International" + } +} From 0c0c5450c425247d1a3bcc64f91b7ba40fb042b3 Mon Sep 17 00:00:00 2001 From: Anand Vikram Date: Wed, 22 Sep 2021 05:18:14 +0530 Subject: [PATCH 013/219] Update apiProperties.json (#1115) --- certified-connectors/Polaris PSA/apiProperties.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certified-connectors/Polaris PSA/apiProperties.json b/certified-connectors/Polaris PSA/apiProperties.json index 8004b5027b..7bdd23fe2b 100644 --- a/certified-connectors/Polaris PSA/apiProperties.json +++ b/certified-connectors/Polaris PSA/apiProperties.json @@ -29,7 +29,7 @@ } } }, - "iconBrandColor": "#FEFEFE", + "iconBrandColor": "#26D293", "capabilities": [], "policyTemplateInstances": [ { @@ -56,4 +56,4 @@ "publisher": "Replicon Inc", "stackOwner": "Replicon Inc" } -} \ No newline at end of file +} From 51d4d457ec5fb181f0b386a1914333b751a744d3 Mon Sep 17 00:00:00 2001 From: duncanbinger <87135061+duncanbinger@users.noreply.github.com> Date: Wed, 22 Sep 2021 02:13:11 +0200 Subject: [PATCH 014/219] BuildingMindsTwinCore (certified-connectors) (#1111) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Added connector files * cherry pick files * added icon for connector * removed unwanted connector and icon * removed additional redirectURL * Added specific purpose for connector description Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- .../BuildingMindsTwin/README.md | 60 + .../apiDefinition.swagger.json | 2128 +++++++++++++++++ .../BuildingMindsTwin/apiProperties.json | 36 + 3 files changed, 2224 insertions(+) create mode 100644 certified-connectors/BuildingMindsTwin/README.md create mode 100755 certified-connectors/BuildingMindsTwin/apiDefinition.swagger.json create mode 100755 certified-connectors/BuildingMindsTwin/apiProperties.json diff --git a/certified-connectors/BuildingMindsTwin/README.md b/certified-connectors/BuildingMindsTwin/README.md new file mode 100644 index 0000000000..70a458af4d --- /dev/null +++ b/certified-connectors/BuildingMindsTwin/README.md @@ -0,0 +1,60 @@ +# BuildingMinds DigitalTwin Core Connector +BuildingMinds Core provides various REST APIs. With this API you can access the Digital Building Twin Masterdata API on the BuildingMinds Platform. A problem many customers have in the real estate sector is accurate information about their buildings. With the API customers and partners can use and create Apps which build on the Digital Building Twin. + +## Publisher: BuildingMinds + +## Prerequisites +To use the connector you need an account on the BuildindMinds Platform and user with appropriate authorisation. See below for getting access. + +## Supported Operations +Required. Describe actions, triggers, and other endpoints.​ +### Operation 1 +Description of operation 1. + +The connector supports the following operations: +*`GetPortfolios`: Get all portfolios +*`GetSites`: Get all sites +*`GetBuildings`: Get all buildings +*`GetFloors`: Get all floors +*`GetRoofs`: Get all roofs +*`GetFacades`: Get all facades +*`GetOutsideareas`: Get all outside areas +*`GetSubareas`: Get all sub areas +*`GetLands`: Get all lands +*`GetSpaces`: Get all spaces +*`GetPortfolioById`: Gets a portfolio with the given ID +*`GetSiteById`: Gets a site with the given ID +*`GetBuildingById`: Gets a buildings with the given ID +*`GetFloorById`: Gets a floor with the given ID +*`GetRoofById`: Gets a roof with the given ID +*`GetFacadeById`: Gets a facade with the given ID +*`GetOutsideareaById`: Gets an outside aread with the given ID +*`GetSubareaById`: Gets a suba area with the given ID +*`GetLandById`: Gets a land with the given ID +*`GetSpaceById`: Gets a space with the given ID +*`CheckForChildrenOnPortfolio`: Gets a site with the given ID +*`CheckForChildrenOnSite`: Gets the information about the existence of children on a site +*`CheckForChildrenOnBuilding`: Gets the information about the existence of children on a building +*`CheckForChildrenOnFloor`:Gets the information about the existence of children on a floor +*`CheckForChildrenOnRoof`: Gets the information about the existence of children on a roof +*`CheckForChildrenOnFacade`: Gets the information about the existence of children on a facade +*`CheckForChildrenOnOutsidearea`: Gets the information about the existence of children on an outside area +*`CheckForChildrenOnSubarea`: Gets the information about the existence of children on a sub area +*`CheckForChildrenOnLand`: Gets the information about the existence of children on a land +*`CheckForChildrenOnSpace`: Gets the information about the existence of children on a space +*`GetAssociatedSpacesForSpace`: Get the list of associated entities +*`GetUnassociatedSpaces`: Get the list of not associated entities + + +## Obtaining Credentials +Please contact us under: ​https://buildingminds.com/services/customer-support or support@buildingminds.com + +## Known Issues and Limitations +No known issues. + +## Deployment Instructions +1. Clone the PowerPlatformConnectors GitHub repository +2. Open a terminal, then change to the `Docurain` directory +3. Run `paconn login`, then follow the authentication steps +4. Once authenticated, run `paconn create --api-def apiDefinition.swagger.json --api-prop apiProperties.json` +5. Select the target environment for your connector \ No newline at end of file diff --git a/certified-connectors/BuildingMindsTwin/apiDefinition.swagger.json b/certified-connectors/BuildingMindsTwin/apiDefinition.swagger.json new file mode 100755 index 0000000000..7ffed23bb8 --- /dev/null +++ b/certified-connectors/BuildingMindsTwin/apiDefinition.swagger.json @@ -0,0 +1,2128 @@ +{ + "swagger": "2.0", + "info": { + "title": "BuildingMinds DigitalTwin Core", + "version": "1.0", + "description": "The BuildingMinds Core Platform provides REST APIs. With the BuildingMinds DigitalTwin Core API you can read and list the Digital Building Twin masterdata such as buildings, floors and spaces and their properties.", + "contact": { + "name": "BuildingMinds Support", + "url": "https://buildingminds.com/services/customer-support", + "email": "support@buildingminds.com" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://buildingminds.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://buildingminds.com/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ], + "host": "api.onbuildingminds.com", + "basePath": "/api/masterdata", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/premises/portfolios": { + "get": { + "description": "Get all portfolios for the currently logged in user's tenants", + "operationId": "GetPortfolios", + "summary": "Get all portfolios", + "tags": [ + "Portfolios" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of portfolio objects", + "schema": { + "$ref": "#/definitions/PortfolioTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/sites": { + "get": { + "description": "Get all sites for the currently logged in user's tenants", + "operationId": "GetSites", + "summary": "Get all sites", + "tags": [ + "Sites" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of site objects", + "schema": { + "$ref": "#/definitions/SiteTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/buildings": { + "get": { + "description": "Get all buildings for the currently logged in user's tenants", + "operationId": "GetBuildings", + "summary": "Get all buildings", + "tags": [ + "Buildings" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of building objects", + "schema": { + "$ref": "#/definitions/BuildingTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/floors": { + "get": { + "description": "Get all floors for the currently logged in user's tenants", + "operationId": "GetFloors", + "summary": "Get all floors", + "tags": [ + "Floors" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of floor objects", + "schema": { + "$ref": "#/definitions/FloorTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/roofs": { + "get": { + "description": "Get all roofs for the currently logged in user's tenants", + "operationId": "GetRoofs", + "summary": "Get all roofs", + "tags": [ + "Roofs" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of roof objects", + "schema": { + "$ref": "#/definitions/RoofsTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/facades": { + "get": { + "description": "Get all Facades for the currently logged in user's tenants", + "operationId": "GetFacades", + "summary": "Get all facades", + "tags": [ + "Facades" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of facade objects", + "schema": { + "$ref": "#/definitions/FacadesTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/outsideareas": { + "get": { + "description": "Get all outsideareas for the currently logged in user's tenants", + "operationId": "GetOutsideareas", + "summary": "Get all outsideareas", + "tags": [ + "Outsideareas" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of outsidearea objects", + "schema": { + "$ref": "#/definitions/OutsideareasTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/subareas": { + "get": { + "description": "Get all subareas for the currently logged in user's tenants", + "operationId": "GetSubareas", + "summary": "Get all subareas", + "tags": [ + "Subareas" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of subareas objects", + "schema": { + "$ref": "#/definitions/SubareasTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/lands": { + "get": { + "description": "Get all lands for the currently logged in user's tenants", + "operationId": "GetLands", + "summary": "Get all lands", + "tags": [ + "Lands" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of land objects", + "schema": { + "$ref": "#/definitions/LandsTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/spaces": { + "get": { + "description": "Get all spaces for the currently logged in user's tenants", + "operationId": "GetSpaces", + "summary": "Get all spaces", + "tags": [ + "Spaces" + ], + "parameters": [ + { + "$ref": "#/parameters/top" + }, + { + "$ref": "#/parameters/skip" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returns an array of spaces for the given spaceType", + "schema": { + "$ref": "#/definitions/SpacesTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/portfolios/{id}": { + "get": { + "description": "Gets a portfolio with the given ID", + "operationId": "GetPortfolioById", + "summary": "Gets a portfolio with the given ID", + "tags": [ + "Portfolios" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Portfolio" + } + } + } + } + }, + "/premises/sites/{id}": { + "get": { + "description": "Gets a site with the given ID", + "operationId": "GetSiteById", + "summary": "Gets a site with the given ID", + "tags": [ + "Sites" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Site" + } + } + } + } + }, + "/premises/buildings/{id}": { + "get": { + "description": "Gets a building with the given ID", + "operationId": "GetBuildingById", + "summary": "Gets a buidling with the given ID", + "tags": [ + "Buildings" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Building" + } + } + } + } + }, + "/premises/floors/{id}": { + "get": { + "description": "Gets a floor with the given ID", + "operationId": "GetFloorById", + "summary": "Gets a floor with the given ID", + "tags": [ + "Floors" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Floor" + } + } + } + } + }, + "/premises/roofs/{id}": { + "get": { + "description": "Gets a roof with the given ID", + "operationId": "GetRoofById", + "summary": "Gets a roof with the given ID", + "tags": [ + "Roofs" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Roof" + } + } + } + } + }, + "/premises/facades/{id}": { + "get": { + "description": "Gets a facade with the given ID", + "operationId": "GetFacadeById", + "summary": "Gets a facade with the given ID", + "tags": [ + "Facades" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Facade" + } + } + } + } + }, + "/premises/outsideareas/{id}": { + "get": { + "description": "Gets a outsidearea with the given ID", + "operationId": "GetOutsideareaById", + "summary": "Gets a outsidearea with the given ID", + "tags": [ + "Outsideareas" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Outsidearea" + } + } + } + } + }, + "/premises/subareas/{id}": { + "get": { + "description": "Gets a subarea with the given ID", + "operationId": "GetSubareaById", + "summary": "Gets a subarea with the given ID", + "tags": [ + "Subareas" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Subarea" + } + } + } + } + }, + "/premises/lands/{id}": { + "get": { + "description": "Gets a land with the given ID", + "operationId": "GetLandById", + "summary": "Gets a land with the given ID", + "tags": [ + "Lands" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Land" + } + } + } + } + }, + "/premises/spaces/{id}": { + "get": { + "description": "Gets a space with the given ID", + "operationId": "GetSpaceById", + "summary": "Gets a space with the given ID", + "tags": [ + "Spaces" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "description": "successful operation", + "schema": { + "$ref": "#/definitions/Space" + } + } + } + } + }, + "/premises/portfolios/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a portfolios", + "operationId": "CheckForChildrenOnPortfolio", + "summary": "Gets the information about the existence of children on a portfolios", + "tags": [ + "Portfolios" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/sites/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a site", + "operationId": "CheckForChildrenOnSite", + "summary": "Gets the information about the existence of children on a site", + "tags": [ + "Sites" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/buildings/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a building", + "operationId": "CheckForChildrenOnBuilding", + "summary": "Gets the information about the existence of children on a building", + "tags": [ + "Buildings" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/floors/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a floor", + "operationId": "CheckForChildrenOnFloor", + "summary": "Gets the information about the existence of children on a floor", + "tags": [ + "Floors" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/roofs/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a roof", + "operationId": "CheckForChildrenOnRoof", + "summary": "Gets the information about the existence of children on a roof", + "tags": [ + "Roofs" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/facades/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a facade", + "operationId": "CheckForChildrenOnFacade", + "summary": "Gets the information about the existence of children on a facade", + "tags": [ + "Facades" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/outsideareas/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a outsidearea", + "operationId": "CheckForChildrenOnOutsidearea", + "summary": "Gets the information about the existence of children on a outsidearea", + "tags": [ + "Outsideareas" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/subareas/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a subarea", + "operationId": "CheckForChildrenOnSubarea", + "summary": "Gets the information about the existence of children on a subarea", + "tags": [ + "Subareas" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/lands/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a land", + "operationId": "CheckForChildrenOnLand", + "summary": "Gets the information about the existence of children on a land", + "tags": [ + "Lands" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/spaces/{id}/children/exist": { + "get": { + "description": "Gets the information about the existence of children on a space", + "operationId": "CheckForChildrenOnSpace", + "summary": "Gets the information about the existence of children on a space", + "tags": [ + "Spaces" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceId" + } + ], + "responses": { + "200": { + "$ref": "#/responses/ResponseChildrenCheck" + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/{spaceType}/{id}/associated/{associatedType}": { + "get": { + "description": "Get the list of spaces of certain type associated with the provided space entity", + "operationId": "GetAssociatedSpacesForSpace", + "summary": "Get the list of associated entities", + "tags": [ + "Premises" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceType" + }, + { + "$ref": "#/parameters/spaceId" + }, + { + "$ref": "#/parameters/associatedType" + }, + { + "$ref": "#/parameters/skip" + }, + { + "$ref": "#/parameters/top" + } + ], + "responses": { + "200": { + "description": "Returns an array of spaces that are connected to the source space", + "schema": { + "$ref": "#/definitions/AssociatedSpacesTypeWithPagination" + } + }, + "404": { + "description": "Not found" + } + } + } + }, + "/premises/{spaceType}/notassociated/{associatedType}": { + "get": { + "description": "Get the list of spaces of certain type which are not associated with the space of another provided type", + "operationId": "GetUnassociatedSpaces", + "summary": "Get the list of not associated entities", + "tags": [ + "Premises" + ], + "parameters": [ + { + "$ref": "#/parameters/spaceType" + }, + { + "$ref": "#/parameters/associatedType" + }, + { + "$ref": "#/parameters/spaceIdQuery" + } + ], + "responses": { + "200": { + "description": "Returns an array of spaces that are connected to the source space" + }, + "404": { + "description": "Not found" + } + } + } + } + }, + "definitions": { + "CurrencyValueType": { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "unit": { + "type": "string" + } + } + }, + "AreaValueType": { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "unit": { + "enum": [ + "m2", + "ft2" + ], + "type": "string" + }, + "metricValue": { + "type": "number" + } + } + }, + "LocationPathType": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "LocationPathArrayType": { + "type": "array", + "items": { + "$ref": "#/definitions/LocationPathType" + } + }, + "SpaceTypeOfUseEnum": { + "enum": [ + "office", + "apartment", + "meeting", + "technical", + "parking", + "production", + "logistics", + "traffic", + "passageway", + "storage", + "bathroom", + "canteen", + "kitchen", + "sales", + "technicalShaft", + "otherShaft" + ], + "type": "string" + }, + "OutsideAreaType": { + "enum": [ + "pavedArea", + "greenArea" + ], + "type": "string" + }, + "EntityType": { + "enum": [ + "portfolio", + "land", + "site", + "outsidearea", + "subarea", + "building", + "floor", + "roof", + "facade", + "space", + "address" + ], + "type": "string" + }, + "SpaceTypeOfOwnership": { + "enum": [ + "Leased", + "Freehold", + "Part-Ownership", + "Owned" + ], + "type": "string" + }, + "LengthValueType": { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "unit": { + "enum": [ + "m", + "ft" + ], + "type": "string" + } + } + }, + "AddressType": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "description": "should be defined in POST/PUT requests for existing addresses only in the cases when existing address was added here instead of ids array", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "street": { + "type": "string" + }, + "houseNumber": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "description": "ISO 3166-1 alpha-3 Country Codes, e.g. CAN, USA, DEU", + "type": "string" + }, + "region": { + "type": "string" + }, + "timeZone": { + "type": "string" + }, + "postBox": { + "type": "string" + }, + "postBoxPostCode": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "externalId": { + "format": "uuid", + "description": "External id of address, should be generated on a client side when creating new address", + "type": "string" + }, + "latitude": { + "format": "float", + "description": "Laditiude coordinate for address", + "type": "number" + }, + "longitude": { + "format": "float", + "description": "longitude coordinate for address", + "type": "number" + } + } + }, + "Portfolio": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "owner": { + "type": "string" + }, + "buildingGrossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "landGrossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "associatedLandIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "associatedBuildingIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + }, + "Site": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "buildingGrossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "outsideareaGrossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "mainAddressExternalId": { + "format": "uuid", + "description": "externalId of one of the addresses from the linkedAddresses collection should be put here to make address main", + "type": "string" + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressType" + } + }, + "typeOfSite": { + "$ref": "#/definitions/SpaceTypeOfUseEnum" + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "furtherInformation": { + "type": "string" + } + } + }, + "Building": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "associatedPortfolioId": { + "format": "uuid", + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "associatedLandIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "title": { + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressType" + } + }, + "responsiblePeopleFullName": { + "type": "string" + }, + "typeOfOwnership": { + "$ref": "#/definitions/SpaceTypeOfOwnership" + }, + "typeOfBuilding": { + "type": "string" + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "furtherInformation": { + "type": "string" + }, + "constructionYear": { + "format": "date", + "type": "string" + }, + "yearOfLastRefurbishment": { + "format": "date", + "type": "string" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "buildingPurchaseCost": { + "$ref": "#/definitions/CurrencyValueType" + }, + "hasMonumentProtection": { + "type": "boolean" + }, + "numberOfFloors": { + "format": "int32", + "type": "integer" + }, + "numberOf BasementFloors": { + "format": "int32", + "type": "integer" + } + } + }, + "Floor": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "typeOfFloor": { + "type": "string", + "enum": [ + "basement", + "above", + "ground" + ] + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + }, + "Space": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "typeOfSpace": { + "type": "string", + "enum": [ + "residential", + "office", + "industrial", + "retail", + "storage", + "parking space", + "shaft", + "staircase", + "other" + ] + } + } + }, + "Roof": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "material": { + "type": "string" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + }, + "Facade": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "material": { + "type": "string" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "imageIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + }, + "Outsidearea": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "typeOfOutsideArea": { + "$ref": "#/definitions/OutsideAreaType" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + } + } + }, + "Land": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + }, + "grossArea": { + "$ref": "#/definitions/AreaValueType" + }, + "registrationNumberOfDeed": { + "type": "array", + "items": { + "type": "string" + } + }, + "plotNumber": { + "type": "array", + "items": { + "type": "string" + } + }, + "subPlotNumber": { + "type": "array", + "items": { + "type": "string" + } + }, + "easementBelongingToDeed": { + "type": "array", + "items": { + "type": "string" + } + }, + "admissableSiteOccupancyIndex": { + "type": "number" + }, + "admissableCubicIndex": { + "type": "number" + }, + "actualFloorSpaceIndex": { + "type": "number" + }, + "actualSiteOccupancyIndex": { + "type": "number" + }, + "actualCubicIndex": { + "type": "number" + }, + "associatedPortfolioId": { + "format": "uuid", + "type": "string" + }, + "associatedBuildingIds": { + "type": "array", + "items": { + "format": "uuid", + "type": "string" + } + } + } + }, + "Subarea": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "changedOn": { + "format": "date", + "description": "Read only", + "type": "string", + "readOnly": true + }, + "changedBy": { + "description": "Read only", + "type": "string", + "readOnly": true + }, + "locationPath": { + "$ref": "#/definitions/LocationPathArrayType" + }, + "tid": { + "format": "uuid", + "description": "tenant identifier", + "type": "string" + }, + "title": { + "type": "string" + }, + "parentId": { + "format": "uuid", + "type": "string" + }, + "internalId": { + "format": "uuid", + "type": "string" + }, + "validFrom": { + "format": "date", + "type": "string" + }, + "validTo": { + "format": "date", + "type": "string" + }, + "furtherInformation": { + "type": "string" + } + } + }, + "AssociatedSpacesType": { + "type": "object", + "properties": { + "id": { + "type": "string", + "format": "uuid" + }, + "title": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/EntityType" + }, + "countOfChildren": { + "type": "integer" + } + } + }, + "ChildrenCheckType": { + "type": "object", + "properties": { + "hasChildren": { + "type": "boolean" + } + } + }, + "PortfolioTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Portfolio" + } + } + } + }, + "SiteTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Site" + } + } + } + }, + "BuildingTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Building" + } + } + } + }, + "FloorTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Floor" + } + } + } + }, + "RoofsTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Roof" + } + } + } + }, + "FacadesTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Facade" + } + } + } + }, + "OutsideareasTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Outsidearea" + } + } + } + }, + "SubareasTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Subarea" + } + } + } + }, + "LandsTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Land" + } + } + } + }, + "SpacesTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + } + }, + "AssociatedSpacesTypeWithPagination": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Space" + } + } + } + } + }, + "parameters": { + "spaceType": { + "name": "spaceType", + "in": "path", + "description": "Describes the kind of space", + "required": true, + "type": "string", + "x-ms-summary": "Space Type", + "enum": [ + "portfolios", + "sites", + "buildings", + "floors", + "roofs", + "facades", + "outsideareas", + "subareas", + "lands", + "spaces" + ] + }, + "spaceId": { + "name": "id", + "in": "path", + "description": "Format - uuid. Space unique identifier", + "required": true, + "x-ms-summary": "Space ID", + "type": "string" + }, + "spaceIdQuery": { + "name": "spaceid", + "in": "query", + "description": "Format - uuid. Optional identifier of associated space to include in the results", + "x-ms-summary": "Space ID Query", + "type": "string" + }, + "parentId": { + "name": "parentid", + "in": "query", + "description": "Format - uuid. Parent id, required for all space types, but not for Portfolio", + "x-ms-summary": "Parent ID", + "type": "string" + }, + "basePropertiesType": { + "name": "basePropertiesType", + "in": "body", + "schema": {}, + "x-ms-summary": "Base Property Type", + "description": "Space object to be added. Type of actual object must match query parameter 'spacetype'" + }, + "associatedType": { + "name": "associatedType", + "in": "path", + "description": "Describes the kind of associated space", + "required": true, + "type": "string", + "x-ms-summary": "Associated Type", + "enum": [ + "portfolios", + "sites", + "buildings", + "floors", + "roofs", + "facades", + "outsideareas", + "subareas", + "lands", + "spaces" + ] + }, + "skip": { + "name": "$skip", + "in": "query", + "description": "This parameter is used for pagination and marks the starting point of taking the items. Default is 0 ", + "x-ms-summary": "Skip", + "type": "string" + }, + "top": { + "name": "$top", + "in": "query", + "description": "This parameter is used for pagination and determines the maximum number of items which must be returned from the backend. Default is 20.", + "x-ms-summary": "Stop", + "type": "string" + } + }, + "responses": { + "ResponseChildrenCheck": { + "description": "Returns truthful hasChildren property if premises has children premises or equipment.", + "schema": { + "$ref": "#/definitions/ChildrenCheckType" + } + } + }, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://buildingminds.b2clogin.com/buildingminds.onmicrosoft.com/B2C_1A_SignInUnified/oauth2/v2.0/authorize", + "tokenUrl": "https://buildingminds.b2clogin.com/buildingminds.onmicrosoft.com/B2C_1A_SignInUnified/oauth2/v2.0/token", + "scopes": { + "https://buildingminds.onmicrosoft.com/cd1b0fa3-bc0f-4cd7-a09c-dbaf6c19db40/user_impersonation openid offline_access": "https://buildingminds.onmicrosoft.com/cd1b0fa3-bc0f-4cd7-a09c-dbaf6c19db40/user_impersonation openid offline_access" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "https://buildingminds.onmicrosoft.com/cd1b0fa3-bc0f-4cd7-a09c-dbaf6c19db40/user_impersonation openid offline_access" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/BuildingMindsTwin/apiProperties.json b/certified-connectors/BuildingMindsTwin/apiProperties.json new file mode 100755 index 0000000000..df48f74094 --- /dev/null +++ b/certified-connectors/BuildingMindsTwin/apiProperties.json @@ -0,0 +1,36 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "required", + "scopes": [ + "https://buildingminds.onmicrosoft.com/cd1b0fa3-bc0f-4cd7-a09c-dbaf6c19db40/user_impersonation openid offline_access" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://buildingminds.b2clogin.com/buildingminds.onmicrosoft.com/B2C_1A_SignInUnified/oauth2/v2.0/authorize" + }, + "tokenUrl": { + "value": "https://buildingminds.b2clogin.com/buildingminds.onmicrosoft.com/B2C_1A_SignInUnified/oauth2/v2.0/token" + }, + "refreshUrl": { + "value": "https://buildingminds.b2clogin.com/buildingminds.onmicrosoft.com/B2C_1A_SignInUnified/oauth2/v2.0/token" + } + } + } + } + }, + "iconBrandColor": "#428e92", + "capabilities": [], + "publisher": "BuildingMinds", + "stackowner": "BuildingMinds" + } +} \ No newline at end of file From 28afc438e62104e23d7bd6887f5dde16c7ef959f Mon Sep 17 00:00:00 2001 From: Adi Winata Date: Wed, 22 Sep 2021 07:13:38 +0700 Subject: [PATCH 015/219] Update field visibility (#1108) * Add new actions * swagger definition * paths definitions updated * Add publisher and stackOwner on API properties * Update field visibility * dummy clientId --- certified-connectors/Tallyfy/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Tallyfy/apiDefinition.swagger.json b/certified-connectors/Tallyfy/apiDefinition.swagger.json index 156fe784ea..8adb12161d 100644 --- a/certified-connectors/Tallyfy/apiDefinition.swagger.json +++ b/certified-connectors/Tallyfy/apiDefinition.swagger.json @@ -1152,7 +1152,7 @@ "type": "string", "description": "Task type", "title": "Task type", - "x-ms-visibility": "internal", + "x-ms-visibility": "important", "enum": [ "standard", "accept_decline" From e0d2133dee3ba586b33a3369270dab9a35c71296 Mon Sep 17 00:00:00 2001 From: Ahmad Najjar Date: Wed, 22 Sep 2021 02:16:30 +0200 Subject: [PATCH 016/219] AccuWeather (Independent Connector) (#1030) * Submitting AccuWeather IP Connector * Fixing Current Conditions Response Error * Fixing some property mappings + Updating read me file * Fixing Description + Fixing iconBrandColor --- .../AccuWeather/apiDefinition.swagger.json | 7900 +++++++++++++++++ .../AccuWeather/apiProperties.json | 23 + .../AccuWeather/readme.md | 77 + 3 files changed, 8000 insertions(+) create mode 100644 independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/AccuWeather/apiProperties.json create mode 100644 independent-publisher-connectors/AccuWeather/readme.md diff --git a/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json new file mode 100644 index 0000000000..fa6d02dfe9 --- /dev/null +++ b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json @@ -0,0 +1,7900 @@ +{ + "swagger": "2.0", + "info": { + "title": "AccuWeather", + "description": "AccuWeather provides commercial weather forecasting services worldwide.", + "version": "1.0", + "contact": { + "name": "Ahmad Najjar", + "email": "ahmadn82@hotmail.com" + } + }, + "host": "dataservice.accuweather.com", + "basePath": "/", + "schemes": [ + "http" + ], + "consumes": [], + "produces": [], + "paths": { + "/locations/v1/adminareas/{countryCode}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "Level": { + "type": "integer", + "format": "int32", + "description": "Level" + }, + "LocalizedType": { + "type": "string", + "description": "Localized type" + }, + "EnglishType": { + "type": "string", + "description": "English type" + }, + "CountryID": { + "type": "string", + "description": "Country Id" + } + } + } + } + } + }, + "summary": "Get Admin Area List", + "description": "Returns basic information about administrative areas in the specified country.", + "operationId": "AdminAreas", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "countryCode", + "in": "path", + "required": true, + "type": "string", + "description": "The country code to return administrative areas for", + "x-ms-summary": "Country Code", + "x-ms-visibility": "important" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-summary": "Offset", + "x-ms-visibility": "advanced", + "description": "Integer, along with the limit (25) that determines the first resource to be returned. If no offset is provided, the max number (100) of results will be returned." + } + ] + } + }, + "/locations/v1/countries/{regionCode}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + } + } + } + } + }, + "summary": "Get Country List", + "description": "Returns basic information about all countries within a specified region.", + "operationId": "CountryList", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "regionCode", + "in": "path", + "required": true, + "type": "string", + "description": "The region code to return country list for", + "x-ms-summary": "Region Code", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "RegionList", + "value-path": "ID", + "value-title": "EnglishName" + } + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/locations/v1/regions": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + } + } + } + } + }, + "summary": "Get Region List", + "description": "Returns basic information about all regions.", + "operationId": "RegionList", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/locations/v1/topcities/{group}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Version": { + "type": "integer", + "format": "int32", + "description": "Version" + }, + "Key": { + "type": "string", + "description": "Key" + }, + "Type": { + "type": "string", + "description": "Type" + }, + "Rank": { + "type": "integer", + "format": "int32", + "description": "Rank" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "PrimaryPostalCode": { + "type": "string", + "description": "Primary Postal Code" + }, + "Region": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Region" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Country" + }, + "AdministrativeArea": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "Level": { + "type": "integer", + "format": "int32", + "description": "Level" + }, + "LocalizedType": { + "type": "string", + "description": "Localized type" + }, + "EnglishType": { + "type": "string", + "description": "English type" + }, + "CountryID": { + "type": "string", + "description": "Country Id" + } + }, + "description": "Administrative area" + }, + "TimeZone": { + "type": "object", + "properties": { + "Code": { + "type": "string", + "description": "Code" + }, + "Name": { + "type": "string", + "description": "Name" + }, + "GmtOffset": { + "type": "number", + "format": "float", + "description": "Gmt Offset" + }, + "IsDaylightSaving": { + "type": "boolean", + "description": "Is Day light Saving" + }, + "NextOffsetChange": { + "type": "string", + "description": "Next Offset Change" + } + }, + "description": "Time Zone" + }, + "GeoPosition": { + "type": "object", + "properties": { + "Latitude": { + "type": "number", + "format": "float", + "description": "Latitude" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "Longitude" + }, + "Elevation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Elevation" + } + }, + "description": "Geo Position" + }, + "IsAlias": { + "type": "boolean", + "description": "Is Alias" + }, + "SupplementalAdminAreas": { + "type": "array", + "items": {}, + "description": "Supplemental Admin Areas" + }, + "DataSets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Data Sets" + }, + "Details": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Key" + }, + "StationCode": { + "type": "string", + "description": "Station Code" + }, + "StationGmtOffset": { + "type": "number", + "format": "float", + "description": "Station Gmt Offset" + }, + "BandMap": { + "type": "string", + "description": "Band Map" + }, + "Climo": { + "type": "string", + "description": "Climo" + }, + "LocalRadar": { + "type": "string", + "description": "Local Radar" + }, + "MediaRegion": { + "type": "string", + "description": "Media Region" + }, + "Metar": { + "type": "string", + "description": "Metar" + }, + "NXMetro": { + "type": "string", + "description": "NX Metro" + }, + "NXState": { + "type": "string", + "description": "NX State" + }, + "Population": { + "type": "integer", + "format": "int32", + "description": "Population" + }, + "PrimaryWarningCountyCode": { + "type": "string", + "description": "Primary Warning County Code" + }, + "PrimaryWarningZoneCode": { + "type": "string", + "description": "Primary Warning Zone Code" + }, + "Satellite": { + "type": "string", + "description": "Satellite" + }, + "Synoptic": { + "type": "string", + "description": "Synoptic" + }, + "MarineStation": { + "type": "string", + "description": "Marine Station" + }, + "MarineStationGMTOffset": { + "type": "number", + "format": "float", + "description": "Marine Station GMT Offset" + }, + "VideoCode": { + "type": "string", + "description": "Video Code" + }, + "LocationStem": { + "type": "string", + "description": "Location Stem" + }, + "PartnerID": { + "type": "string", + "description": "Partner ID" + }, + "Sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DataType": { + "type": "string", + "description": "Data Type" + }, + "Source": { + "type": "string", + "description": "Source" + }, + "SourceId": { + "type": "integer", + "format": "int32", + "description": "Source Id" + }, + "PartnerSourceUrl": { + "type": "string", + "description": "Partner Source Url" + } + } + }, + "description": "Sources" + }, + "CanonicalPostalCode": { + "type": "string", + "description": "Canonical Postal Code" + }, + "CanonicalLocationKey": { + "type": "string", + "description": "Canonical Location Key" + } + }, + "description": "Details" + } + } + } + } + } + }, + "summary": "Get Top Cities List", + "description": "Returns information for the top 50, 100, or 150 cities, worldwide.", + "operationId": "TopCitiesList", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "group", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Group", + "description": "The number of cities to return.", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 50, + 100, + 150 + ] + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "description": "Specifies whether or not to include full details in the response.", + "enum": [ + false, + true + ] + } + ] + } + }, + "/locations/v1/cities/autocomplete": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Version": { + "type": "integer", + "format": "int32", + "description": "Version" + }, + "Key": { + "type": "string", + "description": "Key" + }, + "Type": { + "type": "string", + "description": "Type" + }, + "Rank": { + "type": "integer", + "format": "int32", + "description": "Rank" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + } + }, + "description": "Country" + }, + "AdministrativeArea": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + } + }, + "description": "Administrative Area" + } + } + } + } + } + }, + "summary": "Autocomplete search (Cities)", + "description": "Returns basic information about locations matching an autocomplete of the search text.", + "operationId": "AutocompleteCities", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "q", + "in": "query", + "required": true, + "type": "string", + "description": "Text to use for Autocomplete search.", + "x-ms-summary": "Text", + "x-ms-visibility": "important" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/locations/v1/cities/geoposition/search": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Version": { + "type": "integer", + "format": "int32", + "description": "Version" + }, + "Key": { + "type": "string", + "description": "Key" + }, + "Type": { + "type": "string", + "description": "Type" + }, + "Rank": { + "type": "integer", + "format": "int32", + "description": "Rank" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "PrimaryPostalCode": { + "type": "string", + "description": "Primary Postal Code" + }, + "Region": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Region" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Country" + }, + "AdministrativeArea": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "Level": { + "type": "integer", + "format": "int32", + "description": "Level" + }, + "LocalizedType": { + "type": "string", + "description": "Localized type" + }, + "EnglishType": { + "type": "string", + "description": "English type" + }, + "CountryID": { + "type": "string", + "description": "Country Id" + } + }, + "description": "Administrative Area" + }, + "TimeZone": { + "type": "object", + "properties": { + "Code": { + "type": "string", + "description": "Code" + }, + "Name": { + "type": "string", + "description": "Name" + }, + "GmtOffset": { + "type": "number", + "format": "float", + "description": "Gmt Offset", + "title": "" + }, + "IsDaylightSaving": { + "type": "boolean", + "description": "Is Daylight Saving" + }, + "NextOffsetChange": { + "type": "string", + "description": "Next Offset Change" + } + }, + "description": "TimeZone" + }, + "GeoPosition": { + "type": "object", + "properties": { + "Latitude": { + "type": "number", + "format": "float", + "description": "Latitude" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "Longitude" + }, + "Elevation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Elevation" + } + }, + "description": "Geo Position" + }, + "IsAlias": { + "type": "boolean", + "description": "Is Alias" + }, + "ParentCity": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Key" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Parent City" + }, + "SupplementalAdminAreas": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Level": { + "type": "integer", + "format": "int32", + "description": "Level" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + } + }, + "description": "Supplemental Admin Areas" + }, + "DataSets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Data Sets" + }, + "Details": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Key" + }, + "StationCode": { + "type": "string", + "description": "Station Code" + }, + "StationGmtOffset": { + "type": "number", + "format": "float", + "description": "Station Gmt Offset", + "title": "" + }, + "BandMap": { + "type": "string", + "description": "Band Map" + }, + "Climo": { + "type": "string", + "description": "Climo" + }, + "LocalRadar": { + "type": "string", + "description": "Local Radar" + }, + "MediaRegion": { + "type": "string", + "description": "Media Region" + }, + "Metar": { + "type": "string", + "description": "Metar" + }, + "NXMetro": { + "type": "string", + "description": "NX Metro" + }, + "NXState": { + "type": "string", + "description": "NX State" + }, + "Population": { + "type": "integer", + "format": "int32", + "description": "Population" + }, + "PrimaryWarningCountyCode": { + "type": "string", + "description": "Primary Warning County Code" + }, + "PrimaryWarningZoneCode": { + "type": "string", + "description": "Primary Warning Zone Code" + }, + "Satellite": { + "type": "string", + "description": "Satellite" + }, + "Synoptic": { + "type": "string", + "description": "Synoptic" + }, + "MarineStation": { + "type": "string", + "description": "Marine Station" + }, + "MarineStationGMTOffset": { + "type": "number", + "format": "float", + "description": "Marine Station GMT Offset" + }, + "VideoCode": { + "type": "string", + "description": "Video Code" + }, + "LocationStem": { + "type": "string", + "description": "Location Stem" + }, + "DMA": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "DMA" + }, + "PartnerID": { + "type": "string", + "description": "Partner ID" + }, + "Sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DataType": { + "type": "string", + "description": "Data Type" + }, + "Source": { + "type": "string", + "description": "Source" + }, + "SourceId": { + "type": "integer", + "format": "int32", + "description": "SourceId" + } + } + }, + "description": "Sources" + }, + "CanonicalPostalCode": { + "type": "string", + "description": "Canonical Postal Code" + }, + "CanonicalLocationKey": { + "type": "string", + "description": "Canonical Location Key" + } + }, + "description": "Details" + } + } + } + } + }, + "summary": "Geoposition Search (Latitude and Longitude)", + "description": "Returns information about a specific location, by GeoPosition (Latitude and Longitude).", + "operationId": "GeopositionSearch", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "q", + "in": "query", + "required": true, + "type": "string", + "description": "A comma-separated lat/long pair (lat,long).", + "x-ms-summary": "Latitude,Longitude", + "x-ms-visibility": "important" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + }, + { + "name": "toplevel", + "in": "query", + "required": false, + "type": "boolean", + "description": "When toplevel=true, the city with the highest rank will be returned. Large cities have higher rank than the neighborhoods within them, so toplevel=true delivers a more generic location result. (Example: 40.73,-74.00 returns Greenwich Village, NY when toplevel=false. If toplevel=true, the same lat/lon pair will return New York, NY.)", + "x-ms-summary": "Top Level", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/forecasts/v1/daily/{duration}day/{locationKey}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Headline": { + "type": "object", + "properties": { + "EffectiveDate": { + "type": "string", + "description": "Effective Date" + }, + "EffectiveEpochDate": { + "type": "integer", + "format": "int32", + "description": "Effective Epoch Date" + }, + "Severity": { + "type": "integer", + "format": "int32", + "description": "Severity" + }, + "Text": { + "type": "string", + "description": "Text" + }, + "Category": { + "type": "string", + "description": "Category" + }, + "EndDate": { + "type": "string", + "description": "EndDate" + }, + "EndEpochDate": { + "type": "integer", + "format": "int32", + "description": "End Epoch Date" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + }, + "description": "Headline" + }, + "DailyForecasts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Date" + }, + "EpochDate": { + "type": "integer", + "format": "int32", + "description": "Epoch Date" + }, + "Sun": { + "type": "object", + "properties": { + "Rise": { + "type": "string", + "description": "Rise" + }, + "EpochRise": { + "type": "integer", + "format": "int32", + "description": "Epoch Rise" + }, + "Set": { + "type": "string", + "description": "Set" + }, + "EpochSet": { + "type": "integer", + "format": "int32", + "description": "Epoch Set" + } + }, + "description": "Sun" + }, + "Moon": { + "type": "object", + "properties": { + "Rise": { + "type": "string", + "description": "Rise" + }, + "EpochRise": { + "type": "integer", + "format": "int32", + "description": "Epoch Rise" + }, + "Set": { + "type": "string", + "description": "Set" + }, + "EpochSet": { + "type": "integer", + "format": "int32", + "description": "Epoch Set" + }, + "Phase": { + "type": "string", + "description": "Phase" + }, + "Age": { + "type": "integer", + "format": "int32", + "description": "Age" + } + }, + "description": "Moon" + }, + "Temperature": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Maximum" + } + }, + "description": "Temperature" + }, + "RealFeelTemperature": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Maximum" + } + }, + "description": "Real Feel Temperature" + }, + "RealFeelTemperatureShade": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Maximum" + } + }, + "description": "Real Feel Temperature Shade" + }, + "HoursOfSun": { + "type": "number", + "format": "float", + "description": "Hours Of Sun" + }, + "DegreeDaySummary": { + "type": "object", + "properties": { + "Heating": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Heating" + }, + "Cooling": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Cooling" + } + }, + "description": "Degree Day Summary" + }, + "AirAndPollen": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Category": { + "type": "string", + "description": "Category" + }, + "CategoryValue": { + "type": "integer", + "format": "int32", + "description": "Category Value" + }, + "Type": { + "type": "string", + "description": "Type" + } + } + }, + "description": "Air And Pollen" + }, + "Day": { + "type": "object", + "properties": { + "Icon": { + "type": "integer", + "format": "int32", + "description": "Icon" + }, + "IconPhrase": { + "type": "string", + "description": "Icon Phrase" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "ShortPhrase": { + "type": "string", + "description": "Short Phrase" + }, + "LongPhrase": { + "type": "string", + "description": "Long Phrase" + }, + "PrecipitationProbability": { + "type": "integer", + "format": "int32", + "description": "Precipitation Probability" + }, + "ThunderstormProbability": { + "type": "integer", + "format": "int32", + "description": "Thunderstorm Probability" + }, + "RainProbability": { + "type": "integer", + "format": "int32", + "description": "Rain Probability" + }, + "SnowProbability": { + "type": "integer", + "format": "int32", + "description": "Snow Probability" + }, + "IceProbability": { + "type": "integer", + "format": "int32", + "description": "Ice Probability" + }, + "Wind": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + }, + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + }, + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + } + }, + "description": "Wind Gust" + }, + "TotalLiquid": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Total Liquid" + }, + "Rain": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Rain" + }, + "Snow": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Snow" + }, + "Ice": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Ice" + }, + "HoursOfPrecipitation": { + "type": "integer", + "format": "int32", + "description": "Hours Of Precipitation" + }, + "HoursOfRain": { + "type": "integer", + "format": "int32", + "description": "Hours Of Rain" + }, + "HoursOfSnow": { + "type": "integer", + "format": "int32", + "description": "Hours Of Snow" + }, + "HoursOfIce": { + "type": "integer", + "format": "int32", + "description": "Hours Of Ice" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Evapotranspiration": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Evapotranspiration" + }, + "SolarIrradiance": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Solar Irradiance" + } + }, + "description": "Day" + }, + "Night": { + "type": "object", + "properties": { + "Icon": { + "type": "integer", + "format": "int32", + "description": "Icon" + }, + "IconPhrase": { + "type": "string", + "description": "Icon Phrase" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "ShortPhrase": { + "type": "string", + "description": "Short Phrase" + }, + "LongPhrase": { + "type": "string", + "description": "Long Phrase" + }, + "PrecipitationProbability": { + "type": "integer", + "format": "int32", + "description": "Precipitation Probability" + }, + "ThunderstormProbability": { + "type": "integer", + "format": "int32", + "description": "Thunderstorm Probability" + }, + "RainProbability": { + "type": "integer", + "format": "int32", + "description": "Rain Probability" + }, + "SnowProbability": { + "type": "integer", + "format": "int32", + "description": "Snow Probability" + }, + "IceProbability": { + "type": "integer", + "format": "int32", + "description": "Ice Probability" + }, + "Wind": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + }, + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + }, + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + } + }, + "description": "Wind Gust" + }, + "TotalLiquid": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Total Liquid" + }, + "Rain": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Rain" + }, + "Snow": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Snow" + }, + "Ice": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Ice" + }, + "HoursOfPrecipitation": { + "type": "integer", + "format": "int32", + "description": "Hours Of Precipitation" + }, + "HoursOfRain": { + "type": "integer", + "format": "int32", + "description": "Hours Of Rain" + }, + "HoursOfSnow": { + "type": "integer", + "format": "int32", + "description": "Hours Of Snow" + }, + "HoursOfIce": { + "type": "integer", + "format": "int32", + "description": "Hours Of Ice" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Evapotranspiration": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Evapotranspiration" + }, + "SolarIrradiance": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Solar Irradiance" + } + }, + "description": "Night" + }, + "Sources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Sources" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + }, + "description": "Daily Forecasts" + } + } + } + } + }, + "summary": "Get Daily Forecasts", + "description": "Returns daily forecast data for a specific location.", + "operationId": "DailyForcasts", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "duration", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Duration (days)", + "description": "Time interval (duration)", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 1, + 5, + 10, + 15 + ] + }, + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "description": "Specifies whether or not to include full details in the response.", + "enum": [ + false, + true + ] + }, + { + "name": "metric", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Metric", + "x-ms-visibility": "advanced", + "description": "Specifies whether or not to display metric values.", + "enum": [ + false, + true + ] + } + ] + } + }, + "/forecasts/v1/hourly/{duration}hour/{locationKey}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DateTime": { + "type": "string", + "description": "Date Time" + }, + "EpochDateTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Date Time" + }, + "WeatherIcon": { + "type": "integer", + "format": "int32", + "description": "Weather Icon" + }, + "IconPhrase": { + "type": "string", + "description": "Icon Phrase" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "IsDaylight": { + "type": "boolean", + "description": "Is Daylight" + }, + "Temperature": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Temperature" + }, + "RealFeelTemperature": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Real Feel Temperature" + }, + "RealFeelTemperatureShade": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Real Feel TemperatureShade" + }, + "WetBulbTemperature": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Wet Bulb Temperature" + }, + "DewPoint": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Dew Point" + }, + "Wind": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + }, + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Speed" + } + }, + "description": "WindGust" + }, + "RelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Relative Humidity" + }, + "IndoorRelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Indoor Relative Humidity" + }, + "Visibility": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Visibility" + }, + "Ceiling": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Ceiling" + }, + "UVIndex": { + "type": "integer", + "format": "int32", + "description": "UV Index" + }, + "UVIndexText": { + "type": "string", + "description": "UV IndexText" + }, + "PrecipitationProbability": { + "type": "integer", + "format": "int32", + "description": "Precipitation Probability" + }, + "ThunderstormProbability": { + "type": "integer", + "format": "int32", + "description": "Thunderstorm Probability" + }, + "RainProbability": { + "type": "integer", + "format": "int32", + "description": "Rain Probability" + }, + "SnowProbability": { + "type": "integer", + "format": "int32", + "description": "Snow Probability" + }, + "IceProbability": { + "type": "integer", + "format": "int32", + "description": "Ice Probability" + }, + "TotalLiquid": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Total Liquid" + }, + "Rain": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Rain" + }, + "Snow": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Snow" + }, + "Ice": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Ice" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Evapotranspiration": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Evapotranspiration" + }, + "SolarIrradiance": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Solar Irradiance" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Hourly Forecasts", + "description": "Returns forecast data for the next hour(s) for a specific location.", + "operationId": "HourlyForcasts", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "duration", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Duration (hours)", + "description": "Time interval (duration)", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 1, + 12, + 24, + 72, + 120 + ] + }, + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "description": "Specifies whether or not to include full details in the response.", + "enum": [ + false, + true + ] + }, + { + "name": "metric", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Metric", + "x-ms-visibility": "advanced", + "description": "Specifies whether or not to display metric values.", + "enum": [ + false, + true + ] + } + ] + } + }, + "/currentconditions/v1/{locationKey}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LocalObservationDateTime": { + "type": "string", + "description": "Local Observation Date Time" + }, + "EpochTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Time" + }, + "WeatherText": { + "type": "string", + "description": "Weather Text" + }, + "WeatherIcon": { + "type": "integer", + "format": "int32", + "description": "Weather Icon" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "PrecipitationType": { + "type": "string", + "description": "Precipitation Type" + }, + "IsDayTime": { + "type": "boolean", + "description": "Is Day Time" + }, + "Temperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Temperature" + }, + "RealFeelTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature" + }, + "RealFeelTemperatureShade": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature Shade" + }, + "RelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Relative Humidity" + }, + "IndoorRelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Indoor Relative Humidity" + }, + "DewPoint": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Dew Point" + }, + "Wind": { + "type": "object", + "properties": { + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + }, + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "Wind Gust" + }, + "UVIndex": { + "type": "integer", + "format": "int32", + "description": "UV Index" + }, + "UVIndexText": { + "type": "string", + "description": "UV Index Text" + }, + "Visibility": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Visibility" + }, + "ObstructionsToVisibility": { + "type": "string", + "description": "Obstructions To Visibility" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Ceiling": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Ceiling" + }, + "Pressure": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Pressure" + }, + "PressureTendency": { + "type": "object", + "properties": { + "LocalizedText": { + "type": "string", + "description": "Localized Text" + }, + "Code": { + "type": "string", + "description": "Code" + } + }, + "description": "Pressure Tendency" + }, + "Past24HourTemperatureDeparture": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hour Temperature Departure" + }, + "ApparentTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Apparent Temperature" + }, + "WindChillTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wind Chill Temperature" + }, + "WetBulbTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wet Bulb Temperature" + }, + "Precip1hr": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Precipitation 1 hour" + }, + "PrecipitationSummary": { + "type": "object", + "properties": { + "Precipitation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Precipitation" + }, + "PastHour": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past Hour" + }, + "Past3Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 3 Hours" + }, + "Past6Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 6 Hours" + }, + "Past9Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 9 Hours" + }, + "Past12Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 12 Hours" + }, + "Past18Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 18 Hours" + }, + "Past24Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hours" + } + }, + "description": "PrecipitationSummary" + }, + "TemperatureSummary": { + "type": "object", + "properties": { + "Past6HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 6 Hour Range" + }, + "Past12HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 12 Hour Range" + }, + "Past24HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 24 Hour Range" + } + }, + "description": "Temperature Summary" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Current Conditions", + "description": "Returns current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing \"details=true\" into the url string.", + "operationId": "CurrentConditions", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/currentconditions/v1/topcities/{group}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Key" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "ID" + }, + "LocalizedName": { + "type": "string", + "description": "Localized name" + }, + "EnglishName": { + "type": "string", + "description": "English name" + } + }, + "description": "Country" + }, + "TimeZone": { + "type": "object", + "properties": { + "Code": { + "type": "string", + "description": "Code" + }, + "Name": { + "type": "string", + "description": "Name" + }, + "GmtOffset": { + "type": "number", + "format": "float", + "description": "Gmt Offset", + "title": "" + }, + "IsDaylightSaving": { + "type": "boolean", + "description": "Is Day lightSaving" + }, + "NextOffsetChange": { + "type": "string", + "description": "Next Offset Change" + } + }, + "description": "Time Zone" + }, + "GeoPosition": { + "type": "object", + "properties": { + "Latitude": { + "type": "number", + "format": "float", + "description": "Latitude" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "Longitude" + }, + "Elevation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value", + "title": "" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value", + "title": "" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Elevation" + } + }, + "description": "Geo Position" + }, + "LocalObservationDateTime": { + "type": "string", + "description": "Local Observation Date Time" + }, + "EpochTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Time" + }, + "WeatherText": { + "type": "string", + "description": "Weather Text" + }, + "WeatherIcon": { + "type": "integer", + "format": "int32", + "description": "Weather Icon" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "PrecipitationType": { + "type": "string", + "description": "Precipitation Type" + }, + "IsDayTime": { + "type": "boolean", + "description": "Is Day Time" + }, + "Temperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "float", + "description": "Value", + "title": "" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Temperature" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + }, + "LocalSource": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int32", + "description": "Id" + }, + "Name": { + "type": "string", + "description": "Name" + }, + "WeatherCode": { + "type": "string", + "description": "Weather Code" + } + }, + "description": "Local Source" + } + } + } + } + } + }, + "summary": "Get Current Conditions for Top Cities", + "description": "Returns current conditions data for the top 50, 100, or 150 cities worldwide, based on rank.", + "operationId": "CurrentConditionsTopCities", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "group", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Group", + "description": "Group size, indicating how many cities to return. Valid values are 50, 100, or 150.", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 50, + 100, + 150 + ] + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/currentconditions/v1/{locationKey}/historical/24": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LocalObservationDateTime": { + "type": "string", + "description": "Local Observation Date Time" + }, + "EpochTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Time" + }, + "WeatherText": { + "type": "string", + "description": "Weather Text" + }, + "WeatherIcon": { + "type": "integer", + "format": "int32", + "description": "Weather Icon" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "PrecipitationType": { + "type": "string", + "description": "Precipitation Type" + }, + "IsDayTime": { + "type": "boolean", + "description": "Is Day Time" + }, + "Temperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Temperature" + }, + "RealFeelTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature" + }, + "RealFeelTemperatureShade": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature Shade" + }, + "RelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Relative Humidity" + }, + "IndoorRelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Indoor Relative Humidity" + }, + "DewPoint": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Dew Point" + }, + "Wind": { + "type": "object", + "properties": { + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + }, + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "WindGust" + }, + "UVIndex": { + "type": "integer", + "format": "int32", + "description": "UV Index" + }, + "UVIndexText": { + "type": "string", + "description": "UV Index Text" + }, + "Visibility": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Visibility" + }, + "ObstructionsToVisibility": { + "type": "string", + "description": "Obstructions To Visibility" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Ceiling": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Ceiling" + }, + "Pressure": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Pressure" + }, + "PressureTendency": { + "type": "object", + "properties": { + "LocalizedText": { + "type": "string", + "description": "Localized Text" + }, + "Code": { + "type": "string", + "description": "Code" + } + }, + "description": "Pressure Tendency" + }, + "Past24HourTemperatureDeparture": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hour Temperature Departure" + }, + "ApparentTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Apparent Temperature" + }, + "WindChillTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wind Chill Temperature" + }, + "WetBulbTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wet Bulb Temperature" + }, + "Precip1hr": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Precipitation 1 Hour" + }, + "PrecipitationSummary": { + "type": "object", + "properties": { + "Precipitation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Precipitation" + }, + "PastHour": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past Hour" + }, + "Past3Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 3 Hours" + }, + "Past6Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 6 Hours" + }, + "Past9Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 9 Hours" + }, + "Past12Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 12 Hours" + }, + "Past18Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 18 Hours" + }, + "Past24Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hours" + } + }, + "description": "Precipitation Summary" + }, + "TemperatureSummary": { + "type": "object", + "properties": { + "Past6HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 6 Hour Range" + }, + "Past12HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 12 Hour Range" + }, + "Past24HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 24 Hour Range" + } + }, + "description": "Temperature Summary" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Historical Current Conditions (past 24 hours)", + "description": "Returns historical current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing \"details=true\" into the url string.", + "operationId": "HistoricalCurrentConditions24H", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/currentconditions/v1/{locationKey}/historical": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LocalObservationDateTime": { + "type": "string", + "description": "Local Observation Date Time" + }, + "EpochTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Time" + }, + "WeatherText": { + "type": "string", + "description": "Weather Text" + }, + "WeatherIcon": { + "type": "integer", + "format": "int32", + "description": "Weather Icon" + }, + "HasPrecipitation": { + "type": "boolean", + "description": "Has Precipitation" + }, + "PrecipitationType": { + "type": "string", + "description": "Precipitation Type" + }, + "IsDayTime": { + "type": "boolean", + "description": "Is Day Time" + }, + "Temperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Temperature" + }, + "RealFeelTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature" + }, + "RealFeelTemperatureShade": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Real Feel Temperature Shade" + }, + "RelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Relative Humidity" + }, + "IndoorRelativeHumidity": { + "type": "integer", + "format": "int32", + "description": "Indoor Relative Humidity" + }, + "DewPoint": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Dew Point" + }, + "Wind": { + "type": "object", + "properties": { + "Direction": { + "type": "object", + "properties": { + "Degrees": { + "type": "integer", + "format": "int32", + "description": "Degrees" + }, + "Localized": { + "type": "string", + "description": "Localized" + }, + "English": { + "type": "string", + "description": "English" + } + }, + "description": "Direction" + }, + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "Wind" + }, + "WindGust": { + "type": "object", + "properties": { + "Speed": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Speed" + } + }, + "description": "Wind Gust" + }, + "UVIndex": { + "type": "integer", + "format": "int32", + "description": "UV Index" + }, + "UVIndexText": { + "type": "string", + "description": "UV Index Text" + }, + "Visibility": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Visibility" + }, + "ObstructionsToVisibility": { + "type": "string", + "description": "Obstructions To Visibility" + }, + "CloudCover": { + "type": "integer", + "format": "int32", + "description": "Cloud Cover" + }, + "Ceiling": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Ceiling" + }, + "Pressure": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Pressure" + }, + "PressureTendency": { + "type": "object", + "properties": { + "LocalizedText": { + "type": "string", + "description": "Localized Text" + }, + "Code": { + "type": "string", + "description": "Code" + } + }, + "description": "Pressure Tendency" + }, + "Past24HourTemperatureDeparture": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hour Temperature Departure" + }, + "ApparentTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Apparent Temperature" + }, + "WindChillTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wind Chill Temperature" + }, + "WetBulbTemperature": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Wet Bulb Temperature" + }, + "Precip1hr": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "precipitation 1 Hour" + }, + "PrecipitationSummary": { + "type": "object", + "properties": { + "Precipitation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Precipitation" + }, + "PastHour": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past Hour" + }, + "Past3Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 3 Hours" + }, + "Past6Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 6 Hours" + }, + "Past9Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 9 Hours" + }, + "Past12Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 12 Hours" + }, + "Past18Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 18 Hours" + }, + "Past24Hours": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Past 24 Hours" + } + }, + "description": "Precipitation Summary" + }, + "TemperatureSummary": { + "type": "object", + "properties": { + "Past6HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 6 Hour Range" + }, + "Past12HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 12 Hour Range" + }, + "Past24HourRange": { + "type": "object", + "properties": { + "Minimum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Minimum" + }, + "Maximum": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Unit": { + "type": "string", + "description": "Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "Unit type" + } + }, + "description": "Imperial" + } + }, + "description": "Maximum" + } + }, + "description": "Past 24 Hour Range" + } + }, + "description": "Temperature Summary" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Historical Current Conditions (past 6 hours)", + "description": "Returns historical current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing \"details=true\" into the url string.", + "operationId": "HistoricalCurrentConditions6H", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/indices/v1/daily/{duration}day/{locationKey}/groups/{groupId}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "Ascending": { + "type": "boolean", + "description": "Ascending" + }, + "LocalDateTime": { + "type": "string", + "description": "Local Date Time" + }, + "EpochDateTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Date Time" + }, + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Category": { + "type": "string", + "description": "Category" + }, + "CategoryValue": { + "type": "integer", + "format": "int32", + "description": "Category Value" + }, + "Text": { + "type": "string", + "description": "Text" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Daily Index Values for a Group of Indices", + "description": "Returns daily index data for a specific group of indices, by location key.", + "operationId": "DailyIndexValuesByGroupOfIndicies", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "duration", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Duration (days)", + "description": "Time interval (duration)", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 1, + 5, + 10, + 15 + ] + }, + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "groupId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Indices Group", + "description": "All index groups", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "ListIndexGroups", + "value-path": "ID", + "value-title": "Name" + } + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/indices/v1/daily/{duration}day/{locationKey}/{indexId}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "Ascending": { + "type": "boolean", + "description": "Ascending" + }, + "LocalDateTime": { + "type": "string", + "description": "Local Date Time" + }, + "EpochDateTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Date Time" + }, + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Category": { + "type": "string", + "description": "Category" + }, + "CategoryValue": { + "type": "integer", + "format": "int32", + "description": "Category Value" + }, + "Text": { + "type": "string", + "description": "Text" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Daily Index Values for a Specific Index", + "description": "Returns daily index data for a specific index, by location key. Not all daily indices data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices)", + "operationId": "DailyIndexValuesBySpecificIndex", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "duration", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Duration (days)", + "description": "Time interval (duration)", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 1, + 5, + 10, + 15 + ] + }, + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "indexId", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Index", + "description": "The index to get the values for. NOTE: Not all daily indices data are available for retrieval, Check: https://developer.accuweather.com/list-available-daily-indices", + "x-ms-visibility": "important", + "format": "int32", + "x-ms-dynamic-values": { + "operationId": "ListDailyIndices", + "value-path": "ID", + "value-title": "Name" + } + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/indices/v1/daily/{duration}day/{locationKey}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "Ascending": { + "type": "boolean", + "description": "Ascending" + }, + "LocalDateTime": { + "type": "string", + "description": "Local Date Time" + }, + "EpochDateTime": { + "type": "integer", + "format": "int32", + "description": "Epoch Date Time" + }, + "Value": { + "type": "number", + "format": "double", + "description": "Value" + }, + "Category": { + "type": "string", + "description": "Category" + }, + "CategoryValue": { + "type": "integer", + "format": "int32", + "description": "Category Value" + }, + "Text": { + "type": "string", + "description": "Text" + }, + "MobileLink": { + "type": "string", + "description": "Mobile Link" + }, + "Link": { + "type": "string", + "description": "Link" + } + } + } + } + } + }, + "summary": "Get Daily Index Values for for All Indices", + "description": "Returns daily index data for all indices, by location key.", + "operationId": "DailyIndexValuesForAllIndices", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "locationKey", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Location Key", + "description": "Unique ID used to search for a specific location.", + "x-ms-visibility": "important", + "format": "int32" + }, + { + "name": "duration", + "in": "path", + "required": true, + "type": "integer", + "x-ms-summary": "Duration (days)", + "description": "Time interval (duration)", + "x-ms-visibility": "important", + "format": "int32", + "enum": [ + 1, + 5, + 10, + 15 + ] + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "description": "Specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "x-ms-visibility": "advanced", + "enum": [ + false, + true + ] + } + ] + } + }, + "/indices/v1/daily": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "Ascending": { + "type": "boolean", + "description": "Ascending" + }, + "Description": { + "type": "string", + "description": "Description" + } + } + } + } + } + }, + "summary": "Get List of Daily Indices", + "description": "Returns metadata for all daily indices.", + "operationId": "ListDailyIndices", + "x-ms-visibility": "advanced", + "parameters": [] + } + }, + "/indices/v1/daily/groups": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + } + } + } + } + } + }, + "summary": "Get List of Index Groups", + "description": "Returns metadata for all index groups.", + "operationId": "ListIndexGroups", + "x-ms-visibility": "advanced", + "parameters": [] + } + }, + "/indices/v1/daily/groups/{groupId}": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name" + }, + "ID": { + "type": "integer", + "format": "int32", + "description": "ID" + }, + "Ascending": { + "type": "boolean", + "description": "Ascending" + }, + "Description": { + "type": "string", + "description": "Description" + } + } + } + } + } + }, + "summary": "Get List of Indices in a Specific Group", + "description": "Returns metadata for all indices in a specified group.", + "operationId": "ListOfIndiciesInAGroupByGroupID", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "type": "integer", + "description": "Index group Id", + "x-ms-summary": "Group Id", + "x-ms-visibility": "important", + "format": "int32", + "x-ms-dynamic-values": { + "operationId": "ListIndexGroups", + "value-path": "ID", + "value-title": "Name" + } + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "description": "String indicating the language in which to return the resource. (Default en-us)", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "apikey" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.accuweather.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.accuweather.com/en/privacy" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/AccuWeather/apiProperties.json b/independent-publisher-connectors/AccuWeather/apiProperties.json new file mode 100644 index 0000000000..f393ca062d --- /dev/null +++ b/independent-publisher-connectors/AccuWeather/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "AccuWeather API Key", + "description": "The app/subscription API key issued by AccuWeather", + "tooltip": "Provide API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Ahmad Najjar", + "stackOwner": "AccuWeather, Inc." + } +} diff --git a/independent-publisher-connectors/AccuWeather/readme.md b/independent-publisher-connectors/AccuWeather/readme.md new file mode 100644 index 0000000000..6ae4f109d6 --- /dev/null +++ b/independent-publisher-connectors/AccuWeather/readme.md @@ -0,0 +1,77 @@ +# AccuWeather +AccuWeather is a service that provides commercial weather forecasting services worldwide. + +## Publisher +### Ahmad Najjar + +## Prerequisites +You need to have an AccuWeather [developer account](https://developer.accuweather.com/) or a [subscription package](https://developer.accuweather.com/packages). + +## Supported Operations +### [Locations Operations](https://developer.accuweather.com/accuweather-locations-api/apis) +#### Get Admin Area List +Returns basic information about administrative areas in the specified country. + +#### Get Country List +Returns basic information about all countries within a specified region. + +#### Get Region List +Returns basic information about all regions. + +#### Get Top Cities List +Returns information for the top 50, 100, or 150 cities, worldwide. + +#### Autocomplete search (Cities) +Returns basic information about locations matching an autocomplete of the search text. + +#### Geoposition Search (Latitude and Longitude) +Returns information about a specific location, by GeoPosition (Latitude and Longitude). + +### [Forecasts Operations](https://developer.accuweather.com/accuweather-forecast-api/apis) +#### Get Daily Forecasts +Returns daily forecast data for a specific location. + +#### Get Hourly Forecasts +Returns forecast data for the next hour(s) for a specific location. + +### [Current Conditions Operations](https://developer.accuweather.com/accuweather-current-conditions-api/apis) +#### Get Current Conditions +Returns current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing "details=true" into the url string. + +#### Get Current Conditions for Top Cities +Returns current conditions data for the top 50, 100, or 150 cities worldwide, based on rank. + +#### Get Historical Current Conditions (past 24 hours) +Returns historical current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing "details=true" into the url string. + +#### Get Historical Current Conditions (past 6 hours) +Returns historical current conditions data for a specific location. Current conditions searches require a location key. Please use the Locations API to obtain the location key for your desired location. By default, a truncated version of the current conditions data is returned. The full object can be obtained by passing "details=true" into the url string. + +### [Indices Operations](https://developer.accuweather.com/accuweather-indices-api/apis) +#### Get Daily Index Values for a Group of Indices +Returns daily index data for a specific group of indices, by location key. Not all daily indices' groups data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices) + +#### Get Daily Index Values for a Specific Index +Returns daily index data for a specific index, by location key. Not all daily indices data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices) + +#### Get Daily Index Values for for All Indices +Returns daily index data for all indices, by location key. + +#### Get List of Daily Indices +Returns metadata for all daily indices. + +#### Get List of Index Groups +Returns metadata for all index groups. + +#### Get List of Indices in a Specific Group +Returns metadata for all indices in a specified group. + +## API Documentation +Visit [AccuWeather APIs reference](https://developer.accuweather.com/apis) page for further details. + +## Known Issues and Limitations +* Operation "Get Daily Index Values for a Group of Indices" +* Operation "Get Daily Index Values for a Specific Index" +Not all daily indices/groups' indices data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices) + +#### Not all operations provided by AccuWeather are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) \ No newline at end of file From 44d738d92b606e8e17b32ab4d4ed00be0f7a1136 Mon Sep 17 00:00:00 2001 From: mdujardibs <88819755+mdujardibs@users.noreply.github.com> Date: Thu, 23 Sep 2021 03:42:34 +0200 Subject: [PATCH 017/219] New connector : Sociabble (Updated) (#1114) * New connector : Sociabble * Changes requested during certification process * Missing descriptions * Missing titles * Update iconBrandColor * Updating swagger with UploadMedia and UploadMediaUrl returing an object + changing visibility of some endpoints * Updating media endpoints again --- .../Sociabble/apiDefinition.swagger.json | 39 ++++--------------- 1 file changed, 7 insertions(+), 32 deletions(-) diff --git a/certified-connectors/Sociabble/apiDefinition.swagger.json b/certified-connectors/Sociabble/apiDefinition.swagger.json index db48659925..03b73ae2dc 100644 --- a/certified-connectors/Sociabble/apiDefinition.swagger.json +++ b/certified-connectors/Sociabble/apiDefinition.swagger.json @@ -726,7 +726,7 @@ } }, "summary": "Upload a media", - "description": "Upload a media to use during the creation of an internal news", + "description": "Upload a media (media or mediaUrl in form-data) to use during the creation of an internal news", "operationId": "UploadMedia", "consumes": [ "multipart/form-data" @@ -735,44 +735,19 @@ { "name": "media", "in": "formData", - "required": true, + "required": false, "type": "file", "x-ms-media-kind": "image", "description": "The media to be uploaded", "x-ms-summary": "Media" - } - ] - } - }, - "/medias/{mediaUrl}": { - "post": { - "responses": { - "200": { - "description": "A media unique identifier", - "schema": { - "type": "object", - "properties": { - "mediaId": { - "type": "string", - "description": "A media unique identifier", - "title": "Media Id" - } - } - } - } - }, - "summary": "Upload a media using URL", - "description": "Upload a media using URL to use during the creation of an internal news", - "operationId": "UploadMediaUrl", - "parameters": [ + }, { "name": "mediaUrl", - "in": "path", - "required": true, + "in": "formData", + "required": false, "type": "string", - "description": "The url of the media to be uploaded", - "x-ms-summary": "Media URL", - "x-ms-url-encoding": "single" + "description": "The url of a media to be uploaded", + "x-ms-summary": "Media URL" } ] } From ef1d2b662196960c2e5851d9e679c5f7aa1367b7 Mon Sep 17 00:00:00 2001 From: Srihari Padmanabhan <90345666+sriharip-docusign@users.noreply.github.com> Date: Thu, 23 Sep 2021 15:39:51 -0700 Subject: [PATCH 018/219] Fix typo for Recipient Type (#1124) --- certified-connectors/DocuSign/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/DocuSign/apiDefinition.swagger.json b/certified-connectors/DocuSign/apiDefinition.swagger.json index 7f07fbc182..d92d0d401d 100644 --- a/certified-connectors/DocuSign/apiDefinition.swagger.json +++ b/certified-connectors/DocuSign/apiDefinition.swagger.json @@ -1220,7 +1220,7 @@ "Type": { "description": "The type of recipient.", "type": "string", - "x-ms-summary": "Recipeint Type", + "x-ms-summary": "Recipient Type", "x-ms-visibility": "advanced" }, "UserName": { From 7f13150968252cf7d3d42fc7763a54d1c487708e Mon Sep 17 00:00:00 2001 From: Mahbub Murshed <48570820+mamurshe@users.noreply.github.com> Date: Mon, 11 Oct 2021 12:02:10 -0700 Subject: [PATCH 019/219] Enable certification validation for independent publisher connector (#1169) --- .pipelines/swagger_validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/swagger_validation.yml b/.pipelines/swagger_validation.yml index c8d62ae8d4..4aa5a8d8be 100644 --- a/.pipelines/swagger_validation.yml +++ b/.pipelines/swagger_validation.yml @@ -22,7 +22,7 @@ steps: $newFileContent = Get-Content $file -Raw # Validate swagger - $isCertValidation = $file -Like "*certified-connectors/*" + $isCertValidation = $file -Like "*certified-connectors/*" -Or $file -Like "*independent-publisher-connectors/*" $swaggerValidatorUri = "$($env:swaggerValidator)?IsCertificationValidation=$isCertValidation" $results = Invoke-RestMethod -Uri $swaggerValidatorUri -Headers $Headers -Method Post -ContentType "application/json; charset=utf-8" -Body $newFileContent From 1acd7a46214069236f391dfc1e30ce9fff5d9841 Mon Sep 17 00:00:00 2001 From: Rens Braspenning Date: Tue, 12 Oct 2021 01:42:44 +0200 Subject: [PATCH 020/219] Updated text and logo, changes due to validation errors (#1159) * Update apiDefinition.swagger.json * merged * Removed empty value properties * Update apiDefinition.swagger.json * Update apiProperties.json Co-authored-by: Rens Braspenning --- .../ShareEffect/apiDefinition.swagger.json | 33 +++++++++++++++---- .../ShareEffect/apiProperties.json | 8 +++-- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/certified-connectors/ShareEffect/apiDefinition.swagger.json b/certified-connectors/ShareEffect/apiDefinition.swagger.json index fa867f8e57..bd558e5949 100644 --- a/certified-connectors/ShareEffect/apiDefinition.swagger.json +++ b/certified-connectors/ShareEffect/apiDefinition.swagger.json @@ -4,8 +4,13 @@ "definitions": {}, "host": "shareeffectflowconnector.azure-api.net", "info": { - "description": "ShareEffect helps automating business processes and organize information in Office 365. With our Connector you can begin using data from other systems as metadata in SharePoint. Visit flowconnector.ShareEffect.net for more information.", - "title": "ShareEffect", + "description": "Share-Effect helps automating business processes and organize information in Office 365. With our Connector you can begin using data from other systems as metadata in SharePoint. Visit flowconnector.ShareEffect.net for more information.", + "title": "Share-Effect", + "contact": { + "name": "Share-Effect", + "url": "https://flowconnector.shareeffect.net", + "email": "flowconnector@shareeffect.net" + }, "version": "1.0", "x-ms-api-annotation": { "status": "Preview" @@ -188,7 +193,7 @@ "operationId": "GetTermGroups", "parameters": [], "responses": { - "default": { + "200": { "description": "default", "schema": { "items": { @@ -215,7 +220,7 @@ } ], "responses": { - "default": { + "300": { "description": "default", "schema": { "items": { @@ -253,7 +258,7 @@ } ], "responses": { - "default": { + "400": { "description": "default", "schema": { "items": { @@ -296,7 +301,7 @@ } ], "responses": { - "default": { + "100": { "description": "default", "schema": { "items": { @@ -345,5 +350,19 @@ } }, "swagger": "2.0", - "tags": [] + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://wwww.share-effect.com" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.shareeffect.net/termsconditions.pdf" + }, + { + "propertyName": "Categories", + "propertyValue": "Collaboration;IT Operations" + } + ] } diff --git a/certified-connectors/ShareEffect/apiProperties.json b/certified-connectors/ShareEffect/apiProperties.json index 00c681adf6..4c3a6b85f9 100644 --- a/certified-connectors/ShareEffect/apiProperties.json +++ b/certified-connectors/ShareEffect/apiProperties.json @@ -1,3 +1,5 @@ + + { "properties": { "capabilities": [ @@ -30,6 +32,8 @@ "type": "oauthSetting" } }, - "iconBrandColor": "#888888" + "iconBrandColor": "#395781", + "publisher": "Share-Effect", + "stackOwner": "Share-Effect" } -} \ No newline at end of file +} From 350920fb00828f2d36bf35db4d7aac23218923c4 Mon Sep 17 00:00:00 2001 From: TrobinsonCincom <67380653+TrobinsonCincom@users.noreply.github.com> Date: Wed, 13 Oct 2021 20:05:04 -0400 Subject: [PATCH 021/219] Added a trigger for self service cart created (#1176) * Added the official CPQSync Connector * Added trigger for self service cart created * Added titles for all web hook schemas --- .../CPQSync/apiDefinition.swagger.json | 158 ++++++++++++++++-- certified-connectors/CPQSync/readme.md | 5 +- 2 files changed, 144 insertions(+), 19 deletions(-) diff --git a/certified-connectors/CPQSync/apiDefinition.swagger.json b/certified-connectors/CPQSync/apiDefinition.swagger.json index 4a0fbd6af7..350ee36f91 100644 --- a/certified-connectors/CPQSync/apiDefinition.swagger.json +++ b/certified-connectors/CPQSync/apiDefinition.swagger.json @@ -10,20 +10,6 @@ "email": "support@cincom.com" } }, - "x-ms-connector-metadata":[ - { - "propertyName": "Website", - "propertyValue": "https://www.cincom.com/" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.cincom.com/us/company/terms-policies" - }, - { - "propertyName": "Categories", - "propertyValue": "Productivity;Sales and CRM" - } - ], "host": "api.cincomcpq.com", "basePath": "/", "schemes": [ @@ -34,6 +20,109 @@ "application/json" ], "paths": { + "/configurator/tenants/{tenantId}/web-hooks/selfServiceCartCreated": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/selfServiceCartDto" + }, + "description": "A custom self service cart response based on the tenant's parameters and integrations" + }, + "post": { + "responses": { + "201": { + "description": "Web hook subscription created" + } + }, + "summary": "Self Service Cart Created", + "operationId": "SelfServiceCartCreated", + "x-ms-trigger": "single", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "tenantId", + "in": "path", + "required": true, + "type": "string", + "description": "Tenant Id", + "x-ms-summary": "The tenant id found under your subscriptions in CCA", + "x-ms-url-encoding": "single" + }, + { + "name": "content-type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "accept", + "in": "header", + "required": true, + "type": "string", + "default": "*/*", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "callbackUrl": { + "type": "string", + "description": "The callback url for Power Automate", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "callbackUrl" + }, + "awaitResult": { + "type": "boolean", + "description": "The callback url for Power Automate", + "x-ms-visibility": "internal", + "title": "awaitResult" + } + }, + "required": [ + "callbackUrl" + ] + } + } + ], + "description": "Fired when a self service cart is created in CPQ Sync" + } + }, + "/configurator/tenants/{tenantId}/web-hook-schemas/selfServiceCartCreated": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "title": "selfServiceCartForCreationDto", + "type": "object" + } + } + }, + "summary": "Get self service cart created schema", + "operationId": "GetSelfServiceCartCreatedSchema", + "parameters": [ + { + "name": "tenantId", + "in": "path", + "required": true, + "type": "string", + "description": "Tenant Id", + "x-ms-summary": "The tenant id found under your subscriptions in CCA", + "x-ms-url-encoding": "single" + } + ], + "description": "Get the schema to create a self service cart", + "x-ms-visibility": "internal" + } + }, "/master-data/tenants/{tenantId}/web-hooks/PricedItemUpdated": { "x-ms-notification-content": { "schema": { @@ -336,7 +425,7 @@ "200": { "description": "OK", "schema": { - "title": "", + "title": "pricedItemForUpdateDto", "type": "object" } } @@ -364,7 +453,7 @@ "200": { "description": "OK", "schema": { - "title": "", + "title": "pricedItemForCreationDto", "type": "object" } } @@ -429,6 +518,27 @@ } } } + }, + "selfServiceCartDto": { + "type": "object", + "properties": {}, + "x-ms-dynamic-schema": { + "operationId": "GetSelfServiceCartCreatedSchema", + "value-path": "properties", + "parameters": { + "tenantId": { + "parameter": "tenantId" + } + } + }, + "x-ms-dynamic-properties": { + "operationId": "GetSelfServiceCartCreatedSchema", + "parameters": { + "tenantId": { + "parameterReference": "tenantId" + } + } + } } }, "parameters": {}, @@ -445,5 +555,19 @@ "API Key": [] } ], - "tags": [] + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.cincom.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.cincom.com/us/company/terms-policies" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity;Sales and CRM" + } + ] } \ No newline at end of file diff --git a/certified-connectors/CPQSync/readme.md b/certified-connectors/CPQSync/readme.md index e65bbdc609..d134659ce8 100644 --- a/certified-connectors/CPQSync/readme.md +++ b/certified-connectors/CPQSync/readme.md @@ -12,5 +12,6 @@ The connector supports the following operations: * `Update Products`: Update a product in the catalog * `GetProductCreatedSchema`: Get the schema to create a product * `GetProductUpdatedSchema`: Get the schema to update a product -* `Product Created`: Trigger when Product is created -* `Product Updated`: Trigger when Product is updated \ No newline at end of file +* `Product Created`: Triggered when Product is created +* `Product Updated`: Triggered when Product is updated +* `Self Service Cart Created`: Triggered when Self Service Cart is created \ No newline at end of file From 228994fe97197de31646e207b2888531b320ac38 Mon Sep 17 00:00:00 2001 From: Egil Barland Date: Tue, 28 Sep 2021 03:49:40 +0200 Subject: [PATCH 022/219] Nextcom (#1123) * Added Nextcom connector for certification * Added descriptions to all fields * Set correct color * Added response schemas to the error messages * Fixed spacing on lines * Sett non-development path for API * Run files through JSON beautifier * In lieu of secure string not working, add format Co-authored-by: Egil Barland --- certified-connectors/Nextcom/README.md | 24 + .../Nextcom/apiDefinition.swagger.json | 598 ++++++++++++++++++ .../Nextcom/apiProperties.json | 62 ++ 3 files changed, 684 insertions(+) create mode 100644 certified-connectors/Nextcom/README.md create mode 100644 certified-connectors/Nextcom/apiDefinition.swagger.json create mode 100644 certified-connectors/Nextcom/apiProperties.json diff --git a/certified-connectors/Nextcom/README.md b/certified-connectors/Nextcom/README.md new file mode 100644 index 0000000000..390c1169d5 --- /dev/null +++ b/certified-connectors/Nextcom/README.md @@ -0,0 +1,24 @@ +## Nextcom CRM Connector +Nextcom’s cloud-based CRM solution is a safe and efficient way to streamline your workflow, create collaboration internally and increase sales. Tailored for you. + +## Prerequisites +You will need the following to proceed: + +* [Sign Up](https://nextcom.no/en/try-the-system-for-free/) for a Nextcom trial account. +* Once signed up, a Nextcom representative will supply you with an URL and login info, and walk you through the steps of setting up your Nextcom domain. +* Our support staff will help you set up a dedicated API user in your Nextcom web interface, and this API user will be used to connect your services to Nextcom through Power Automate. +* As Nextcom's CRM system relies heavily on automated steps in the CRM process, very few Power Automate actions are needed to establish a new sales opportunity. Two are enough to initiate the CRM loop. + +## Connecting Power Automate to Nextcom +* When your Nextcom domain has been set up, and you have created an API user, please connect to Nextcom using the API users Username and Password, along with your dedicated domain name. + +## Supported Operations +The connector supports the following operations: +* ```Add Contact```: Adds a new contact to a given list. Automatically handles duplicates, and returns the Contact ID of either the new contact or the duplicate. +* ```Add Pipeline```: Adds a new pipeline opportunity on a given contact ID. + +## Our public API documentation +API documentation can be found [here](https://dev.nextcom.no/rest-api/swagger/ui/index). + +## Further Support +For any questions please feel free to [contact-us](https://nextcom.no/en/services/support/). diff --git a/certified-connectors/Nextcom/apiDefinition.swagger.json b/certified-connectors/Nextcom/apiDefinition.swagger.json new file mode 100644 index 0000000000..25365ab060 --- /dev/null +++ b/certified-connectors/Nextcom/apiDefinition.swagger.json @@ -0,0 +1,598 @@ +{ + "swagger": "2.0", + "info": { + "title": "Nextcom", + "description": "Connect your application data flow to Nextcom to optimize sales and customer management.", + "version": "1.0", + "contact": { + "name": "Nextcom Support", + "url": "https://nextcom.no/en/services/support/", + "email": "post@nextcom.no" + } + }, + "host": "dev.nextcom.no", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [], + "paths": { + "/crm-system/contacts": { + "post": { + "responses": { + "201": { + "description": "Returns the new contact ID, or an existing contact ID if a duplicate was hit", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "ContactId", + "title": "ContactId" + }, + "insertStatus": { + "type": "string", + "description": "Relays the contact ID and, wether a new contact was created or if a duplicate was found and re-used.", + "title": "Insert status" + } + } + } + }, + "400": { + "description": "Returns error if the input model is malformed", + "schema": { + "title": "Bad request error", + "type": "string", + "description": "Error message regarding malformed input model" + } + }, + "404": { + "description": "Returns error on Contact not found if Contact ID is sent as a parameter", + "schema": { + "title": "Not found error", + "type": "string", + "description": "Error message regarding missing contact ID" + } + } + }, + "summary": "Add contact", + "description": "Add a new contact to a given list in Nextcom.", + "operationId": "NX_CONTACT", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "contactId": { + "type": "integer", + "format": "int32", + "description": "Use this if you want to force an update to an existing contact. If this isn't supplied, normal duplicate checking rules will be applied", + "title": "Contact ID" + }, + "contactIdSettings": { + "type": "string", + "description": "If contactId is applied, should the existing contact be moved to the new list? ", + "title": "Contact ID settings", + "enum": [ + "MaintainInList", + "MoveToList" + ] + }, + "userId": { + "type": "integer", + "format": "int32", + "description": "The user who created the contact ", + "title": "User ID" + }, + "contactGroup": { + "type": "integer", + "format": "int32", + "description": "1 = Private person, 2 = Company", + "title": "Contact Group" + }, + "listId": { + "type": "integer", + "format": "int32", + "description": "The list the contact will be added or moved to", + "title": "List ID" + }, + "duplicateSettings": { + "type": "string", + "description": "Select what happens upon duplicate detection", + "title": "Duplicate settings", + "enum": [ + "DontImport", + "ResetAndMove", + "Move", + "ResetAndMoveWithForceList", + "MoveWithForceList", + "ResetAndMoveAndSetDateTimeCreated", + "ResetAndMoveAndSetDateTimeCreatedIndependent", + "AllowAllDuplicates", + "AllowAllDuplicatesWithLogging" + ] + }, + "forceFromListId": { + "type": "array", + "title": "Force from list ID", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "Used in conjunction with duplicateSettings. If DuplicateSetting 4 is chosen, duplicates will only be moved from the lists supplied in this parameter" + }, + "orgNoOrSSN": { + "type": "string", + "format": "password", + "description": "Org number for companies, social security number for private persons", + "title": "Oranization/Social security number" + }, + "birthDate": { + "type": "string", + "description": "Birth date for private persons", + "title": "Birthdate" + }, + "companyName": { + "type": "string", + "description": "Company name for companies", + "title": "Company name" + }, + "visitingAddress": { + "type": "string", + "description": "visitingAddress", + "title": "Visiting address" + }, + "address": { + "type": "string", + "description": "address", + "title": "Address" + }, + "housenumber": { + "type": "string", + "description": "housenumber", + "title": "House number" + }, + "houseLetter": { + "type": "string", + "description": "houseLetter", + "title": "House letter" + }, + "floor": { + "type": "integer", + "format": "int32", + "description": "floor", + "title": "Floor" + }, + "apartmentNo": { + "type": "string", + "description": "apartmentNo", + "title": "Apartment Number" + }, + "gnr": { + "type": "integer", + "format": "int32", + "description": "gnr", + "title": "Land registration number" + }, + "brnr": { + "type": "integer", + "format": "int32", + "description": "brnr", + "title": "Property registration number" + }, + "zipCode": { + "type": "string", + "description": "zipCode", + "title": "Zip code" + }, + "postalArea": { + "type": "string", + "description": "postalArea", + "title": "Postal area" + }, + "phone": { + "type": "string", + "description": "phone", + "title": "Phone number" + }, + "cellPhone": { + "type": "string", + "description": "cellPhone", + "title": "Cell number" + }, + "fax": { + "type": "string", + "description": "fax", + "title": "Fax number" + }, + "municipality": { + "type": "string", + "description": "municipality", + "title": "Municipality" + }, + "municipalityNo": { + "type": "string", + "description": "Municipality number, using whatever format is used in the current country", + "title": "Municipality number" + }, + "countyId": { + "type": "integer", + "format": "int32", + "description": "countyId", + "title": "County ID" + }, + "quantityEmployed": { + "type": "integer", + "format": "int32", + "description": "The number of employees for companies", + "title": "Number of employees" + }, + "establishingYear": { + "type": "string", + "description": "The year the company was established", + "title": "Establishing year" + }, + "registerDate": { + "type": "string", + "description": "The year the company was registered in the national registry", + "title": "Register date" + }, + "companyForm": { + "type": "string", + "description": "The company form, such as AS, ENK, etc.", + "title": "Company form" + }, + "website": { + "type": "string", + "description": "The company's website address ", + "title": "Website" + }, + "firstName": { + "type": "string", + "description": "For private persons: the person's first name. For companies: the first name of the primary contact", + "title": "First name" + }, + "lastName": { + "type": "string", + "description": "For private persons: the person's last name. For companies: the last name of the primary contact", + "title": "Last name" + }, + "email": { + "type": "string", + "description": "email", + "title": "Primary email" + }, + "email2": { + "type": "string", + "description": "email2", + "title": "Secondary email" + }, + "queue": { + "type": "integer", + "format": "int32", + "description": "The contact's place in the Nextcom call queue. Should normally be left blank so that the Nextcom dialer can handle it based on rules set in the Nextcom UI", + "title": "Queue" + }, + "note": { + "type": "string", + "description": "A note containing comments, extra info, etc.", + "title": "Note" + }, + "customerDealer": { + "type": "string", + "description": "customerDealer", + "title": "Customer dealer" + }, + "industryLine": { + "type": "string", + "description": "A code describing the company's industry. Could for example be NACE codes", + "title": "Industry line" + }, + "reservationCodes": { + "type": "string", + "description": "reservationCodes", + "title": "Reservation codes" + }, + "sid": { + "type": "integer", + "format": "int32", + "description": "sid", + "title": "Secondary ID" + }, + "foreignId": { + "type": "integer", + "format": "int32", + "description": "The contact's ID in any thirdparty system", + "title": "Foreign ID" + }, + "gender": { + "type": "string", + "description": "'Unknown', 'Male', 'Female'", + "title": "Gender" + }, + "supplierId": { + "type": "integer", + "format": "int32", + "description": "The ID of the supplier the contact belongs to", + "title": "Supplier ID" + }, + "countryId": { + "type": "integer", + "format": "int32", + "description": "The ID of the country the contact belongs to", + "title": "Country ID" + }, + "trace": { + "type": "boolean", + "description": "If this is set to true, more debug info will be added to the contact in Nextcom as it's being created or updated", + "title": "Trade" + }, + "extra1": { + "type": "string", + "description": "Extra field for any additional info, type string", + "title": "Extra field 1" + }, + "extra2": { + "type": "string", + "description": "extra2", + "title": "Extra field 2" + }, + "extra3": { + "type": "string", + "description": "extra3", + "title": "Extra field 3" + }, + "extra4": { + "type": "string", + "description": "extra4", + "title": "Extra field 4" + }, + "extra5": { + "type": "string", + "description": "extra5", + "title": "Extra field 5" + }, + "extra6": { + "type": "string", + "description": "extra6", + "title": "Extra field 6" + }, + "extra7": { + "type": "string", + "description": "extra7", + "title": "Extra field 7" + }, + "extra8": { + "type": "string", + "description": "extra8", + "title": "Extra field 8" + }, + "extra9": { + "type": "string", + "description": "extra9", + "title": "Extra field 9" + }, + "extra10": { + "type": "string", + "description": "extra10", + "title": "Extra field 10" + }, + "extra11": { + "type": "string", + "description": "extra11", + "title": "Extra field 11" + }, + "extra12": { + "type": "string", + "description": "extra12", + "title": "Extra field 12" + }, + "extra13": { + "type": "string", + "description": "extra13", + "title": "Extra field 13" + }, + "extra14": { + "type": "string", + "description": "extra14", + "title": "Extra field 14" + }, + "extra15": { + "type": "string", + "description": "extra15", + "title": "Extra field 15" + }, + "extra16": { + "type": "string", + "description": "extra16", + "title": "Extra field 16" + }, + "extra17": { + "type": "string", + "description": "extra17", + "title": "Extra field 17" + }, + "extra18": { + "type": "string", + "description": "extra18", + "title": "Extra field 18" + }, + "extra19": { + "type": "string", + "description": "extra19", + "title": "Extra field 19" + }, + "extra20": { + "type": "string", + "description": "extra20", + "title": "Extra field 20" + }, + "extraDate": { + "type": "string", + "description": "Extra field for any additional info, type DateTime", + "title": "Extra date 1" + }, + "extraDate2": { + "type": "string", + "description": "extraDate2", + "title": "Extra date 2" + }, + "extraNum": { + "type": "integer", + "format": "int32", + "description": "Extra field for any additional info, type integer", + "title": "Extra numerical value" + }, + "extranumIsCustomerNr": { + "type": "boolean", + "description": "If this is set to true, the extraNum parameter will be treated as a customer number and created in Nextcom as such", + "title": "Extra Is-Customer number" + }, + "extraJson": { + "type": "string", + "description": "Can be used to dump any kind of additional information that doesn't fit any of the other fields", + "title": "Extra JSON object" + } + } + } + } + ] + } + }, + "/crm-system/pipelines/contracts": { + "post": { + "responses": { + "201": { + "description": "Returns the newly created pipeline ID", + "schema": { + "title": "Pipeline ID", + "type": "integer", + "format": "int64", + "description": "ID of the new Pipeline opportunity" + } + }, + "404": { + "description": "Returns error on Pipeline not found if Pipeline ID is sent as a parameter", + "schema": { + "title": "Not found error", + "type": "string", + "description": "Error message regarding missing pipeline ID" + } + } + }, + "summary": "Add pipeline", + "description": "Create a new pipeline opportunity on a given Contact ID.", + "operationId": "NX_PIPELINE", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subId": { + "type": "integer", + "format": "int32", + "description": "Custom fields table SubID", + "title": "Custom field sub-ID" + }, + "fieldId": { + "type": "integer", + "format": "int32", + "description": "Custom fields table FieldID", + "title": "Custom field ID" + }, + "value": { + "type": "string", + "description": "Custom fields table inserted value", + "title": "Custom field value" + } + } + }, + "description": "Add values to the custom fields table of the pipeline", + "title": "Custom fields" + }, + "pipelineId": { + "type": "integer", + "format": "int32", + "description": "Specify witch pipeline the opportunity should be created in", + "title": "Pipeline ID" + }, + "stageId": { + "type": "integer", + "format": "int32", + "description": "Determines which stage of the pipeline the insert is targeting", + "title": "Stage ID" + }, + "contactId": { + "type": "integer", + "format": "int32", + "description": "The contact ID the pipeline should be used for", + "title": "Contact ID" + }, + "title": { + "type": "string", + "description": "Title of the opportunity/contract", + "title": "Title" + }, + "value": { + "type": "integer", + "format": "int32", + "description": "The numerical value of the contract, if the contacts signs", + "title": "Value" + }, + "statusId": { + "type": "integer", + "format": "int32", + "description": "Set the status of the pipeline: 1 = Active", + "title": "Status ID" + } + } + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "basic_auth": { + "type": "basic" + } + }, + "security": [ + { + "basic_auth": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://nextcom.no/en/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://dev.nextcom.no/public-privacy-policy.htm" + }, + { + "propertyName": "Categories", + "propertyValue": "Communication;Sales and CRM" + } + ] +} \ No newline at end of file diff --git a/certified-connectors/Nextcom/apiProperties.json b/certified-connectors/Nextcom/apiProperties.json new file mode 100644 index 0000000000..a9d10010c4 --- /dev/null +++ b/certified-connectors/Nextcom/apiProperties.json @@ -0,0 +1,62 @@ +{ + "properties": { + "connectionParameters": { + "username": { + "type": "securestring", + "uiDefinition": { + "displayName": "Nextcom API Username", + "description": "The Nextcom API Username", + "tooltip": "Provide the Nextcom API username", + "constraints": { + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "Nextcom API Password", + "description": "The Nextcom API Password", + "tooltip": "Provide the Nextcom API password", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + }, + "domain": { + "type": "string", + "uiDefinition": { + "displayName": "Nextcom Customer Domain", + "description": "Enter Your Nextcom Domain.", + "tooltip": "Provide Your Nextcom domain", + "constraints": { + "tabIndex": 4, + "clearText": true, + "required": "true" + } + } + } + }, + "iconBrandColor": "#2596be", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "InjectURLDomain", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "https://@connectionParameters('domain').nextcom.no/rest-api/public/v2.0/", + "x-ms-apimTemplate-operationName": [ + "NX_CONTACT", + "NX_PIPELINE" + ] + } + } + ], + "publisher": "Nextcom Evolution AS", + "stackOwner": "Nextcom Evolution AS" + } +} \ No newline at end of file From 99539ede6449589f548705ae0a259a0db00b242f Mon Sep 17 00:00:00 2001 From: Isak Hassbring Date: Tue, 28 Sep 2021 21:44:08 +0200 Subject: [PATCH 023/219] Version 1.1 updates. (#1135) * Added text similarity compatibility (new path/operation). * Updated docs e.g. reflecting new functionality. * Fixed minor errors. --- certified-connectors/Peltarion/README.md | 28 +++++---- .../Peltarion/apiDefinition.swagger.json | 58 ++++++++++++++++--- 2 files changed, 67 insertions(+), 19 deletions(-) diff --git a/certified-connectors/Peltarion/README.md b/certified-connectors/Peltarion/README.md index a6707c824e..1b8283abe4 100644 --- a/certified-connectors/Peltarion/README.md +++ b/certified-connectors/Peltarion/README.md @@ -1,9 +1,9 @@ # Peltarion Connector -Use deep learning in your apps! Peltarion’s plugin is the simplest and fastest way to create smart applications. With this Peltarion integration, you can build and deploy AI models, and through the API connect to your app. - -See below for some of the things you can build. +Use deep learning in your apps! Peltarion allows for powerful yet simple & fast ways to create smart applications, work with deep learning modeling and operationalize AI. This Peltarion connector lets you build and deploy advanced AI models and connect to Power Platform through the API. +## Powerful examples +The Peltarion connector can let you build AI-powered apps that: - Can tell the difference between music genres and classify them accordingly ([link](https://bit.ly/34K98Sm)) - Understands the semantic meaning of words and use it to classify movie reviews or customer support messages ([link](https://bit.ly/3jrkZsP)) - Label images as per the clothing category they belong to (say in an e-commerce catalog) ([link](https://bit.ly/3lqyiLD)) @@ -12,22 +12,28 @@ See below for some of the things you can build. ## Getting started 1. Sign up for free on the Peltarion Platform ([link](https://bit.ly/3llPmTf)) -1. Build and train your AI model on the Peltarion platform -1. Add the Peltarion connector to your app. Enter the URL and token for your build model (see image below) +2. Build, train and deploy your AI model on the Peltarion platform +3. Add the Peltarion connector to your app. Enter the URL and token for your build model (see image below) + + +Peltarion's Power Platform connector currently 2 operations: +1. *callapi* (used to call conventional models) and +2. *calltextsim* (used to call text similarity models). -The connector only support one operation, called *callapi*. To use the connector and store the value into a variable *res*, you can call the API like this: +To use the connector you can call the API with this snippet: ``` -ClearCollect(dd, { : TextInput1.Text}); +ClearCollect(dd, {: TextInput1.Text}); Set(jdata, JSON(dd, JSONFormat.IncludeBinaryData)); Set(res, PeltarionAI.callapi(jdata)) ``` -The *res* is an object with three values: +**Explaination of the snippet** \ +The *ClearCollect* method creates an array assigned to the variable *dd*. The *JSON* method creates a JSON object from *dd* which is assigned to the variable *jdata* using the *Set* method. If `` is "name" and the text in *TextInput1* is "John Doe", the above snippet sends a get request (through a midlayer) to the Peltarion Deployment API with *jdata* as `{[{"name": "John Doe"}]}`, according to the structure expected by the API. The response object from Peltarion's Deployment API is assigned to the variable *res* by the *Set* method. The snippet then returns *res*, an object with three entires: -- *key* is the name of the predicted class. For regression problems, the *key* is always "value" -- *val* is the probability of the class -- *errorMessage* holds the error message, if any +- *key* is the name of the predicted class. For regression problems, the *key* is always "value". +- *val* is the probability of the class. +- *errorMessage* holds the error message, if any. Your URL, token and input name is found on the Deployment view on the Peltarion Platform. See screenshot below. diff --git a/certified-connectors/Peltarion/apiDefinition.swagger.json b/certified-connectors/Peltarion/apiDefinition.swagger.json index ef2dae1487..2f305557a4 100644 --- a/certified-connectors/Peltarion/apiDefinition.swagger.json +++ b/certified-connectors/Peltarion/apiDefinition.swagger.json @@ -1,25 +1,26 @@ { "swagger": "2.0", "info": { - "title": "Peltarion AI", + "title": "Peltarion", "description": "The simplest and fastest way to use deep learning. Add the connector, build your AI model and connect by adding your credentials.", - "version": "1.0", + "termsOfService" : "http://peltarion.com/terms/", "contact": { "name": "Peltarion", - "url": "https://peltarion.com/", - "email": "contact@peltarion.com" - } + "url": "https://www.peltarion.com/", + "email": "support@peltarion.com" + }, + "version": "1.1" }, "host": "peltarionforwardtest.azurewebsites.net", "basePath": "/", "schemes": [ "https" ], - "consumes": [], - "produces": [], + "consumes": ["application/json"], + "produces": ["application/json"], "paths": { "/api/forwardcall": { - "post": { + "get": { "responses": { "200": { "description": "default", @@ -58,6 +59,47 @@ } ] } + }, + "/api/forwardcalltextsim": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "first": { + "type": "string", + "description": "first similarity result." + }, + "all": { + "type": "string", + "description": "all similarity results" + }, + "errorMessage": { + "type": "string", + "description": "errorMessage" + } + } + } + } + }, + "summary": "Call Peltarion text similarity API", + "description": "This function calls your text similarity deployement on the Peltarion platform.", + "operationId": "calltextsim", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "peltarionbody", + "in": "header", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "description": "Peltarion body", + "x-ms-summary": "Call body in JSON format." + } + ] + } } }, "x-ms-connector-metadata": [ From 3a84b34885a34d0e5b050ca6f2411aeee8c9f471 Mon Sep 17 00:00:00 2001 From: ZohoSign-integ <83749960+ZohoSign-integ@users.noreply.github.com> Date: Wed, 29 Sep 2021 01:14:29 +0530 Subject: [PATCH 024/219] brand color changes done for Zohosign. (#1134) --- certified-connectors/ZohoSign/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/ZohoSign/apiProperties.json b/certified-connectors/ZohoSign/apiProperties.json index f226dcdc1b..5314f5f750 100644 --- a/certified-connectors/ZohoSign/apiProperties.json +++ b/certified-connectors/ZohoSign/apiProperties.json @@ -30,7 +30,7 @@ } } }, - "iconBrandColor": "#007ee5", + "iconBrandColor": "#236EB4", "capabilities": [], "publisher": "Zoho Corporation", "stackOwner": "Zoho Corporation" From a50194fc080dd9551c3ea6492da248c1f7a69501 Mon Sep 17 00:00:00 2001 From: duncanbinger <87135061+duncanbinger@users.noreply.github.com> Date: Tue, 28 Sep 2021 21:50:25 +0200 Subject: [PATCH 025/219] BuildingMindsTwin core (certified-connectors) (#1131) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Added connector files * cherry pick files * added icon for connector * removed unwanted connector and icon * removed additional redirectURL * Added specific purpose for connector description * Tidied up formatting of README Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- .../BuildingMindsTwin/README.md | 65 +++++++++---------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/certified-connectors/BuildingMindsTwin/README.md b/certified-connectors/BuildingMindsTwin/README.md index 70a458af4d..8fdfe46e06 100644 --- a/certified-connectors/BuildingMindsTwin/README.md +++ b/certified-connectors/BuildingMindsTwin/README.md @@ -12,39 +12,38 @@ Required. Describe actions, triggers, and other endpoints.​ Description of operation 1. The connector supports the following operations: -*`GetPortfolios`: Get all portfolios -*`GetSites`: Get all sites -*`GetBuildings`: Get all buildings -*`GetFloors`: Get all floors -*`GetRoofs`: Get all roofs -*`GetFacades`: Get all facades -*`GetOutsideareas`: Get all outside areas -*`GetSubareas`: Get all sub areas -*`GetLands`: Get all lands -*`GetSpaces`: Get all spaces -*`GetPortfolioById`: Gets a portfolio with the given ID -*`GetSiteById`: Gets a site with the given ID -*`GetBuildingById`: Gets a buildings with the given ID -*`GetFloorById`: Gets a floor with the given ID -*`GetRoofById`: Gets a roof with the given ID -*`GetFacadeById`: Gets a facade with the given ID -*`GetOutsideareaById`: Gets an outside aread with the given ID -*`GetSubareaById`: Gets a suba area with the given ID -*`GetLandById`: Gets a land with the given ID -*`GetSpaceById`: Gets a space with the given ID -*`CheckForChildrenOnPortfolio`: Gets a site with the given ID -*`CheckForChildrenOnSite`: Gets the information about the existence of children on a site -*`CheckForChildrenOnBuilding`: Gets the information about the existence of children on a building -*`CheckForChildrenOnFloor`:Gets the information about the existence of children on a floor -*`CheckForChildrenOnRoof`: Gets the information about the existence of children on a roof -*`CheckForChildrenOnFacade`: Gets the information about the existence of children on a facade -*`CheckForChildrenOnOutsidearea`: Gets the information about the existence of children on an outside area -*`CheckForChildrenOnSubarea`: Gets the information about the existence of children on a sub area -*`CheckForChildrenOnLand`: Gets the information about the existence of children on a land -*`CheckForChildrenOnSpace`: Gets the information about the existence of children on a space -*`GetAssociatedSpacesForSpace`: Get the list of associated entities -*`GetUnassociatedSpaces`: Get the list of not associated entities - +* `GetPortfolios`: Get all portfolios +* `GetSites`: Get all sites +* `GetBuildings`: Get all buildings +* `GetFloors`: Get all floors +* `GetRoofs`: Get all roofs +* `GetFacades`: Get all facades +* `GetOutsideareas`: Get all outside areas +* `GetSubareas`: Get all sub areas +* `GetLands`: Get all lands +* `GetSpaces`: Get all spaces +* `GetPortfolioById`: Gets a portfolio with the given ID +* `GetSiteById`: Gets a site with the given ID +* `GetBuildingById`: Gets a buildings with the given ID +* `GetFloorById`: Gets a floor with the given ID +* `GetRoofById`: Gets a roof with the given ID +* `GetFacadeById`: Gets a facade with the given ID +* `GetOutsideareaById`: Gets an outside aread with the given ID +* `GetSubareaById`: Gets a suba area with the given ID +* `GetLandById`: Gets a land with the given ID +* `GetSpaceById`: Gets a space with the given ID +* `CheckForChildrenOnPortfolio`: Gets a site with the given ID +* `CheckForChildrenOnSite`: Gets the information about the existence of children on a site +* `CheckForChildrenOnBuilding`: Gets the information about the existence of children on a building +* `CheckForChildrenOnFloor`:Gets the information about the existence of children on a floor +* `CheckForChildrenOnRoof`: Gets the information about the existence of children on a roof +* `CheckForChildrenOnFacade`: Gets the information about the existence of children on a facade +* `CheckForChildrenOnOutsidearea`: Gets the information about the existence of children on an outside area +* `CheckForChildrenOnSubarea`: Gets the information about the existence of children on a sub area +* `CheckForChildrenOnLand`: Gets the information about the existence of children on a land +* `CheckForChildrenOnSpace`: Gets the information about the existence of children on a space +* `GetAssociatedSpacesForSpace`: Get the list of associated entities +* `GetUnassociatedSpaces`: Get the list of not associated entities ## Obtaining Credentials Please contact us under: ​https://buildingminds.com/services/customer-support or support@buildingminds.com From 7837b1187f848b217186c34996700a01f7d0f7cd Mon Sep 17 00:00:00 2001 From: Nm-jens <68378054+Nm-jens@users.noreply.github.com> Date: Tue, 28 Sep 2021 21:54:31 +0200 Subject: [PATCH 026/219] Staffbase Connector - Background Color fix (#1129) * Staffbase Connector * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Staffbase Connector * - Move common code to definitions - Fixed descriptions - Several minor fixes * Fixed spelling Error * Fixed description for /posts query parameter * Moved connector from custom-connectors into certified connectors * Fixed missing description * Fixed icon brand color * Fixed: - OperationID for delete Users - Definition for Post news into channel * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Added missing README.md Fixed: - Unicode characters - German wording translated * Fixed apiProperties.json Unicode problems * Fixed Background Color * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- certified-connectors/Staffbase/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Staffbase/apiProperties.json b/certified-connectors/Staffbase/apiProperties.json index 41a0359665..c28783e2e8 100644 --- a/certified-connectors/Staffbase/apiProperties.json +++ b/certified-connectors/Staffbase/apiProperties.json @@ -26,7 +26,7 @@ } } }, - "iconBrandColor": "#45A2F7", + "iconBrandColor": "#00A5FD", "capabilities": [], "policyTemplateInstances": [ { From d13385c920c3e003b34ec374a5057237d8ce711e Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Fri, 1 Oct 2021 04:30:17 +0300 Subject: [PATCH 027/219] New version of WithoutWire Inventory Platform connector (with fixes/improvements after previous reviews) (#1139) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../apiDefinition.swagger.json | 4537 ++++++++++++++++- .../apiProperties.json | 2 +- .../WithoutWire Inventory Platform/readme.md | 25 +- 3 files changed, 4521 insertions(+), 43 deletions(-) diff --git a/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json b/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json index f59e148a2e..5f7c5d7b96 100644 --- a/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json +++ b/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "WithoutWire Inventory Platform", "description": "The connector contains methods to connect WithoutWire for move requests, order fullfillment requests, adjustments, audits, and allocation as well as any inventory management needs", - "version": "1.0", + "version": "1.1", "contact": { "name": "WithoutWire Support", "url": "https://www.withoutwire.com/knowledgebase", @@ -25,9 +25,6 @@ "/integration/workorder": { "get": { "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -41,7 +38,7 @@ }, "CustomerPoNumber": { "type": "string", - "description": "The customer’s PO Number for the order" + "description": "The customer's PO Number for the order" }, "VendorShipmentNumber": { "type": "string", @@ -213,11 +210,19 @@ }, "ItemNumber": { "type": "string", - "description": "A unique value that represents an item" + "description": "A unique value that represents an item", + "title": "Item Number" }, "CoreItemType": { "type": "string", - "description": "A unique value that represents an item (BASIC, LOT, SERIAL, DATE)" + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] }, "QuantityOrdered": { "type": "number", @@ -277,7 +282,7 @@ } } }, - "description": "List of order line items" + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." }, "LoadDate": { "type": "string", @@ -378,9 +383,6 @@ }, "put": { "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -477,30 +479,36 @@ "WarehouseName": { "type": "string", "description": "The warehouse descriptive name", - "title": "", + "title": "Warehouse Name", "x-ms-visibility": "important" }, "OrderNumber": { "type": "string", "description": "A unique alphanumeric value to identify this order in the warehouse", - "title": "", + "title": "Order Number", "x-ms-visibility": "important" }, "OrderType": { "type": "string", "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)", - "title": "", + "title": "Order Type", "x-ms-visibility": "important", "default": "6" }, "OrderComment": { "type": "string", - "description": "The comments to be associated with the order" + "description": "The comments to be associated with the order", + "title": "Order Comment" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" }, "CustomerPoNumber": { "type": "string", - "description": "The customer’s PO Number for the order", - "title": "", + "description": "The customer's PO Number for the order", + "title": "Customer PoNumber", "x-ms-visibility": "important" }, "VendorShipmentNumber": { @@ -523,7 +531,7 @@ "DeliveryDate": { "type": "string", "description": "The date on which the order will be delivered", - "title": "", + "title": "Delivery Date", "format": "date-time" }, "ShipDate": { @@ -614,7 +622,7 @@ }, "CustomerShipAttn": { "type": "string", - "description": "CustomerShipAttn" + "description": "The attention field indicating the individual being shipped to (if applicable)" }, "CustomerShipAddress1": { "type": "string", @@ -678,17 +686,29 @@ }, "ItemNumber": { "type": "string", - "description": "A unique value that represents an item" + "description": "A unique value that represents an item", + "title": "Item Number" }, "CoreItemType": { "type": "string", - "description": "A unique value that represents an item (BASIC, LOT, SERIAL, DATE)" + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] }, "QuantityOrdered": { "type": "number", "format": "float", "description": "A decimal value representing the quantity to pick for the line item" }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to." + }, "LineItemComment": { "type": "string", "description": "Comments for the line item" @@ -728,7 +748,7 @@ "QuantityOrdered" ] }, - "description": "List of order line items" + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." } }, "required": [ @@ -754,9 +774,6 @@ "operationId": "DeleteOrder", "x-ms-visibility": "important", "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -821,9 +838,6 @@ "/integration/order/complete": { "put": { "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -936,9 +950,6 @@ "/integration/order/status": { "put": { "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -1042,7 +1053,7 @@ "OrderStatusCode": { "type": "string", "description": "Status code", - "title": "", + "title": "Order Status Code", "enum": [ "UNA", "WTP", @@ -1065,15 +1076,12 @@ } } ], - "description": "This API method used to set the status on orders in WithoutWire. Parameters include: orderStatusCode and warehouseName" + "description": "This API method used to set the status on orders in WithoutWire. Parameters include: orderStatusCode and warehouseName" } }, "/integration/order/assignment": { "put": { "responses": { - "default": { - "description": "default" - }, "200": { "description": "200", "schema": { @@ -1116,6 +1124,4463 @@ ], "description": "This API method used to set orders to be assigned in WithoutWire. The order status will be set to Waiting for Picking. All operators that are set for the role of pick will have access to these orders." } + }, + "/integration/inventory": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "Uniquely identifies the warehouse name where the inventory resides.", + "title": "Warehouse Name" + }, + "BinNumber": { + "type": "string", + "description": "The alphanumeric name for the position in the warehouse where the inventory is or can be stored.", + "title": "Bin Number" + }, + "BinPath": { + "type": "string", + "description": "Location of the bin", + "title": "Bin Path" + }, + "LicensePlateNumber": { + "type": "string", + "description": "The alphanumeric name for the pallet in the warehouse where the inventory is, or can be stored.", + "title": "License Plate Number" + }, + "ItemNumber": { + "type": "string", + "description": "Uniquely identifies the item in inventory", + "title": "Item Number" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "ItemUom": { + "type": "string", + "description": "Represents the Unit of Measure for the item.", + "title": "Item UOM" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure", + "title": "Significant Digits" + }, + "BaseConvFactor": { + "type": "number", + "format": "float", + "description": "Represents the conversion factor to the base unit of measure for the order." + }, + "BinSequence": { + "type": "number", + "format": "float", + "description": "Each item in inventory can have one primary location. Use 1 to indicate a primary location.", + "title": "Bin Sequence" + }, + "MinQuantity": { + "type": "number", + "format": "float", + "description": "Represents the minimum quantity for an item's primary location.", + "title": "Min Quantity" + }, + "MaxQuantity": { + "type": "number", + "format": "float", + "description": "Represents the maximum quantity for an item's primary location.", + "title": "Max Quantity" + }, + "Active": { + "type": "boolean", + "description": "Determines if an item is active in the system.", + "title": "Is Active" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "CoreValue": { + "type": "string", + "description": "The Lot, Serial, or Date value.", + "title": "Core Value" + }, + "Quantity": { + "type": "number", + "format": "float", + "description": "The quantity available for the item in the specific bin of license plate referenced above." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "Distance": { + "type": "string", + "description": "A distance from the user making the request to the inventory." + } + } + } + } + } + }, + "summary": "Get Inventory", + "operationId": "GetInventory", + "parameters": [ + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "x-ms-visibility": "important", + "description": "An alphanumeric value that uniquely identifies the item within the warehouse", + "x-ms-summary": "An alphanumeric value that uniquely identifies the item within the warehouse" + }, + { + "name": "binNumber", + "in": "query", + "required": false, + "type": "string", + "description": "The alphanumeric name for the position in the warehouse", + "x-ms-summary": "The alphanumeric name for the position in the warehouse" + }, + { + "name": "allocationSetName", + "in": "query", + "required": false, + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "x-ms-summary": "The allocation set that the associated inventory record is assigned to." + }, + { + "name": "warehouseName", + "in": "query", + "required": false, + "type": "string", + "description": "Uniquely identifies the warehouse name where the inventory resides.", + "x-ms-summary": "Uniquely identifies the warehouse name where the inventory resides." + }, + { + "name": "coreValue", + "in": "query", + "required": false, + "type": "string", + "description": "The Lot, Serial, or Date value.", + "x-ms-summary": "The Lot, Serial, or Date value." + } + ], + "x-ms-visibility": "advanced", + "description": "Returns an array of inventory items by specified parameters" + } + }, + "/integration/inventory/request": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Number of records processed in the request", + "title": "Total Count" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "Inserted Count" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "Updated Count" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "Number of records that weren`t processed due to errors", + "title": "Invalid Count" + }, + "InvalidObjects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Validator": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean", + "description": "Is valid" + }, + "ImportExceptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ErrorCode": { + "type": "string", + "description": "Error code" + }, + "ErrorMessage": { + "type": "string", + "description": "Error message" + }, + "FieldName": { + "type": "string", + "description": "Field name" + } + } + }, + "description": "Exceptions" + } + } + }, + "Identity": { + "type": "string", + "description": "Identity" + }, + "IdentityCode": { + "type": "string", + "description": "Identity code" + }, + "WarehouseName": { + "type": "string", + "description": "Warehouse name" + } + } + }, + "description": "Invalid objects" + } + } + } + } + }, + "summary": "Create Inventory Request", + "operationId": "CreateInventoryRequest", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "RequestGroup": { + "type": "string", + "description": "A reference field used to group requests together for easier processing.", + "title": "Request Group", + "default": "Tech Request" + }, + "SourceProcess": { + "type": "string", + "description": "This describes the process that generated the request.", + "title": "Source Process", + "enum": [ + "Request Inventory", + "Replenishment" + ], + "default": "Request Inventory" + }, + "ItemNumber": { + "type": "string", + "description": "The component item number", + "title": "Item Number" + }, + "Quantity": { + "type": "number", + "format": "float", + "description": "The quantity available for the item in the specific bin of license plate referenced above.", + "title": "Quantity" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement.", + "title": "UomDesc" + }, + "CoreValue": { + "type": "string", + "description": "Determines if the item is Lot, Serial, or Date tracked", + "title": "Core Value" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "DestinationBinNumber": { + "type": "string", + "description": "A location where the inventory should be taken to fulfill the request. It refers to a bin number within the destination site in our system.", + "title": "Destination Bin Number" + }, + "DestinationZone": { + "type": "string", + "description": "A parameter is for specifying a zone (larger area that may contain many bins) within a site that the inventory should be taken to, as an alternative to a specific bin.", + "title": "Destination Zone" + }, + "RequestExpiration": { + "type": "string", + "description": "RequestExpiration" + }, + "CreatedByUser": { + "type": "string", + "description": "A technician`s login/email who created request", + "title": "Created By User" + } + }, + "required": [ + "DestinationWarehouseName", + "ItemNumber" + ] + } + } + } + ], + "description": "Create Inventory Request" + } + }, + "/integration/inventory/adjustment": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Validator": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean", + "description": "Is valid" + }, + "ImportExceptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ErrorCode": { + "type": "string", + "description": "Error code" + }, + "ErrorMessage": { + "type": "string", + "description": "Error message" + }, + "FieldName": { + "type": "string", + "description": "Field name" + } + } + }, + "description": "Exceptions" + } + } + }, + "Identity": { + "type": "string", + "description": "Identity" + }, + "IdentityCode": { + "type": "string", + "description": "Identity code" + }, + "WarehouseName": { + "type": "string", + "description": "Warehouse name" + } + } + }, + "description": "Invalid objects" + } + } + } + } + }, + "operationId": "CreateInventoryAdjustment", + "summary": "Create Inventory Adjustment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "BinNumber": { + "type": "string", + "description": "The alphanumeric name for the position in the warehouse where the inventory is or can be stored.", + "title": "Bin Number" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked", + "title": "Core Value", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "DATE" + ] + }, + "Warehouse": { + "type": "string", + "description": "The name of the warehouse to make the adjustment against" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "Qty": { + "type": "number", + "format": "float", + "description": "The quantity to adjust", + "title": "Quantity" + }, + "MovementType": { + "type": "string", + "description": "The type of adjustment being made", + "title": "Movement Type", + "enum": [ + "Adjustment In+", + "Auto Adjustment Out", + "Damaged", + "Obsolescence", + "Physical Inventory", + "Variance" + ] + }, + "Note": { + "type": "string", + "description": "Optional notes about the adjustment" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "UnitNumber": { + "type": "string", + "description": "Unit Number", + "title": "Unit Number" + }, + "InternalOnly": { + "type": "boolean", + "description": "This is a boolean field used to indicate whether an adjustment should be exported back to an external system or if it should only occur within WithoutWire. So by default this request is only going to return adjustments where InternalOnly = false." + } + }, + "required": [ + "Warehouse", + "BinNumber", + "ItemNumber" + ] + } + } + } + ], + "description": "Create Inventory Adjustment" + } + }, + "/integration/purchaseorder": { + "delete": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Quantity of sent items in request.", + "title": "TotalCount" + }, + "DeletedCount": { + "type": "integer", + "format": "int32", + "description": "Quantity of deleted items.", + "title": "DeletedCount" + } + } + } + } + }, + "summary": "Delete Inbound Request", + "description": "This API will delete purchase orders from WithoutWire. Receiving must not have been started, and the status needs to be either 'Unassigned', or 'Waiting to be Received'. This call should be used when a mistake is found, or the purchase order needs to be modified.", + "operationId": "DeleteInboundRequest", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse name where the order resides.", + "title": "WarehouseName" + }, + "PurchaseOrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this purchase order in the warehouse.", + "title": "PurchaseOrderNumber" + } + } + } + } + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Validator": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean", + "description": "Is valid" + }, + "ImportExceptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ErrorCode": { + "type": "string", + "description": "Error code" + }, + "ErrorMessage": { + "type": "string", + "description": "Error message" + }, + "FieldName": { + "type": "string", + "description": "Field name" + } + } + }, + "description": "Exceptions" + } + } + }, + "Identity": { + "type": "integer", + "description": "An integer value to uniquely identify.", + "title": "Identity", + "format": "int32" + }, + "IdentityCode": { + "type": "string", + "description": "Identity code" + }, + "WarehouseName": { + "type": "string", + "description": "Warehouse name" + } + } + }, + "description": "Invalid objects" + } + } + } + } + }, + "summary": "Create Inbound Request", + "description": "Create Inbound Request", + "operationId": "CreateInboundRequest", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "PurchaseOrderNumber": { + "type": "string", + "description": "A unique number in the warehouse to identify the purchase order." + }, + "OrderDate": { + "type": "string", + "description": "The date purchase order was made.", + "title": "Order Date", + "format": "date" + }, + "SchedDeliveryDate": { + "type": "string", + "description": "The date the product is scheduled to arrive at the warehouse.", + "title": "Scheduled Delivery Date", + "format": "date" + }, + "VendorNumber": { + "type": "string", + "description": "A reference to an existing Vendor in WithoutWire." + }, + "VendorName": { + "type": "string", + "description": "The name of the vendor supplying the product." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "PurchaseOrderType": { + "type": "integer", + "format": "int32", + "description": "The purchase order type for a specific purchase order. Valid values: 1-(Purchase Order), 2-(Auto Complete), 3-(Blanket)", + "title": "PurchaseOrderType", + "enum": [ + 1, + 2, + 3 + ] + }, + "PurchaseOrderComments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The purchase order type for a specific purchase order." + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "LineItemComments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A collection of strings to associate with this line on the purchase order." + } + } + }, + "description": "A collection of Purchase Order Line Object to be associated with a purchase order. Receipts are found within the purchase order line object." + } + } + } + } + } + ] + } + }, + "/integration/warehouse": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "description": "Result Message", + "title": "Result Message", + "type": "string" + } + } + }, + "summary": "Create Site", + "description": "This action creates a new warehouse in the system.", + "operationId": "CreateSite", + "parameters": [ + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "Warehouse Name" + }, + "Address1": { + "type": "string", + "description": "Address1" + }, + "State": { + "type": "string", + "description": "State" + }, + "Country": { + "type": "string", + "description": "Country" + }, + "ZipCode": { + "type": "string", + "description": "Zip Code" + }, + "City": { + "type": "string", + "description": "City" + } + } + } + } + } + ] + } + }, + "/integration/item": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Validator": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean", + "description": "Is valid" + }, + "ImportExceptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ErrorCode": { + "type": "string", + "description": "Error code" + }, + "ErrorMessage": { + "type": "string", + "description": "Error message" + }, + "FieldName": { + "type": "string", + "description": "Field name" + } + } + }, + "description": "Exceptions" + } + } + }, + "Identity": { + "type": "string", + "description": "Identity" + }, + "IdentityCode": { + "type": "string", + "description": "Identity code" + }, + "WarehouseName": { + "type": "string", + "description": "Warehouse name" + } + } + }, + "description": "Invalid objects" + } + } + } + } + }, + "operationId": "CreateItem", + "summary": "Create New Item", + "description": "This method creates new item", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "ItemGenericDescription": { + "type": "string", + "description": "Item Generic Description" + }, + "ItemType": { + "type": "string", + "description": "The type of item.", + "title": "Item Type", + "enum": [ + "Inventory", + "Kit", + "Service", + "Pallet" + ] + }, + "ManufacturerNumber": { + "type": "string", + "description": "The manufacturer's Item number", + "title": "Manufacturer Number" + }, + "UpcBarcodeNumber": { + "type": "string", + "description": "The UPC Barcode Number on the items package.", + "title": "UPC Barcode Number" + }, + "GrossWeight": { + "type": "number", + "format": "float", + "description": "Gross Weight", + "title": "Gross Weight" + }, + "FullPalletQuantity": { + "type": "integer", + "format": "int32", + "description": "WithoutWire supports pallet splitting. Supply an integer representing the maximum quantity that can be picked to one pallet.", + "title": "Maximum Pallet Quantity" + }, + "Length": { + "type": "number", + "format": "float", + "description": "Length" + }, + "Width": { + "type": "number", + "format": "float", + "description": "Width" + }, + "Height": { + "type": "number", + "format": "float", + "description": "Height" + }, + "NetWeight": { + "type": "number", + "format": "float", + "description": "Net Weight", + "title": "Net Weight" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "CycleCountInterval": { + "type": "integer", + "format": "int32", + "description": "WithoutWire can assist in reminding warehouse users that a cycle count is needed. Enter a value between 0 and 365 to indicate how many cycle counts you would like to perform in this item per year.", + "title": "Cycle Count Interval" + }, + "BaseUom": { + "type": "string", + "description": "The base unit of measure for this item", + "title": "Base UOM" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "A number representing the number of decimal places to track for this item. Must be less than or equal to 5.", + "title": "Significant Digits" + }, + "ZoneDesc": { + "type": "string", + "description": "The name of the zone where this item resides in the warehouse.", + "title": "Zone Description" + }, + "BaseConvFactor": { + "type": "number", + "format": "float", + "description": "The base unit of measure for this item." + } + }, + "required": [ + "ItemNumber", + "BaseUom", + "CoreItemType" + ] + } + } + } + ] + } + }, + "/integration/purchaseorder/filter": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse name in which the transaction is associated.", + "title": "WarehouseName" + }, + "PurchaseOrderNumber": { + "type": "string", + "description": "A unique number in the warehouse to identify the purchase order.", + "title": "PurchaseOrderNumber" + }, + "OrderDate": { + "type": "string", + "description": "The date purchase order was made.", + "title": "OrderDate" + }, + "SchedDeliveryDate": { + "type": "string", + "description": "The date the product is scheduled to arrive at the warehouse.", + "title": "SchedDeliveryDate" + }, + "VendorNumber": { + "type": "string", + "description": "A reference to an existing Vendor in WithoutWire.", + "title": "VendorNumber" + }, + "VendorName": { + "type": "string", + "description": "The name of the vendor supplying the product.", + "title": "VendorName" + }, + "ReceivingPercentOver": { + "type": "integer", + "format": "int32", + "description": "The percentage of over-receiving that is allowed for this vendor.", + "title": "ReceivingPercentOver" + }, + "PurchaseOrderType": { + "type": "integer", + "format": "int32", + "description": "The purchase order type for a specific purchase order.", + "title": "PurchaseOrderType" + }, + "PurchaseOrderComments": { + "type": "array", + "items": {}, + "description": "A list of comments to be associated with the Purchase Order." + }, + "CompletedDate": { + "type": "string", + "description": "The date the purchase order was completed.", + "title": "CompletedDate" + }, + "ExportedDate": { + "type": "string", + "description": "The date the purchase order exported.", + "title": "ExportedDate" + }, + "DateCreated": { + "type": "string", + "description": "The date the purchase order was created.", + "title": "DateCreated" + }, + "AssignmentManuallyModified": { + "type": "boolean", + "description": "A Boolean value which indicates whether the purchase order receiving assignment was manually modified by.", + "title": "AssignmentManuallyModified" + }, + "WebReceipt": { + "type": "boolean", + "description": "A Boolean value that indicates whether the purchase order was received through the WithoutWire website.", + "title": "WebReceipt" + }, + "FromWarehouse": { + "type": "string", + "description": "Indicates the warehouse where the product was shipped from on a transfer order.", + "title": "FromWarehouse" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify.", + "title": "Identity" + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item.", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "LineItemComments": { + "type": "array", + "items": {}, + "description": "A collection of strings to associate with this line on the purchase order." + }, + "Receipts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "QuantityReceived": { + "type": "number", + "format": "float", + "description": "Represents the quantity received on this receipt." + }, + "QuantityMissing": { + "type": "number", + "format": "float", + "description": "Represents the quantity missing on this receipt." + }, + "QuantityDamaged": { + "type": "number", + "format": "float", + "description": "Represents the quantity damaged on this receipt." + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked." + }, + "DateReceived": { + "type": "string", + "description": "Date Received" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify." + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + } + } + }, + "description": "Receipts" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + } + } + } + } + } + }, + "operationId": "GetInboundRequest", + "description": "This method allows the exporting of purchase orders by a combination of filters. These filters include begin and end date, receiving status code, item number, line receipt status, purchase order number and purchase order type. The Purchase Order Export Object returns a list of completed order information.", + "summary": "Get Inbound Request", + "parameters": [ + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Creation date of the purchase order", + "x-ms-summary": "Creation date of the purchase order" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "End date of the purchase order", + "x-ms-summary": "End date of the purchase order" + }, + { + "name": "poStatus", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "Unassigned", + "WaitingForReceipt", + "ReceivingInProcess", + "ReceivingComplete", + "Completed" + ], + "description": "The status of the purchase order at the header level", + "x-ms-summary": "the status of the purchase order at the header level" + }, + { + "name": "lineReceiptStatus", + "in": "query", + "required": false, + "type": "string", + "description": "This is the receiving status of the individual line.", + "enum": [ + "Unassigned", + "WaitingForReceipt", + "ReceivingInProcess", + "ReceivingComplete", + "Completed" + ], + "x-ms-summary": "This is the receiving status of the individual line." + }, + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Filter by item number. Returns all purchase orders that include this item number", + "x-ms-summary": "Filter by item number. Returns all purchase orders that include this item number" + }, + { + "name": "poNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Filter by purchase order number. Returns a specific purchase order.", + "x-ms-summary": "Filter by purchase order number. Returns a specific purchase order." + }, + { + "name": "poType", + "in": "query", + "required": false, + "type": "string", + "description": "The specific type of the inbound document. The value can either be the type or name or the shortened type code abbreviation (in parentheses): PurchaseOrder (PO), Transfer (TR), Return (RET) or ASN.", + "x-ms-summary": "The specific type of the inbound document." + } + ] + } + }, + "/integration/purchaseorder/complete": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Inbound Complete", + "description": "This API method used to set purchase orders to complete in WithoutWire. The order status is set to 'Complete'. Additional fields updated are: ExportDate on the purchase order object is set to the current date/time and the CompletedDate is set to the current date/time. Finally, the receiving assignments will be removed. An error is returned if the order is in 'Receiving in Progress'.", + "operationId": "InboundComplete", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "IdentityCode": { + "type": "string", + "description": "An string value to uniquely identify.", + "title": "IdentityCode" + }, + "WarehouseName": { + "type": "string", + "description": "The warehouse name in which the transaction is associated.", + "title": "WarehouseName" + } + } + } + } + } + ] + } + }, + "/integration/bins": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Create Location", + "description": "Create Location (Bin)", + "operationId": "CreateLocation", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the bin resides.", + "title": "WarehouseName" + }, + "BinNumber": { + "type": "string", + "description": "An alphanumeric value that uniquely identifies the bin.", + "title": "BinNumber" + }, + "BinType": { + "type": "string", + "description": "The specific bin type of this bin.", + "title": "BinType", + "enum": [ + "Inventory", + "Damage", + "Manufacturing", + "Receiving", + "QA", + "LicensePlate", + "Overstock", + "WorkInProgress", + "Staging", + "Hold", + "Exception" + ] + }, + "ParentBin": { + "type": "string", + "description": "License Plates in WithoutWire can be nested inside other bins or license plates. If the BinType is 'LicensePlate' specify a location for the License plate. This would be the parent bin of the license plate.", + "title": "ParentBin" + }, + "PickSequence": { + "type": "integer", + "format": "int32", + "description": "The order of items on the picking screen can be controlled by the Pick Sequence of the bin where the inventory resides.", + "title": "PickSequence" + } + } + } + } + } + ] + } + }, + "/integration/purchaseorder/receipt/complete": { + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Receipt Complete", + "description": "Receipt Complete", + "operationId": "ReceiptComplete", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Identity": { + "type": "integer", + "format": "int32", + "description": "The identity value should be taken from the Identity value from the receipt in the GetPO call above. This marks the receipt as exported within WithoutWire.", + "title": "Identity" + } + } + } + } + } + ] + } + }, + "/integration/salesorder": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "CustomerPoNumber": { + "type": "string", + "description": "The customer's PO Number for the order" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "Customer Name" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerAddress2": { + "type": "string", + "description": "Customer Address2" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShortDesc": { + "type": "string", + "description": "Customer description" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "UpcManufacturerNumber": { + "type": "string", + "description": "Universal Product Code" + }, + "CustomerPhone": { + "type": "string", + "description": "Customer Phone" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer." + }, + "NotificationEmail": { + "type": "string", + "description": "The email address for the customer." + }, + "RequiredShelfLife": { + "type": "integer", + "format": "int32", + "description": "An integer number in days representing additional time in advance of an item's expiration required when picking any materials for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipAttn": { + "type": "string", + "description": "The attention field indicating the individual being shipped to (if applicable)" + }, + "CustomerShipAddress1": { + "type": "string", + "description": "The ship-to address field 1" + }, + "CustomerShipAddress2": { + "type": "string", + "description": "The ship-to address field 2" + }, + "CustomerShipCity": { + "type": "string", + "description": "The ship-to city" + }, + "CustomerShipState": { + "type": "string", + "description": "The ship-to state" + }, + "CustomerShipZipCode": { + "type": "string", + "description": "The ship to five-digit plus zip code" + }, + "CustomerShipZip5": { + "type": "string", + "description": "The ship to a five-digit zip code" + }, + "CustomerShipPhone": { + "type": "string", + "description": "The ship-to phone number" + }, + "CustomerShipFax": { + "type": "string", + "description": "The ship to a fax number" + }, + "CustomerShipCountry": { + "type": "string", + "description": "The ship to zip country" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer." + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "Customer" + }, + "RouteDescription": { + "type": "string", + "description": "The description of the route" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered" + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "RouteNumber": { + "type": "string", + "description": "A value that references an existing route in WithoutWire" + }, + "ShipDate": { + "type": "string", + "description": "The date on which the order will be shipped" + }, + "DateCreated": { + "type": "string", + "description": "The date the sales order was created.", + "title": "DateCreated" + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ComponentSequence": { + "type": "integer", + "format": "int32", + "description": "If the item is part of a kit, the component sequence is used in conjunction with the line number to determine a unique ordering value" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item.", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement." + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + } + }, + "description": "A unit of measure type" + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "PickRecords": { + "type": "array", + "items": { + "type": "object", + "properties": { + "QuantityShipped": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity shipped for this pick record" + }, + "QuantityPicked": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity picked for this pick record" + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked." + } + } + }, + "description": "Pick Records" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "InventoryRequestTaskID": { + "type": "string", + "description": "The ID of the inventory request that the line is associated with (if applicable)" + } + } + }, + "description": "A collection of Sales Order Line Object to be associated with a Sales order. Receipts are found within the Sales order line object." + }, + "LoadDate": { + "type": "string", + "description": "The date the order was loaded" + }, + "PrintDate": { + "type": "string", + "description": "The date the order was printed" + }, + "ExportDate": { + "type": "string", + "description": "The date the order was exported" + }, + "ParentOrderNumber": { + "type": "string", + "description": "Parent order number" + }, + "TrackingNumber": { + "type": "string", + "description": "The shipping carrier tracking number" + }, + "ShippingMethodName": { + "type": "string", + "description": "The value that will uniquely identify the carrier and carrier shipping method" + }, + "ShippingWeight": { + "type": "number", + "format": "float", + "description": "The total weight of shipment for the order" + }, + "ShippingCost": { + "type": "number", + "format": "float", + "description": "The total cost of the shipment for the order" + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "StatusCode": { + "type": "string", + "description": "Order status code" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify.", + "title": "Identity" + }, + "UseOrderLevelShipping": { + "type": "string", + "description": "A flag indicating whether the order is to be shipped to the provided address instead of the saved address for the customer." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "PickingPriority": { + "type": "integer", + "format": "int32", + "description": "Picking Priority" + }, + "RoutePickingPriority": { + "type": "integer", + "format": "int32", + "description": "Route Picking Priority" + } + } + } + } + } + }, + "summary": "Get Sales Orders", + "description": "This action returns details of specific Sales order.", + "operationId": "GetSalesOrders", + "parameters": [ + { + "name": "orderNumber", + "in": "query", + "required": true, + "type": "string", + "description": "Specify sales order number", + "x-ms-summary": "Sales order number" + }, + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify begin date", + "x-ms-summary": "Begin date" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify end date", + "x-ms-summary": "End date" + }, + { + "name": "orderStatusCode", + "in": "query", + "required": false, + "type": "string", + "description": "Specify order status code", + "x-ms-summary": "Order status code" + }, + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify item number", + "x-ms-summary": "Item number" + }, + { + "name": "parentOrderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify parent order number", + "x-ms-summary": "Parent order number" + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "Specify User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Specify warehouse", + "x-ms-summary": "Warehouse" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Create Update Sales Order", + "description": "Create or Update Sales Order", + "operationId": "CreateUpdateSalesOrder", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the bin resides.", + "title": "WarehouseName" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order.", + "title": "OrderComment" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered.", + "title": "DeliveryDate", + "format": "date" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "The bill to name for this customer" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "The customer information." + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item.", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the bin resides.", + "title": "WarehouseName" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + } + }, + "description": "A unit of measure type" + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + } + } + } + } + } + ] + } + }, + "/api/workorder/consumption": { + "post": { + "responses": { + "204": { + "description": "204", + "schema": { + "description": "Result Message", + "title": "Result Message", + "type": "string" + } + } + }, + "summary": "Consume Inventory", + "description": "Consume Inventory", + "operationId": "ConsumeInventory", + "parameters": [ + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "BinPath": { + "type": "string", + "description": "Location of the bin", + "title": "BinPath" + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked", + "title": "Core Value", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "DATE" + ] + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "ItemUom": { + "type": "string", + "description": "Represents the Unit of Measure for the item.", + "title": "Item UOM" + }, + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "Quantity": { + "type": "number", + "format": "float", + "description": "The quantity available for the item in the specific bin of license plate referenced above.", + "title": "Quantity" + }, + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the bin resides.", + "title": "WarehouseName" + } + } + } + } + } + ] + } + }, + "/api/barcode": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "ItemIdentificationCount": { + "type": "integer", + "format": "int32", + "description": "The number of item identification records that match the scanned barcode." + }, + "LotOnlyCount": { + "type": "integer", + "format": "int32", + "description": "The number of lot/serial numbers that match the scanned barcode." + }, + "ItemOnlyCount": { + "type": "integer", + "format": "int32", + "description": "The number of items that match the scanned barcode." + }, + "LPCount": { + "type": "integer", + "format": "int32", + "description": "The number of license plates that match the scanned barcode." + }, + "BinOnlyCount": { + "type": "integer", + "format": "int32", + "description": "The number of bins that match the scanned barcode." + }, + "UOMBarcodeCount": { + "type": "integer", + "format": "int32", + "description": "The number of unit of measure-specific identification records that match the scanned barcode." + }, + "PoCount": { + "type": "integer", + "format": "int32", + "description": "The number of PO numbers that match the scanned barcode." + }, + "OrderCount": { + "type": "integer", + "format": "int32", + "description": "The number of order numbers that match the scanned barcode." + }, + "GtinCount": { + "type": "integer", + "format": "int32", + "description": "The number of GTIN (Global Trade Item Number) records that match the scanned barcode." + }, + "BinMultiSite": { + "type": "boolean", + "description": "A flag indicating whether any matching bins exist in more than one site." + }, + "AllocationSetCount": { + "type": "integer", + "format": "int32", + "description": "The number of allocation sets that match the scanned barcode." + }, + "PrinterCount": { + "type": "integer", + "format": "int32", + "description": "The number of system printers that match the scanned barcode." + } + } + } + } + }, + "summary": "Get Barcode Info", + "description": "This is used to retrieve the matching entity types for a provided barcode.", + "operationId": "GetBarcodeInfo", + "parameters": [ + { + "name": "barcode", + "in": "query", + "required": true, + "type": "string", + "description": "The barcode provided may be either an LP number or a shipment number.", + "x-ms-summary": "Barcode" + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } + ] + } + }, + "/api/po/container": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "POID": { + "type": "integer", + "format": "int32", + "description": "The ID of the purchase order, dropship or ASN associated with the scanned license plate (if applicable)" + }, + "PONumber": { + "type": "string", + "description": "Purchase Order Number" + }, + "PODetails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Item": { + "type": "object", + "properties": { + "ItemID": { + "type": "integer", + "format": "int32", + "description": "The ID of the item record on the scanned license plate." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked", + "title": "CoreValue", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "DATE" + ] + }, + "UomTypeID": { + "type": "integer", + "format": "int32", + "description": "The ID of the unit of measure in WithoutWire." + }, + "UomDescription": { + "type": "string", + "description": "Represents the Unit of Measure for this line of the Purchase order." + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BinNumber": { + "type": "string", + "description": "An alphanumeric value that uniquely identifies the bin.", + "title": "BinNumber" + }, + "BinPath": { + "type": "string", + "description": "Location of the bin", + "title": "BinPath" + }, + "IsLp": { + "type": "boolean", + "description": "Is Licence Plate" + }, + "Weight": { + "type": "number", + "format": "float", + "description": "Weight" + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + } + }, + "description": "Item" + }, + "Qty": { + "type": "number", + "format": "float", + "description": "Quantity", + "title": "Quantity" + }, + "ASNDetailID": { + "type": "integer", + "format": "int32", + "description": "The ID of the associated ASN line (if applicable)" + } + } + }, + "description": "Purchase Order Details" + }, + "TotalLpReceived": { + "type": "integer", + "format": "int32", + "description": "The total number of license plates already received for the associated transfer, dropship or ASN." + }, + "TotalLpShipped": { + "type": "integer", + "format": "int32", + "description": "The total number of license plates included in the transfer, dropship or ASN." + }, + "LpNumber": { + "type": "string", + "description": "License plate number is any object that holds items" + }, + "ShipmentNumber": { + "type": "string", + "description": "The Vendor Shipment Number for the order to be imported. Defaulted to the Order Number when left blank." + }, + "BinNumber": { + "type": "string", + "description": "An alphanumeric value that uniquely identifies the bin.", + "title": "BinNumber" + }, + "AllowEdits": { + "type": "boolean", + "description": "The AllowEdits property in the response should be used to determine whether the user can adjust quantities in the FS app or not." + } + } + } + } + } + }, + "summary": "Single Scan Inventory Lookup", + "operationId": "SingleScanInventoryLookup", + "description": "This method returns list of items on a LP or in DropShip box.", + "parameters": [ + { + "name": "barcode", + "in": "query", + "required": true, + "type": "string", + "description": "The barcode provided may be either an LP number or a shipment number.", + "x-ms-summary": "The barcode provided may be either an LP number or a shipment number." + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } + ] + } + }, + "/integration/transferorder": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the order resides.", + "title": "WarehouseName" + }, + "CustomerPoNumber": { + "type": "string", + "description": "The customer's PO Number for the order" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "The bill to name for this customer" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerAddress2": { + "type": "string", + "description": "Customer Address2" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShortDesc": { + "type": "string", + "description": "Customer description" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "UpcManufacturerNumber": { + "type": "string", + "description": "Universal Product Code" + }, + "CustomerPhone": { + "type": "string", + "description": "Customer Phone" + }, + "TestInd": { + "type": "boolean", + "description": "TestInd" + }, + "ConsiderDepartment": { + "type": "boolean", + "description": "ConsiderDepartment" + }, + "ConsiderDepartmentWhenPicking": { + "type": "boolean", + "description": "ConsiderDepartmentWhenPicking" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + }, + "Gs1CompanyNumber": { + "type": "string", + "description": "Gs1CompanyNumber" + }, + "StartingContainer": { + "type": "string", + "description": "StartingContainer" + }, + "EdiIndicator": { + "type": "boolean", + "description": "EdiIndicator" + }, + "CustomerClass": { + "type": "string", + "description": "Customer Class" + }, + "NotificationEmail": { + "type": "string", + "description": "The email address for the customer." + }, + "RequiredShelfLife": { + "type": "integer", + "format": "int32", + "description": "An integer number in days representing additional time in advance of an item's expiration required when picking any materials for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipAttn": { + "type": "string", + "description": "The attention field indicating the individual being shipped to (if applicable)" + }, + "CustomerShipAddress1": { + "type": "string", + "description": "The ship-to address field 1" + }, + "CustomerShipAddress2": { + "type": "string", + "description": "The ship-to address field 2" + }, + "CustomerShipCity": { + "type": "string", + "description": "The ship-to city" + }, + "CustomerShipState": { + "type": "string", + "description": "The ship-to state" + }, + "CustomerShipZipCode": { + "type": "string", + "description": "The ship to five-digit plus zip code" + }, + "CustomerShipZip5": { + "type": "string", + "description": "The ship to a five-digit zip code" + }, + "CustomerShipPhone": { + "type": "string", + "description": "The ship-to phone number" + }, + "CustomerShipFax": { + "type": "string", + "description": "The ship to a fax number" + }, + "CustomerShipCountry": { + "type": "string", + "description": "The ship to zip country" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + }, + "ValidatorObject": { + "type": "string", + "description": "Validator Object" + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "Customer" + }, + "RouteDescription": { + "type": "string", + "description": "The description of the route" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered." + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order.", + "title": "OrderComment" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "RouteNumber": { + "type": "string", + "description": "A value that references an existing route in WithoutWire" + }, + "ShipDate": { + "type": "string", + "description": "The date on which the order will be shipped" + }, + "DateCreated": { + "type": "string", + "description": "The date the sales order was created.", + "title": "DateCreated" + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ComponentSequence": { + "type": "integer", + "format": "int32", + "description": "If the item is part of a kit, the component sequence is used in conjunction with the line number to determine a unique ordering value" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type", + "enum": [ + "BASIC", + "LOT", + "SERIAL", + "or DATE" + ] + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + } + }, + "description": "UomType" + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "WarehouseName": { + "type": "string", + "description": "The name of the warehouse where the order resides.", + "title": "WarehouseName" + }, + "PickRecords": { + "type": "array", + "items": { + "type": "object", + "properties": { + "QuantityShipped": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity shipped for this pick record" + }, + "QuantityPicked": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity picked for this pick record" + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked." + } + } + }, + "description": "Pick Records" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "InventoryRequestTaskID": { + "type": "string", + "description": "The ID of the inventory request that the line is associated with (if applicable)" + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + }, + "LoadDate": { + "type": "string", + "description": "The date the order was loaded" + }, + "PrintDate": { + "type": "string", + "description": "The date the order was printed" + }, + "ExportDate": { + "type": "string", + "description": "The date the order was exported" + }, + "ParentOrderNumber": { + "type": "string", + "description": "Parent order number" + }, + "TrackingNumber": { + "type": "string", + "description": "The shipping carrier tracking number" + }, + "ShippingMethodName": { + "type": "string", + "description": "The value that will uniquely identify the carrier and carrier shipping method" + }, + "ShippingWeight": { + "type": "number", + "format": "float", + "description": "The total weight of shipment for the order" + }, + "ShippingCost": { + "type": "number", + "format": "float", + "description": "The total cost of the shipment for the order" + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "StatusCode": { + "type": "string", + "description": "Order status code" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify.", + "title": "Identity" + }, + "UseOrderLevelShipping": { + "type": "string", + "description": "A flag indicating whether the order is to be shipped to the provided address instead of the saved address for the customer." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "PickingPriority": { + "type": "integer", + "format": "int32", + "description": "Picking Priority" + }, + "RoutePickingPriority": { + "type": "integer", + "format": "int32", + "description": "Route Picking Priority" + } + } + } + } + } + }, + "summary": "Get Transfer Orders", + "description": "Get Transfer Orders", + "operationId": "GetTransferOrders", + "parameters": [ + { + "name": "orderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify order number", + "x-ms-summary": "Order number" + }, + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify begin date", + "x-ms-summary": "Begin date" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify end date", + "x-ms-summary": "End date" + }, + { + "name": "orderStatusCode", + "in": "query", + "required": false, + "type": "string", + "description": "Specify order status code", + "x-ms-summary": "Order status code" + }, + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify item number", + "x-ms-summary": "Item number" + }, + { + "name": "parentOrderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify parent order number", + "x-ms-summary": "Parent order number" + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Create Update Transfer Order", + "description": "Create Update Transfer Order", + "operationId": "CreateUpdateTransferOrder", + "parameters": [ + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "CustomerPoNumber": { + "type": "string", + "description": "The customer's PO Number for the order" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "DateCreated": { + "type": "string", + "description": "The date the transfer order was created.", + "title": "DateCreated" + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order.", + "title": "OrderComment" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "The bill to name for this customer" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "Customer" + }, + "RouteNumber": { + "type": "string", + "description": "A value that references an existing route in WithoutWire" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered." + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type" + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + } + }, + "description": "A unit of measure type." + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + } + } + } + } + } + ] + } + }, + "/integration/purchaseorder/po": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "PurchaseOrderNumber": { + "type": "string", + "description": "A unique number in the warehouse to identify the purchase order.", + "title": "PurchaseOrderNumber" + }, + "OrderDate": { + "type": "string", + "description": "The date purchase order was made.", + "title": "OrderDate" + }, + "SchedDeliveryDate": { + "type": "string", + "description": "The date the product is scheduled to arrive at the warehouse.", + "title": "SchedDeliveryDate" + }, + "VendorNumber": { + "type": "string", + "description": "A reference to an existing Vendor in WithoutWire.", + "title": "VendorNumber" + }, + "VendorName": { + "type": "string", + "description": "The name of the vendor supplying the product.", + "title": "VendorName" + }, + "ReceivingPercentOver": { + "type": "integer", + "format": "int32", + "description": "The percentage of over-receiving that is allowed for this vendor.", + "title": "ReceivingPercentOver" + }, + "PurchaseOrderType": { + "type": "integer", + "format": "int32", + "description": "The purchase order type for a specific purchase order.", + "title": "PurchaseOrderType" + }, + "PurchaseOrderComments": { + "type": "array", + "items": {}, + "description": "A list of comments to be associated with the Purchase Order." + }, + "CompletedDate": { + "type": "string", + "description": "The date the purchase order was completed.", + "title": "CompletedDate" + }, + "ExportedDate": { + "type": "string", + "description": "The date the purchase order exported.", + "title": "ExportedDate" + }, + "DateCreated": { + "type": "string", + "description": "The date the purchase order was created.", + "title": "DateCreated" + }, + "AssignmentManuallyModified": { + "type": "boolean", + "description": "A Boolean value which indicates whether the purchase order receiving assignment was manually modified by.", + "title": "AssignmentManuallyModified" + }, + "WebReceipt": { + "type": "boolean", + "description": "A Boolean value that indicates whether the purchase order was received through the WithoutWire website.", + "title": "WebReceipt" + }, + "FromWarehouse": { + "type": "string", + "description": "Indicates the warehouse where the product was shipped from on a transfer order.", + "title": "FromWarehouse" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify.", + "title": "Identity" + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type" + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "LineItemComments": { + "type": "array", + "items": {}, + "description": "A collection of strings to associate with this line on the purchase order." + }, + "Receipts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "QuantityReceived": { + "type": "number", + "format": "float", + "description": "Represents the quantity received on this receipt." + }, + "QuantityMissing": { + "type": "number", + "format": "float", + "description": "Represents the quantity missing on this receipt." + }, + "QuantityDamaged": { + "type": "number", + "format": "float", + "description": "Represents the quantity damaged on this receipt." + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked." + }, + "DateReceived": { + "type": "string", + "description": "Date Received" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify." + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + } + } + }, + "description": "Receipts" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + } + } + } + } + } + }, + "summary": "This action returns Purchase Orders filtered by parameters", + "description": "This method allows the exporting of purchase orders by a combination of filters. These filters include begin and end date, receiving status code, item number, line receipt status, purchase order number and purchase order type. The Purchase Order Export Object returns a list of completed order information.", + "operationId": "GetPO", + "parameters": [ + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Creation date of the purchase order", + "x-ms-summary": "Creation date of the purchase order" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "End date of the purchase order", + "x-ms-summary": "End date of the purchase order" + }, + { + "name": "poStatus", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "Unassigned", + "WaitingForReceipt", + "ReceivingInProcess", + "ReceivingComplete", + "Completed" + ], + "description": "The status of the purchase order at the header level", + "x-ms-summary": "the status of the purchase order at the header level" + }, + { + "name": "lineReceiptStatus", + "in": "query", + "required": false, + "type": "string", + "description": "This is the receiving status of the individual line.", + "enum": [ + "Unassigned", + "WaitingForReceipt", + "ReceivingInProcess", + "ReceivingComplete", + "Completed" + ], + "x-ms-summary": "This is the receiving status of the individual line." + }, + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Filter by item number. Returns all purchase orders that include this item number", + "x-ms-summary": "Filter by item number. Returns all purchase orders that include this item number" + }, + { + "name": "poNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Filter by purchase order number. Returns a specific purchase order.", + "x-ms-summary": "Filter by purchase order number. Returns a specific purchase order." + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "InvalidCount", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Create or Update Purchase Order", + "description": "This method creates or updates the Purchase Order.", + "operationId": "CreatePO", + "parameters": [ + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "PurchaseOrderNumber": { + "type": "string", + "description": "A unique number in the warehouse to identify the purchase order.", + "title": "PurchaseOrderNumber" + }, + "OrderDate": { + "type": "string", + "description": "The date purchase order was made.", + "title": "OrderDate" + }, + "SchedDeliveryDate": { + "type": "string", + "description": "The date the product is scheduled to arrive at the warehouse.", + "title": "SchedDeliveryDate" + }, + "VendorNumber": { + "type": "string", + "description": "A reference to an existing Vendor in WithoutWire.", + "title": "VendorNumber" + }, + "VendorName": { + "type": "string", + "description": "The name of the vendor supplying the product.", + "title": "VendorName" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "PurchaseOrderType": { + "type": "integer", + "format": "int32", + "description": "The purchase order type for a specific purchase order. Valid Values: 1-(Purchase Order) 2-(Auto Complete) 3-(Blanket)", + "title": "PurchaseOrderType", + "enum": [ + 1, + 2, + 3 + ] + }, + "PurchaseOrderComments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of comments to be associated with the Purchase Order." + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type" + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "LineItemComments": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A collection of strings to associate with this line on the purchase order." + } + } + }, + "description": "A collection of Purchase Order Line Object to be associated with a purchase order. Receipts are found within the purchase order line object." + } + } + } + } + } + ] + } + }, + "/integration/manufacturingorder": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "CustomerPoNumber": { + "type": "string", + "description": "The customer's PO Number for the order" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "The bill to name for this customer" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerAddress2": { + "type": "string", + "description": "Customer Address2" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShortDesc": { + "type": "string", + "description": "Customer Description" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "UpcManufacturerNumber": { + "type": "string", + "description": "Universal Product Code" + }, + "CustomerPhone": { + "type": "string", + "description": "Customer Phone" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + }, + "NotificationEmail": { + "type": "string", + "description": "The email address for the customer." + }, + "RequiredShelfLife": { + "type": "integer", + "format": "int32", + "description": "An integer number in days representing additional time in advance of an item's expiration required when picking any materials for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipAttn": { + "type": "string", + "description": "The attention field indicating the individual being shipped to (if applicable)" + }, + "CustomerShipAddress1": { + "type": "string", + "description": "The ship-to address field 1" + }, + "CustomerShipAddress2": { + "type": "string", + "description": "The ship-to address field 2" + }, + "CustomerShipCity": { + "type": "string", + "description": "The ship-to city" + }, + "CustomerShipState": { + "type": "string", + "description": "The ship-to state" + }, + "CustomerShipZipCode": { + "type": "string", + "description": "The ship to five-digit plus zip code" + }, + "CustomerShipZip5": { + "type": "string", + "description": "The ship to a five-digit zip code" + }, + "CustomerShipPhone": { + "type": "string", + "description": "The ship-to phone number" + }, + "CustomerShipFax": { + "type": "string", + "description": "The ship to a fax number" + }, + "CustomerShipCountry": { + "type": "string", + "description": "The ship to zip country" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + }, + "ValidatorObject": { + "type": "string", + "description": "Validator Object" + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "Customer" + }, + "RouteDescription": { + "type": "string", + "description": "The description of the route" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered." + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order.", + "title": "OrderComment" + }, + "DestinationWarehouseName": { + "type": "string", + "description": "The end destination warehouse descriptive name.", + "title": "DestinationWarehouseName" + }, + "RouteNumber": { + "type": "string", + "description": "A value that references an existing route in WithoutWire" + }, + "ShipDate": { + "type": "string", + "description": "The date on which the order will be shipped" + }, + "DateCreated": { + "type": "string", + "description": "The date the purchase order was created.", + "title": "DateCreated" + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ComponentSequence": { + "type": "integer", + "format": "int32", + "description": "If the item is part of a kit, the component sequence is used in conjunction with the line number to determine a unique ordering value" + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type" + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + } + }, + "description": "A unit of measure type." + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "PickRecords": { + "type": "array", + "items": { + "type": "object", + "properties": { + "QuantityShipped": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity shipped for this pick record" + }, + "QuantityPicked": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity picked for this pick record" + }, + "CoreValue": { + "type": "string", + "description": "A string value representing the lot number/serial/expiration date of the item that was picked." + } + } + }, + "description": "Pick Records" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "InventoryRequestTaskID": { + "type": "string", + "description": "The ID of the inventory request that the line is associated with (if applicable)" + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + }, + "LoadDate": { + "type": "string", + "description": "The date the order was loaded" + }, + "PrintDate": { + "type": "string", + "description": "The date the order was printed" + }, + "ExportDate": { + "type": "string", + "description": "The date the order was exported" + }, + "ParentOrderNumber": { + "type": "string", + "description": "Parent order number" + }, + "TrackingNumber": { + "type": "string", + "description": "The shipping carrier tracking number" + }, + "ShippingMethodName": { + "type": "string", + "description": "The value that will uniquely identify the carrier and carrier shipping method" + }, + "ShippingWeight": { + "type": "number", + "format": "float", + "description": "The total weight of shipment for the order" + }, + "ShippingCost": { + "type": "number", + "format": "float", + "description": "The total cost of the shipment for the order" + }, + "Status": { + "type": "string", + "description": "Order status name" + }, + "StatusCode": { + "type": "string", + "description": "Order status code" + }, + "Identity": { + "type": "integer", + "format": "int32", + "description": "Identity" + }, + "UseOrderLevelShipping": { + "type": "string", + "description": "A flag indicating whether the order is to be shipped to the provided address instead of the saved address for the customer." + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "PickingPriority": { + "type": "integer", + "format": "int32", + "description": "Picking Priority" + }, + "RoutePickingPriority": { + "type": "integer", + "format": "int32", + "description": "Route Picking Priority" + } + } + } + } + } + }, + "summary": "Get Manufacturing Order", + "description": "This method returns array of manufacturing orders, filtered by sent parameters(orderNumber, beginDate, endDate, orderStatusCode, itemNumber, parentOrderNumber).", + "operationId": "GetMfgO", + "parameters": [ + { + "name": "orderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify order number", + "x-ms-summary": "Order number" + }, + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify begin date", + "x-ms-summary": "Begin date" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify end date", + "x-ms-summary": "End date" + }, + { + "name": "orderStatusCode", + "in": "query", + "required": false, + "type": "string", + "description": "Specify order status code", + "x-ms-summary": "Order status code" + }, + { + "name": "itemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify item number", + "x-ms-summary": "Item number" + }, + { + "name": "parentOrderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify parent order number", + "x-ms-summary": "Parent order number" + }, + { + "name": "UserName", + "in": "header", + "required": true, + "type": "string", + "description": "Specify User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": true, + "type": "string", + "description": "Specify warehouse", + "x-ms-summary": "Warehouse" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "TotalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of processed records", + "title": "TotalCount" + }, + "InsertedCount": { + "type": "integer", + "format": "int32", + "description": "Number of inserted records", + "title": "InsertedCount" + }, + "UpdatedCount": { + "type": "integer", + "format": "int32", + "description": "Number of updated records", + "title": "UpdatedCount" + }, + "InvalidCount": { + "type": "integer", + "format": "int32", + "description": "Number of records with errors", + "title": "Number of records with errors" + }, + "InvalidObjects": { + "type": "array", + "items": {}, + "description": "Invalid Objects" + } + } + } + } + }, + "summary": "Create or Update Manufacturing Order", + "description": "This method creates or updates manufacturing order.", + "operationId": "CreateUpdateManufacturingOrder", + "parameters": [ + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "CustomerPoNumber": { + "type": "string", + "description": "The customer's PO Number for the order" + }, + "VendorShipmentNumber": { + "type": "string", + "description": "The vendors shipping number" + }, + "OrderNumber": { + "type": "string", + "description": "A unique alphanumeric value to identify this order in the warehouse" + }, + "AllocationSetName": { + "type": "string", + "description": "The allocation set that the associated inventory record is assigned to.", + "title": "Allocation Set Name" + }, + "OrderType": { + "type": "integer", + "format": "int32", + "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" + }, + "DateCreated": { + "type": "string", + "description": "The date the purchase order was created.", + "title": "DateCreated" + }, + "OrderComment": { + "type": "string", + "description": "The comments to be associated with the order.", + "title": "OrderComment" + }, + "Customer": { + "type": "object", + "properties": { + "CustomerName": { + "type": "string", + "description": "The bill to name for this customer" + }, + "CustomerNumber": { + "type": "string", + "description": "A unique identifier for the customer, separate from the Customer ID WithoutWire uses to uniquely identify customers" + }, + "CustomerAddress1": { + "type": "string", + "description": "The bill to address field 1 for this customer" + }, + "CustomerCity": { + "type": "string", + "description": "The bill to the city for this customer." + }, + "CustomerState": { + "type": "string", + "description": "The bill to state for this customer" + }, + "CustomerZipCode": { + "type": "string", + "description": "The bill to zip code for this customer" + }, + "CustomerCountry": { + "type": "string", + "description": "The bill to zip country for this customer" + }, + "CustomerShippingAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "CustomerShipName": { + "type": "string", + "description": "The ship-to name" + }, + "CustomerShipTo": { + "type": "string", + "description": "Uniquely identifies a specific customer shipping address per customer" + } + } + }, + "description": "Customer Shipping Addresses" + } + }, + "description": "Customer" + }, + "RouteNumber": { + "type": "string", + "description": "A value that references an existing route in WithoutWire" + }, + "DeliveryDate": { + "type": "string", + "description": "The date on which the order will be delivered." + }, + "LineItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "LineNumber": { + "type": "integer", + "format": "int32", + "description": "An integer value to uniquely identify the line on the order." + }, + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "CoreItemType": { + "type": "string", + "description": "A string value that indicates whether the item is lot tracked, serial tracked, expiration date tracked, or a standard item.", + "title": "Core Item Type" + }, + "QuantityOrdered": { + "type": "number", + "format": "float", + "description": "A decimal value representing the quantity to pick for the line item" + }, + "LineItemComment": { + "type": "string", + "description": "Comments for the line item" + }, + "ItemDescription": { + "type": "string", + "description": "A name that uniquely identifies an item within the warehouse" + }, + "UomType": { + "type": "object", + "properties": { + "UomDesc": { + "type": "string", + "description": "A string value that uniquely identifies the unit of measurement" + }, + "SignificantDigits": { + "type": "integer", + "format": "int32", + "description": "An integer value representing the number of decimal places to track for this unit of measure." + }, + "BaseConversionFactor": { + "type": "number", + "format": "float", + "description": "A decimal value representing the conversion from this unit of measure to the base unit of measure" + } + }, + "description": "A unit of measure type." + } + } + }, + "description": "A collection of Order Line Object to be associated with an order. Receipts are found within the order line object." + } + } + } + } + } + ] + } } }, "definitions": {}, diff --git a/certified-connectors/WithoutWire Inventory Platform/apiProperties.json b/certified-connectors/WithoutWire Inventory Platform/apiProperties.json index 2c3a998d17..b1a148e7b9 100644 --- a/certified-connectors/WithoutWire Inventory Platform/apiProperties.json +++ b/certified-connectors/WithoutWire Inventory Platform/apiProperties.json @@ -39,7 +39,7 @@ } } ], - "publisher": "Enavate", + "publisher": "WithoutWire Inventory Sciences", "stackOwner": "WithoutWire Inventory Sciences" } } \ No newline at end of file diff --git a/certified-connectors/WithoutWire Inventory Platform/readme.md b/certified-connectors/WithoutWire Inventory Platform/readme.md index 6e46d85282..b725310a18 100644 --- a/certified-connectors/WithoutWire Inventory Platform/readme.md +++ b/certified-connectors/WithoutWire Inventory Platform/readme.md @@ -14,12 +14,25 @@ Once you have users and inventory setup, email support@withoutwire.com and reque ## Supported Operations The connector supports the following operations: -* create/update a work order -* get list of work orders -* delete a workorder -* assing a work order to technician(s) -* set a work order status -* set a work order as complete +* methods to process different types of orders (sales order, transfer order, work order, manufacturing order) + - create/update + - get list of orders + - delete an order + - assing an order to technician(s) + - set order status + - set order as complete +* methods to process inbound requests and purchase orders + - create + - delete + - get list + - receipt complete + - inbound request complete +* methods to support ibventory lookup scenarios +* methods to support inventory receive scenario (lookup and receive) +* methods to support workorder consumption scenario +* methods to support inventory request and inventory adjustment scenarios +* create location +* create site ## Deployment instructions Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps \ No newline at end of file From 6cf1ed648d03e0c3a12051db7dd46e1848a60138 Mon Sep 17 00:00:00 2001 From: Egil Barland Date: Fri, 1 Oct 2021 03:30:44 +0200 Subject: [PATCH 028/219] Nextcom: Update Icon color hex (#1138) * Added Nextcom connector for certification * Added descriptions to all fields * Set correct color * Added response schemas to the error messages * Fixed spacing on lines * Sett non-development path for API * Run files through JSON beautifier * In lieu of secure string not working, add format * Update icon color Co-authored-by: Egil Barland --- certified-connectors/Nextcom/apiProperties.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/certified-connectors/Nextcom/apiProperties.json b/certified-connectors/Nextcom/apiProperties.json index a9d10010c4..dad1f6c7dc 100644 --- a/certified-connectors/Nextcom/apiProperties.json +++ b/certified-connectors/Nextcom/apiProperties.json @@ -41,7 +41,7 @@ } } }, - "iconBrandColor": "#2596be", + "iconBrandColor": "#002930", "capabilities": [], "policyTemplateInstances": [ { @@ -59,4 +59,4 @@ "publisher": "Nextcom Evolution AS", "stackOwner": "Nextcom Evolution AS" } -} \ No newline at end of file +} From 4f901489cb4b304726fa87dc706dbf7b03dc5f63 Mon Sep 17 00:00:00 2001 From: Philippe Marzouk <71893017+pmarzouk-cnve@users.noreply.github.com> Date: Fri, 1 Oct 2021 03:31:20 +0200 Subject: [PATCH 029/219] update links to the documentation site (#1137) --- .../Connective eSignatures/Readme.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/certified-connectors/Connective eSignatures/Readme.md b/certified-connectors/Connective eSignatures/Readme.md index 631aa0318a..8376e09e24 100644 --- a/certified-connectors/Connective eSignatures/Readme.md +++ b/certified-connectors/Connective eSignatures/Readme.md @@ -10,9 +10,9 @@ This page will further detail the different actions available, as well as provid ## Documentation -Don't hesitate to have a look at our [documentation website](https://documentation.connective.eu/) for further information or reach out to the support team through or [support contact form](https://connective.eu/contact-support/) or support mailbox: service@connective.eu +Don't hesitate to have a look at our [documentation website](https://documentation-archive.connective.eu/) for further information or reach out to the support team through or [support contact form](https://connective.eu/contact-support/) or support mailbox: service@connective.eu -A [glossary](https://documentation.connective.eu/en-us/eSignaturesGlossary/Glossary.html) is available to explain the different terms being used within this documentation +A [glossary](https://documentation-archive.connective.eu/en-us/eSignaturesGlossary/Glossary.html) is available to explain the different terms being used within this documentation ## Supported Operations @@ -22,23 +22,23 @@ The available actions can be grouped into different groups | Action Group | Available Actions | | ----------------------------------- | ------------------------------------------------------------ | -| Uploading documents | [Create Package](https://documentation.connective.eu/en-us/eSignatures5.5/api/CreatePackage.html) | -| | [Add Document to Package](https://documentation.connective.eu/en-us/eSignatures5.5/api/DocToPackage.html) | -| | [Get Signing Locations](https://documentation.connective.eu/en-us/eSignatures5.5/api/GetSigningLocations.html) | -| | [Set Process Information](https://documentation.connective.eu/en-us/eSignatures5.5/api/SetProcessInformationV3.1.html) | -| | [Set Package Status](https://documentation.connective.eu/en-us/eSignatures5.5/api/SetPackageStatus.html) | -| | [Create Instant Package](https://documentation.connective.eu/en-us/eSignatures5.5/api/InstantPackageCreation.html) | -| Retrieving the status of a document | [Get Package Status](https://documentation.connective.eu/en-us/eSignatures5.5/api/GetPackageStatus.html) | -| | [Get Package List](https://documentation.connective.eu/en-us/eSignatures5.5/api/Packagelist.html) | -| Miscellaneous actions | [Skip Signers](https://documentation.connective.eu/en-us/eSignatures5.5/api/SkipSigners.html) | -| | [Download Package](https://documentation.connective.eu/en-us/eSignatures5.5/api/DownloadPackage.html) | -| | [Package Expiry Extension](https://documentation.connective.eu/en-us/eSignatures5.5/api/PackageExpiryExtension.html) | -| | [Send Package Reminder](https://documentation.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | -| | [Delete Package](https://documentation.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | -| Retrieving Audit Proof | [Retrieve Package Audit Proofs](https://documentation.connective.eu/en-us/eSignatures5.5/api/RetrieveAuditProofs.html) | -| | [Retrieve Document Audit Proofs](https://documentation.connective.eu/en-us/eSignatures5.5/api/RetrieveAuditProofs.html) | -| | [Retrieve Package Audit Proofs with Correlation ID](https://documentation.connective.eu/en-us/eSignatures5.5/api/RetrievePackageCorrelation.html) | -| | [Retrieve Document Audit Proofs with Correlation ID](https://documentation.connective.eu/en-us/eSignatures5.5/api/RetrievePackageCorrelation.html) | -| | [Add Proof from an External Source](https://documentation.connective.eu/en-us/eSignatures5.5/api/AddProoffromexternalsource.html) | +| Uploading documents | [Create Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/CreatePackage.html) | +| | [Add Document to Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/DocToPackage.html) | +| | [Get Signing Locations](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/GetSigningLocations.html) | +| | [Set Process Information](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SetProcessInformationV3.1.html) | +| | [Set Package Status](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SetPackageStatus.html) | +| | [Create Instant Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/InstantPackageCreation.html) | +| Retrieving the status of a document | [Get Package Status](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/GetPackageStatus.html) | +| | [Get Package List](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/Packagelist.html) | +| Miscellaneous actions | [Skip Signers](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SkipSigners.html) | +| | [Download Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/DownloadPackage.html) | +| | [Package Expiry Extension](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/PackageExpiryExtension.html) | +| | [Send Package Reminder](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | +| | [Delete Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | +| Retrieving Audit Proof | [Retrieve Package Audit Proofs](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/RetrieveAuditProofs.html) | +| | [Retrieve Document Audit Proofs](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/RetrieveAuditProofs.html) | +| | [Retrieve Package Audit Proofs with Correlation ID](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/RetrievePackageCorrelation.html) | +| | [Retrieve Document Audit Proofs with Correlation ID](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/RetrievePackageCorrelation.html) | +| | [Add Proof from an External Source](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/AddProoffromexternalsource.html) | From ddba9743c7ea13bf121f68874a6828c85d681960 Mon Sep 17 00:00:00 2001 From: gayathri35 <87477629+gayathri35@users.noreply.github.com> Date: Fri, 1 Oct 2021 07:54:26 +0530 Subject: [PATCH 030/219] IN-D Insurance (ICD10/CPT autocoding) (#1112) * Add files via upload * Delete apiProperties.json * Delete apiDefinition.swagger.json * Delete Readme.md * Delete apiProperties.json * Delete apiDefinition.swagger.json * Delete README.md * Delete apiProperties.json * Create apiDefinition.swagger.json * Add files via upload * Add files via upload * Create README.md * Update apiDefinition.swagger.json * Create apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update README.md * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json --- .../README.md | 11 +- .../apiDefinition.swagger.json | 204 ++++---- .../apiProperties.json | 9 +- .../apiProperties.json | 23 - certified-connectors/IN-D Insurance/Readme.md | 15 - .../IN-D Insurance/apiDefinition.swagger.json | 437 ------------------ 6 files changed, 127 insertions(+), 572 deletions(-) rename certified-connectors/{IN-D Insurance (ICD10 & CPT) => IN-D Insurance (ICD10 & CPT autocoding)}/README.md (90%) rename certified-connectors/{IN-D Insurance (ICD10 & CPT) => IN-D Insurance (ICD10 & CPT autocoding)}/apiDefinition.swagger.json (83%) rename certified-connectors/{IN-D Insurance => IN-D Insurance (ICD10 & CPT autocoding)}/apiProperties.json (80%) delete mode 100644 certified-connectors/IN-D Insurance (ICD10 & CPT)/apiProperties.json delete mode 100644 certified-connectors/IN-D Insurance/Readme.md delete mode 100644 certified-connectors/IN-D Insurance/apiDefinition.swagger.json diff --git a/certified-connectors/IN-D Insurance (ICD10 & CPT)/README.md b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/README.md similarity index 90% rename from certified-connectors/IN-D Insurance (ICD10 & CPT)/README.md rename to certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/README.md index d9d1ac2ba8..ad678777e8 100644 --- a/certified-connectors/IN-D Insurance (ICD10 & CPT)/README.md +++ b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/README.md @@ -1,24 +1,23 @@ -# IN-D Insurance (ICD10/CPT) +# IN-D Insurance (ICD10 & CPT) IN-D Insurance does ICD10 and CPT auto-coding by understanding the disease name and the respective diagnosis by extracting the information from the discharge summary uploaded without a need to set up any template. + ## Pre-requisites You will need the following to proceed • Active Microsoft Power Automate, Power Apps, Logic Apps account
-• You need an API key to access the connector which you can get from IN-D One portal. +• You need an API key to access the connector which you can get from IN-D One portal. ### Supported Operations • ICD10 Auto-coding - From Disease Name : Automatically does ICD10 coding when given the disease name as the input.
• ICD10 Auto-coding - From Discharge Summary Document : Smartly understand the disease from a Discharge Summary document without the need to set up any templates beforehand and does ICD10 auto-coding.
-• Highlight disease and medical terms - From Discharge Summary Document : Automatically highlights the disease and other medical terms in a discharge summary document once uploaded.
+• Highlight disease and medical terms - From Discharge Summary Document : Automatically highlights the disease and other medical terms in a discharge summary document once    uploaded.
• CPT Auto-coding - From Discharge Summary Document : Smartly understand the Diagnosis from a Discharge Summary document without the need to set up any templates beforehand and does CPT auto-coding.
• Highlight diagnosis and medical terms - From Discharge Summary Document : Automatically highlights the diagnosis and other medical terms in a discharge summary document once uploaded.
• CPT Auto-coding - From Diagnosis Name : Automatically does CPT coding when given the diagnosis name as the input.
#### How to get credentials -For accessing the connector, you need an API Key which can be obtained from our portal (https://one.in-d.ai). Register your company to create an account. Login and you can always get your API Key generated by clicking Generate button under the KYC product. By default each Key only have 1000 credit points that you can utilize to test the solution. For official implementation and support drop a mail to explore@in-d.ai. We will connect with you in next 24 hours. - - +For accessing the connector, you need an API Key which can be obtained from our portal (https://one.in-d.ai). Register your company to create an account. Login and you can always get your API Key generated by clicking Generate button under the KYC product. By default each Key only have 1000 credit points that you can utilize to test the solution. For official implementation and support drop a mail to explore@in-d.ai. We will connect with you in next 24 hours. diff --git a/certified-connectors/IN-D Insurance (ICD10 & CPT)/apiDefinition.swagger.json b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiDefinition.swagger.json similarity index 83% rename from certified-connectors/IN-D Insurance (ICD10 & CPT)/apiDefinition.swagger.json rename to certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiDefinition.swagger.json index fbb652485e..f5cf99366f 100644 --- a/certified-connectors/IN-D Insurance (ICD10 & CPT)/apiDefinition.swagger.json +++ b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiDefinition.swagger.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "title": "IN-D Insurance (ICD10/CPT)", + "title": "IN-D Insurance (ICD10 & CPT)", "description": "IN-D Insurance does ICD10 and CPT auto-coding by understanding the disease name and the respective diagnosis by extracting the information from the discharge summary uploaded without a need to set up any template.", "version": "1.0", "contact": { @@ -10,7 +10,7 @@ "email": "explore@in-d.ai" } }, - "host": "insurance.in-d.ai", + "host": "indinsurance.in-d.ai", "basePath": "/", "schemes": [ "https" @@ -60,11 +60,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "desc": { "type": "string", - "description": "desc" + "description": "desc", + "title": "error description" } } } @@ -76,7 +78,8 @@ "properties": { "message": { "type": "string", - "description": "message" + "description": "message", + "title": "api key missing" } } } @@ -88,11 +91,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Internal error" } } } @@ -108,7 +113,7 @@ "required": true, "type": "string", "default": "application/json", - "description": "Content-Type of request", + "description": "Content-Type of post request", "x-ms-summary": "Content-Type of request" }, { @@ -233,7 +238,7 @@ "message": { "type": "string", "description": "message", - "title": "internal error" + "title": "Internal error" } } } @@ -249,7 +254,7 @@ "required": true, "type": "string", "default": "application/json", - "description": "content type of post request", + "description": "content-Type of post request", "x-ms-summary": "Content-Type of request" }, { @@ -267,7 +272,7 @@ "file_name": { "type": "string", "description": "file_name", - "title": "file_name" + "title": "file name" }, "file": { "type": "string", @@ -307,11 +312,13 @@ "properties": { "file_name": { "type": "string", - "description": "file_name" + "description": "file_name", + "title": "file name" }, "output_image": { "type": "string", - "description": "output_image" + "description": "output_image", + "title": "output image" } } }, @@ -327,11 +334,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Valid or Invalid input" } } } @@ -343,11 +352,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "api key missing" } } } @@ -359,11 +370,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Internal error" } } } @@ -378,7 +391,7 @@ "in": "header", "required": true, "type": "string", - "description": "Content-Type of request", + "description": "Content-Type of post request", "x-ms-summary": "Content-Type of request", "default": "application/json" }, @@ -437,19 +450,23 @@ "properties": { "file_name": { "type": "string", - "description": "file_name" + "description": "file_name", + "title": "file name" }, "diseases_found": { "type": "string", - "description": "diseases_found" + "description": "diseases_found", + "title": "diseases found" }, "cpt_code": { "type": "string", - "description": "cpt_code" + "description": "list of cpt codes", + "title": "cpt code" }, "cpt_desc": { "type": "string", - "description": "cpt_desc" + "description": "cpt_description", + "title": "cpt desc" }, "output_image": { "type": "string", @@ -469,11 +486,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Valid or Invalid input" } } } @@ -485,11 +504,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "api key missing" } } } @@ -501,11 +522,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Internal error" } } } @@ -521,7 +544,7 @@ "required": true, "type": "string", "default": "application/json", - "description": "Content-Type of request", + "description": "Content-Type of post request", "x-ms-summary": "Content-Type of request" }, { @@ -572,22 +595,15 @@ "schema": { "type": "object", "properties": { - "result": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "file_name" - }, - "output_image": { - "type": "string", - "description": "output_image" - } - } - }, - "description": "result" + "file_name": { + "type": "string", + "description": "file_name", + "title": "file name" + }, + "output_image": { + "type": "string", + "description": "output_image", + "title": "output image" } } } @@ -597,13 +613,15 @@ "schema": { "type": "object", "properties": { - "status": { + "message": { "type": "string", - "description": "status" + "description": "message", + "title": "Valid or Invalid input" }, - "message": { + "status": { "type": "string", - "description": "message" + "description": "status", + "title": "request status either success or fail" } } } @@ -613,13 +631,15 @@ "schema": { "type": "object", "properties": { - "status": { + "message": { "type": "string", - "description": "status" + "description": "message", + "title": "api key missing" }, - "message": { + "status": { "type": "string", - "description": "message" + "description": "status", + "title": "request status either success or fail" } } } @@ -629,13 +649,15 @@ "schema": { "type": "object", "properties": { - "status": { + "message": { "type": "string", - "description": "status" + "description": "message", + "title": "Internal error" }, - "message": { + "status": { "type": "string", - "description": "message" + "description": "status", + "title": "request status either success or fail" } } } @@ -651,9 +673,8 @@ "required": true, "type": "string", "default": "application/json", - "description": "Content-Type of request", - "x-ms-summary": "Content-Type of request", - "format": "byte" + "description": "Content-Type of post request", + "x-ms-summary": "Content-Type of request" }, { "name": "body", @@ -710,15 +731,18 @@ "properties": { "input_given": { "type": "string", - "description": "input_given" + "description": "input_given", + "title": "Input Disease name" }, "cpt_code": { "type": "string", - "description": "cpt_code" + "description": "cpt_code", + "title": "cpt codes" }, "cpt_desc": { "type": "string", - "description": "cpt_desc" + "description": "cpt_description", + "title": "cpt desc" } } }, @@ -734,11 +758,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Valid or Invalid input" } } } @@ -750,11 +776,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "api key missing" } } } @@ -766,11 +794,13 @@ "properties": { "status": { "type": "string", - "description": "status" + "description": "status", + "title": "request status either success or fail" }, "message": { "type": "string", - "description": "message" + "description": "message", + "title": "Internal error" } } } @@ -786,7 +816,7 @@ "required": true, "type": "string", "default": "application/json", - "description": "Content-Type of request", + "description": "Content-Type of post request", "x-ms-summary": "Content-Type of request" }, { @@ -823,20 +853,6 @@ } } }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.in-d.ai" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.in-d.ai/privacy-policy" - }, - { - "propertyName": "Categories", - "propertyValue": "AI;IT Operations" - } - ], "definitions": {}, "parameters": {}, "responses": {}, @@ -852,5 +868,19 @@ "API Key": [] } ], - "tags": [] + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.in-d.ai" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.in-d.ai/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "AI;IT Operations" + } + ] } diff --git a/certified-connectors/IN-D Insurance/apiProperties.json b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiProperties.json similarity index 80% rename from certified-connectors/IN-D Insurance/apiProperties.json rename to certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiProperties.json index 3864920a36..23652a30d6 100644 --- a/certified-connectors/IN-D Insurance/apiProperties.json +++ b/certified-connectors/IN-D Insurance (ICD10 & CPT autocoding)/apiProperties.json @@ -15,9 +15,10 @@ } } }, - "iconBrandColor": "#048c88", + "iconBrandColor": "#dcfffe", "capabilities": [], - "publisher": "IN-D by Intain", - "stackOwner": "IN-D by Intain" + "publisher": "IN-D AI", + "stackOwner": "IN-D AI" + } -} \ No newline at end of file +} diff --git a/certified-connectors/IN-D Insurance (ICD10 & CPT)/apiProperties.json b/certified-connectors/IN-D Insurance (ICD10 & CPT)/apiProperties.json deleted file mode 100644 index ae78e91651..0000000000 --- a/certified-connectors/IN-D Insurance (ICD10 & CPT)/apiProperties.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "properties": { - "connectionParameters": { - "api_key": { - "type": "securestring", - "uiDefinition": { - "displayName": "API Key", - "description": "The API Key for this api", - "tooltip": "Provide your API Key", - "constraints": { - "tabIndex": 2, - "clearText": false, - "required": "true" - } - } - } - }, - "iconBrandColor": "#158978", - "capabilities": [], - "publisher": "IN-D by Intain", - "stackOwner":"IN-D by Intain" - } -} \ No newline at end of file diff --git a/certified-connectors/IN-D Insurance/Readme.md b/certified-connectors/IN-D Insurance/Readme.md deleted file mode 100644 index 12ad75e979..0000000000 --- a/certified-connectors/IN-D Insurance/Readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# IN-D Insurance Connector
-IN-D Insurance does ICD10 auto-coding by understanding the disease when extracting information from the discharge summary uploaded without a need to set up any template.
- -## Pre-requisites
-You will need the following to proceed
-• Active Microsoft Power Automate, Power Apps, Logic Apps account
-• You need an API key to access the connector which you can get from IN-D One portal(https://one.in-d.ai/).
- -### Supported Operations
-• ICD10 Auto-coding - From Disease Name : Automatically does ICD10 coding when given the disease name as the input.
-• ICD10 Auto-coding - From Discharge Summary Document : Smartly understand the disease from a Discharge Summary document without the need to set up any templates beforehand and does ICD10 auto-coding.
-• Highlight disease and medical terms - From Discharge Summary Document :Automatically highlights the disease and other medical terms in a discharge summary document once uploaded.
- -#### How to get credentials
-For accessing the connector, you need an API Key which can be obtained from our portal (https://one.in-d.ai/). Register your company to create an account. Login and you can always get your API Key generated by clicking Generate button under the Insurance product.For official implementation and support drop a mail to explore@in-d.ai. We will connect with you in next 24 hours. diff --git a/certified-connectors/IN-D Insurance/apiDefinition.swagger.json b/certified-connectors/IN-D Insurance/apiDefinition.swagger.json deleted file mode 100644 index f5abf8d744..0000000000 --- a/certified-connectors/IN-D Insurance/apiDefinition.swagger.json +++ /dev/null @@ -1,437 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "IN-D Insurance", - "description": "IN-D Insurance does ICD10 auto-coding by understanding the disease when extracting information from the discharge summary uploaded without a need to set up any template.", - "version": "1.0", - "contact": { - "name": "IN-D Support", - "url": "https://one.in-d.ai/developer/", - "email": "explore@in-d.ai" - } - }, - "host": "inssit.in-d.ai", - "basePath": "/", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [], - "paths": { - "/icd_code_disease": { - "post": { - "responses": { - "200": { - "description": "success", - "schema": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "object", - "properties": { - "input_given": { - "type": "string", - "description": "input disease name", - "title": "input disease name" - }, - "icd_code": { - "type": "string", - "description": "icd code for disease name", - "title": "icd code" - }, - "icd_desc": { - "type": "string", - "description": "icd desc", - "title": "icd code description" - } - } - }, - "description": "result" - } - } - } - }, - "400": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "status of request either success or fail" - }, - "desc": { - "type": "string", - "description": "desc", - "title": "error description" - } - } - } - }, - "403": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "message", - "title": "api key missing" - } - } - } - }, - "500": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "status of request either success or fail" - }, - "message": { - "type": "string", - "description": "message", - "title": "internal error" - } - } - } - } - }, - "summary": "ICD10 Auto-coding - From Disease Name", - "description": "Automatically does ICD10 coding when given the disease name as the input", - "operationId": "ICD10Auto-coding-FromDiseaseName", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "query": { - "type": "array", - "items": { - "type": "object", - "properties": { - "disease_name": { - "type": "string", - "description": "disease name", - "title": "disease name" - } - }, - "required": [ - "disease_name" - ] - }, - "description": "query" - } - }, - "required": [ - "query" - ] - } - } - ] - } - }, - "/icd_code_file": { - "post": { - "responses": { - "200": { - "description": "success", - "schema": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "file name of input", - "title": "file name" - }, - "disease": { - "type": "string", - "description": "list of disease names ", - "title": "diseases" - }, - "icd_code": { - "type": "string", - "description": "list of icd codes", - "title": "icd code" - }, - "icd_desc": { - "type": "string", - "description": "icd code description", - "title": "icd desc" - }, - "output_image": { - "type": "string", - "description": "base64 content of uploaded image with highlighted disease names and icd codes", - "title": "o/p image" - } - } - }, - "description": "result" - } - } - } - }, - "400": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "request status either success or fail" - }, - "desc": { - "type": "string", - "description": "desc", - "title": "error description" - } - } - } - }, - "403": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "message", - "title": "api key missing" - } - } - } - }, - "500": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "request status either sucess or failure" - }, - "message": { - "type": "string", - "description": "message", - "title": "internal error" - } - } - } - } - }, - "summary": "ICD10 Auto-coding - From Discharge Summary Document", - "description": "Smartly understand the disease from a Discharge Summary document without the need to set up any templates beforehand and does ICD10 auto-coding", - "operationId": "ICD10Auto-coding-FromDischargeSummary", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "query": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "file_name", - "title": "name of file (discharge summary)" - }, - "file": { - "type": "string", - "description": "file", - "title": "base64 content of file (discharge summary)", - "format": "byte" - } - }, - "required": [ - "file", - "file_name" - ] - }, - "description": "query" - } - }, - "required": [ - "query" - ] - } - } - ] - } - }, - "/icd_code_highlight": { - "post": { - "responses": { - "200": { - "description": "success", - "schema": { - "type": "object", - "properties": { - "result": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "input file name", - "title": "name of file" - }, - "output_image": { - "type": "string", - "description": "base64 content of input file with highlighted disease names", - "title": "base64 highlighted" - } - } - }, - "description": "result" - } - } - } - }, - "400": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "request status either success or failure" - }, - "desc": { - "type": "string", - "description": "desc", - "title": "error description" - } - } - } - }, - "403": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "description": "message", - "title": "api key missing" - } - } - } - }, - "500": { - "description": "fail", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "string", - "description": "status", - "title": "request status either success or failure" - }, - "message": { - "type": "string", - "description": "message", - "title": "internal error" - } - } - } - } - }, - "summary": "Highlight disease and medical terms - From Discharge Summary Document", - "description": "Automatically highlights the disease and other medical terms in a discharge summary document once uploaded", - "operationId": "HighlightDisease_MedicalTerms", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "query": { - "type": "array", - "items": { - "type": "object", - "properties": { - "file_name": { - "type": "string", - "description": "file_name", - "title": "name of file (discharge summary)" - }, - "file": { - "type": "string", - "description": "file", - "title": "base64 content of file (discharge summary)", - "format": "byte" - } - }, - "required": [ - "file", - "file_name" - ] - }, - "description": "query" - } - }, - "required": [ - "query" - ] - } - } - ] - } - } - }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://in-d.ai/" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://in-d.ai/privacy-policy/" - }, - { - "propertyName": "Categories", - "propertyValue": "AI;IT Operations" - } - ], - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": { - "API Key": { - "type": "apiKey", - "in": "header", - "name": "x-api-key" - } - }, - "security": [ - { - "API Key": [] - } - ], - "tags": [] -} \ No newline at end of file From 877d2a4b774c7296966886528578daf4cafc3366 Mon Sep 17 00:00:00 2001 From: nriyanicrest <77059817+nriyanicrest@users.noreply.github.com> Date: Fri, 1 Oct 2021 07:55:54 +0530 Subject: [PATCH 031/219] Enhanced the connector with new endpoints and relabeling the connector name (#1110) Co-authored-by: himanshumotiramani_crest --- .../apiDefinition.swagger.json | 8126 ++++++++++------- .../RiskIQPassiveTotal/readme.md | 23 +- 2 files changed, 4831 insertions(+), 3318 deletions(-) diff --git a/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json b/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json index 1642911053..01a6986425 100644 --- a/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json +++ b/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json @@ -1,14 +1,14 @@ { "swagger": "2.0", "info": { - "title": "RiskIQ PassiveTotal", + "title": "RiskIQ Illuminate", "contact": { - "name": "RiskIQ PassiveTotal", + "name": "RiskIQ Illuminate", "url": "https://www.riskiq.com/contact-us/", "email": "support@riskiq.com" }, - "description": "RiskIQ PassiveTotal aggregates data from the whole internet, absorbing intelligence to identify threats and attacker infrastructure, and leverages machine learning to scale threat hunting and response. With PassiveTotal, you get context on who is attacking you, their tools and systems, and indicators of compromise outside the firewall\u2014enterprise and third party.", - "version": "1.0" + "description": "RiskIQ Illuminate® reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place.", + "version": "1.1" }, "host": "api.riskiq.net", "basePath": "/pt/v2", @@ -3572,2946 +3572,3878 @@ }, "x-ms-visibility": "important" } - } - }, - "definitions": { - "AccountResponse": { - "type": "object", - "properties": { - "features": { - "type": "object", - "properties": { - "two_factor_enabled": { - "type": "boolean", - "title": "Two Factor Enabled", - "x-ms-visibility": "important" - }, - "calendly_integration": { - "type": "boolean", - "title": "Calendly Integration", - "x-ms-visibility": "important" - }, - "analyst_insights": { - "description": "Analyst insights feature flag", - "type": "boolean", - "title": "Analyst Insights", - "x-ms-visibility": "important" - }, - "analyst_projects": { - "type": "boolean", - "title": "Analyst Projects", - "x-ms-visibility": "important" - }, - "async_heatmap": { - "type": "boolean", - "title": "Async Heatmap", - "x-ms-visibility": "important" - }, - "tab_update": { - "type": "boolean", - "title": "Tab Update", - "x-ms-visibility": "important" - }, - "msft_integration": { - "type": "boolean", - "title": "MSFT Integration", - "x-ms-visibility": "important" - }, - "exposed_services": { - "type": "boolean", - "title": "Exposed Services", - "x-ms-visibility": "important" - }, - "community_relaunch": { - "type": "boolean", - "title": "Community Relaunch", - "x-ms-visibility": "important" - }, - "data_table_improvement": { - "type": "boolean", - "title": "Data Table Improvement", - "x-ms-visibility": "important" - }, - "project_selector_v2": { - "type": "boolean", - "title": "Project Selector V2", - "x-ms-visibility": "important" - }, - "whois_history": { - "description": "WHOIS history feature flag", - "type": "boolean", - "title": "WHOIS History", - "x-ms-visibility": "important" - }, - "server_side_facets": { - "type": "boolean", - "title": "Server Side Facets", - "x-ms-visibility": "important" - }, - "projects_tabs": { - "type": "boolean", - "title": "Projects Tabs", - "x-ms-visibility": "important" - }, - "projects_share": { - "type": "boolean", - "title": "Projects Share", - "x-ms-visibility": "important" - }, - "illuminate": { - "type": "boolean", - "title": "illuminate", - "x-ms-visibility": "important" - }, - "triage": { - "type": "boolean", - "title": "Triage", - "x-ms-visibility": "important" - }, - "data_table_paginated": { - "type": "boolean", - "title": "Data Table Paginated", - "x-ms-visibility": "important" + }, + "/intel-profiles/{id}": { + "get": { + "tags": [ + "Intel Profiles" + ], + "description": "Retrieves the details for the given profile.", + "summary": "Get profile details", + "operationId": "GetProfile", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Profile Id", + "required": true, + "type": "string", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/IntelProfilesResponse" } - }, - "x-ms-visibility": "important" - }, - "username": { - "type": "string", - "title": "Username", - "x-ms-visibility": "important" - }, - "guest": { - "type": "boolean", - "title": "Guest", - "x-ms-visibility": "important" - }, - "firstName": { - "type": "string", - "title": "First Name", - "x-ms-visibility": "important" - }, - "lastName": { - "type": "string", - "title": "Last Name", - "x-ms-visibility": "important" - }, - "fullName": { - "type": "string", - "title": "Full Name", - "x-ms-visibility": "important" - }, - "organization": { - "type": "string", - "title": "Organization", - "x-ms-visibility": "important" - }, - "firstActive": { - "type": "string", - "title": "First Active", - "x-ms-visibility": "important" - }, - "lastActive": { - "type": "string", - "title": "Last Active", - "x-ms-visibility": "important" - }, - "verified": { - "type": "string", - "title": "Verified", - "x-ms-visibility": "important" - }, - "suppliedOrganization": { - "type": "string", - "title": "Supplied Organization", - "x-ms-visibility": "important" - }, - "jobRole": { - "$ref": "#/definitions/anyVariableValue" + } }, - "roles": { - "type": "array", - "items": { + "x-ms-visibility": "important" + } + }, + "/intel-profiles/{id}/indicators": { + "get": { + "tags": [ + "Intel Profiles" + ], + "description": "Retrieves the indicators for the given profile id.", + "summary": "Get all indicators for given profile", + "operationId": "GetIndicatorsOfProfile", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Profile Id", + "required": true, "type": "string", - "title": "Role", - "x-ms-visibility": "important" + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "title": "Roles", - "x-ms-visibility": "important" + { + "name": "query", + "in": "query", + "description": "Indicator value to search for in profiles", + "required": false, + "type": "string", + "x-ms-summary": "Query", + "x-ms-visibility": "advanced" + }, + { + "name": "types", + "in": "query", + "description": "Indicator types to filter by. E.g. domain", + "required": false, + "type": "string", + "x-ms-summary": "Types", + "x-ms-visibility": "advanced" + }, + { + "name": "categories", + "in": "query", + "description": "Indicator categories to filter by. E.g. host", + "required": false, + "type": "string", + "x-ms-summary": "Categories", + "x-ms-visibility": "advanced" + }, + { + "name": "sources", + "in": "query", + "description": "Indicator sources to filter by. Allowed values: osint, riskiq", + "required": false, + "type": "string", + "x-ms-summary": "Sources", + "x-ms-visibility": "advanced" + }, + { + "name": "page", + "in": "query", + "description": "Page number for paging through results, defaults to 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "Maximum number of results to return per page, defaults to 25", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/IntelProfilesIndicatorListResponse" + } + } }, - "enterpriseUser": { - "type": "string", - "title": "Enterprise User", - "x-ms-visibility": "important" - }, - "approvedSources": { - "type": "string", - "title": "Approved Sources", - "x-ms-visibility": "important" - }, - "country": { - "type": "string", - "title": "Country", - "x-ms-visibility": "important" - }, - "phoneNumber": { - "type": "string", - "title": "Phone Number", - "x-ms-visibility": "important" - }, - "stateOrRegion": { - "type": "string", - "title": "State Or Region", - "x-ms-visibility": "important" - }, - "searchWebQuotaExceeded": { - "type": "boolean", - "title": "Search Web Quota Exceeded", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/intel-profiles": { + "get": { + "tags": [ + "Intel Profiles" + ], + "description": "Retrieves all profiles.", + "summary": "Get all profiles", + "operationId": "GetAllProfiles", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "query", + "in": "query", + "description": "Query to search", + "required": false, + "type": "string", + "x-ms-summary": "Query", + "x-ms-visibility": "advanced" + }, + { + "name": "type", + "in": "query", + "description": "Profile type to search by. E.g. actor", + "required": false, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/IntelProfilesListResponse" + } + } }, - "searchApiQuotaExceeded": { - "type": "boolean", - "title": "Search API Quota Exceeded", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/intel-profiles/indicator": { + "get": { + "tags": [ + "Intel Profiles" + ], + "description": "Retrieves all profiles containing the given indicator.", + "summary": "Get all profiles by indicator", + "operationId": "GetAllProfilesByIndicators", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "query", + "in": "query", + "description": "Indicator value to search for in profiles", + "required": true, + "type": "string", + "x-ms-summary": "Query", + "x-ms-visibility": "important" + }, + { + "name": "types", + "in": "query", + "description": "Indicator types to filter by. E.g. domain", + "required": false, + "type": "string", + "x-ms-summary": "Types", + "x-ms-visibility": "advanced" + }, + { + "name": "categories", + "in": "query", + "description": "Indicator categories to filter by. E.g. host", + "required": false, + "type": "string", + "x-ms-summary": "Categories", + "x-ms-visibility": "advanced" + }, + { + "name": "sources", + "in": "query", + "description": "Indicator sources to filter by. Allowed values: osint, riskiq", + "required": false, + "type": "string", + "x-ms-summary": "Sources", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/IntelProfilesListResponse" + } + } }, - "projectPublicQuotaExceeded": { - "type": "boolean", - "title": "Project Public Quota Exceeded", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface information of the given account.", + "summary": "Get attack surface", + "operationId": "GetAttackSurface", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/VendorInfo" + } + } }, - "projectPrivateQuotaExceeded": { - "type": "boolean", - "title": "Project Private Quota Exceeded", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/priority/{level}": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Priority Information given the level (low, medium, high) associated to the given account.", + "summary": "Get attack surface priority detail by level", + "operationId": "GetAttackSurfaceByLevel", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "level", + "in": "path", + "description": "Priority level (high/medium/low)", + "required": true, + "type": "string", + "default": "high", + "enum": [ + "high", + "medium", + "low" + ], + "x-ms-summary": "Level", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfacePriorityResponse" + } + } }, - "accountStatus": { - "type": "string", - "title": "Account Status", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/insight/{insightId}": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Insight Information given the insight ID for the given account", + "summary": "Get attack surface insight by insight Id", + "operationId": "GetAttackSurfaceByInsight", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "insightId", + "in": "path", + "description": "Insight Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Insight Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "groupBy", + "in": "query", + "description": "The group by value (bar) to group by, based on the chart's groupBy field", + "required": false, + "type": "string", + "default": "RISK_CATEGORY", + "x-ms-summary": "Group By", + "x-ms-visibility": "advanced" + }, + { + "name": "segmentBy", + "in": "query", + "description": "The group by value (bar segment) to segment by, based on the chart's segmentBy field", + "required": false, + "type": "string", + "x-ms-summary": "Segment By", + "x-ms-visibility": "advanced" + }, + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceInsightResponse" + } + } }, - "monitorFrequency": { - "type": "string", - "title": "Monitor Frequency", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/third-party/{id}": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds vendors associated with the given vendor id for given account account.", + "summary": "Get attack surface third party by vendor Id", + "operationId": "GetVendorById", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/VendorInfo" + } + } }, - "emailDigestFrequency": { - "type": "string", - "title": "Email Digest Frequency", - "x-ms-visibility": "important" - }, - "workspaceId": { - "type": "integer", - "format": "int32", - "title": "Workspace ID", - "x-ms-visibility": "important" - }, - "permissions": { - "type": "array", - "items": {}, - "title": "Permissions", - "x-ms-visibility": "important" - }, - "disableHistory": { - "type": "boolean", - "title": "Disable History", - "x-ms-visibility": "important" - }, - "ssoIntegrationId": { - "$ref": "#/definitions/anyVariableValue" - }, - "ssoAuthPartnerId": { - "$ref": "#/definitions/anyVariableValue" - }, - "ssoSuccess": { - "type": "boolean", - "title": "SSO Success", - "x-ms-visibility": "important" - }, - "daysLeftOnTrial": { - "$ref": "#/definitions/anyVariableValue" - }, - "darkMode": { - "type": "boolean", - "title": "Dark Mode", - "description": "Dark mode feature flag", - "x-ms-visibility": "important" - }, - "homeOptIn": { - "type": "boolean", - "title": "Home Opt In", - "description": "New home screen feature flag", - "x-ms-visibility": "important" - }, - "hideHomeOptIn": { - "type": "boolean", - "title": "Hide Home Opt In", - "description": "Hide new home screen feature flag", - "x-ms-visibility": "important" - }, - "preferences": { - "type": "object", - "properties": { - "darkMode": { - "description": "Dark mode preference flag", - "type": "boolean", - "title": "Dark Mode", - "x-ms-visibility": "important" - }, - "articlePageSize": { - "type": "integer", - "format": "int32", - "title": "Article Page Size", - "x-ms-visibility": "important" - }, - "ptClassicMode": { - "type": "boolean", - "title": "PT Classic Mode", - "x-ms-visibility": "important" - }, - "neverLoggedIn": { - "type": "boolean", - "title": "Never Logged In", - "x-ms-visibility": "important" - }, - "homeOptIn": { - "description": "New home screen preference flag", - "type": "boolean", - "title": "Home Opt In", - "x-ms-visibility": "important" - }, - "hideHomeOptIn": { - "description": "Hide new home screen preference flag", - "type": "boolean", - "title": "Hide Home Opt In", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important" + } + }, + "/attack-surface/third-party": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds all vendors associated with the given account.", + "summary": "Get all third party vendors", + "operationId": "GetVendors", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" } - }, - "datasets": { - "type": "object", - "properties": { - "trackers": { - "type": "boolean", - "title": "Trackers", - "x-ms-visibility": "important" - }, - "components": { - "type": "boolean", - "title": "Components", - "x-ms-visibility": "important" - }, - "hostPairs": { - "type": "boolean", - "title": "Host Pairs", - "x-ms-visibility": "important" - }, - "malware": { - "$ref": "#/definitions/anyVariableValue" - }, - "whoisHistory": { - "description": "WHOIS history dataset flag", - "type": "boolean", - "title": "WHOIS History", - "x-ms-visibility": "important" - }, - "whois": { - "type": "boolean", - "title": "WHOIS", - "x-ms-visibility": "important" - }, - "sslCerts": { - "$ref": "#/definitions/anyVariableValue" - }, - "attackSurfaceIntel": { - "type": "boolean", - "title": "Attack Surface Intel", - "x-ms-visibility": "important" - }, - "services": { - "type": "boolean", - "title": "Services", - "x-ms-visibility": "important" - }, - "pdns": { - "$ref": "#/definitions/anyVariableValue" - }, - "cookies": { - "type": "boolean", - "title": "Cookies", - "x-ms-visibility": "important" - }, - "reputation": { - "type": "boolean", - "title": "Reputation", - "x-ms-visibility": "important" - }, - "analystInsights": { - "description": "Analyst insights dataset flag", - "type": "boolean", - "title": "Analyst Insights", - "x-ms-visibility": "important" - }, - "deepDarkWeb": { - "type": "boolean", - "title": "Deep Dark Web", - "x-ms-visibility": "important" - }, - "brandIntel": { - "type": "boolean", - "title": "Brand Intel", - "x-ms-visibility": "important" - }, - "riskiqArticleIndicators": { - "type": "boolean", - "title": "RiskIQ Article Indicators", - "x-ms-visibility": "important" - }, - "adversaryIntel": { - "type": "boolean", - "title": "Adversary Intel", - "x-ms-visibility": "important" + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceResponse" } } }, - "event_code": { - "$ref": "#/definitions/anyVariableValue" - }, - "user_id": { - "$ref": "#/definitions/anyVariableValue" - }, - "user_hash": { - "$ref": "#/definitions/anyVariableValue" - } + "x-ms-visibility": "important" } }, - "HistoryResponse": { - "type": "object", - "properties": { - "history": { - "type": "array", - "items": { - "$ref": "#/definitions/History" + "/attack-surface/third-party/{id}/priority/{level}": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds vendors associated with the given vendor id and priority level for given account account.", + "summary": "Get attack surface third party priority detail by vendor Id and level", + "operationId": "GetVendorsByLevel", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "x-ms-visibility": "important" + { + "name": "level", + "in": "path", + "description": "Priority level (high/medium/low)", + "required": true, + "type": "string", + "default": "high", + "enum": [ + "high", + "medium", + "low" + ], + "x-ms-summary": "Level", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfacePriorityResponse" + } + } }, - "teamstream": { - "$ref": "#/definitions/anyVariableValue" - } + "x-ms-visibility": "important" } }, - "History": { - "type": "object", - "properties": { - "focus": { - "type": "string", - "title": "Focus", - "x-ms-visibility": "important" - }, - "context": { - "type": "integer", - "format": "int32", - "title": "Context", - "x-ms-visibility": "important" - }, - "username": { - "type": "string", - "title": "Username", - "x-ms-visibility": "important" - }, - "dt": { - "type": "string", - "title": "Date", - "x-ms-visibility": "important" - }, - "guid": { - "type": "string", - "title": "GUID", - "x-ms-visibility": "important" - }, - "source": { - "type": "string", - "title": "Source", - "x-ms-visibility": "important" + "/attack-surface/third-party/{id}/insight/{insightId}": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds vendors associated with the given vendor id and insight Id", + "summary": "Get attack surface third party insight by vendor Id and insight Id", + "operationId": "GetVendorsByInsightId", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "insightId", + "in": "path", + "description": "Insight Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Insight Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "groupBy", + "in": "query", + "description": "The group by value (bar) to group by, based on the chart's groupBy field", + "required": false, + "type": "string", + "default": "RISK_CATEGORY", + "x-ms-summary": "Group By", + "x-ms-visibility": "advanced" + }, + { + "name": "segmentBy", + "in": "query", + "description": "The group by value (bar segment) to segment by, based on the chart's segmentBy field", + "required": false, + "type": "string", + "x-ms-summary": "Segment By", + "x-ms-visibility": "advanced" + }, + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceInsightResponse" + } + } }, - "type": { - "type": "string", - "title": "Type", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important" } }, - "MonitorsResponse": { - "type": "object", - "properties": { - "monitors": { - "type": "array", - "items": { - "$ref": "#/definitions/Monitor" + "/attack-surface/vuln-intel/components": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Vulnerable Components for the primary vendor.", + "summary": "Get attack surface vulnerable components", + "operationId": "GetVulnComponents", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" }, - "x-ms-visibility": "important" - } - } - }, - "Monitor": { - "type": "object", - "properties": { - "focus": { - "type": "string", - "title": "Focus", - "x-ms-visibility": "important" + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/VulnerableComponentResponse" + } + } }, - "tags": { - "type": "array", - "items": { - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, - "title": "Tags", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important" } }, - "OrganizationResponse": { - "type": "object", - "properties": { - "registered": { - "type": "string", - "title": "Registered", - "x-ms-visibility": "important" - }, - "name": { - "type": "string", - "title": "Name", - "x-ms-visibility": "important" - }, - "id": { - "type": "string", - "title": "ID", - "x-ms-visibility": "important" - }, - "watchQuota": { - "$ref": "#/definitions/anyVariableValue" - }, - "licenses": { - "$ref": "#/definitions/OrganizationLicenses" - }, - "seats": { - "type": "integer", - "format": "int32", - "title": "Seats", - "x-ms-visibility": "important" - }, - "features": { - "type": "object", - "properties": { - "illuminate": { - "type": "boolean", - "title": "illuminate", - "description": "illuminate feature flag", - "x-ms-visibility": "important" - }, - "triage": { - "type": "boolean", - "title": "Triage", - "x-ms-visibility": "important" + "/attack-surface/vuln-intel/third-party/{id}/components": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Third-Party Vulnerable Components given the vendor ID.", + "summary": "Get attack surface third party vulnerable components", + "operationId": "GetThirdPartyVulnComponents", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/VulnerableComponentResponse" } } }, - "status": { - "type": "string", - "title": "Status", - "x-ms-visibility": "important" - }, - "licensedMembers": { - "$ref": "#/definitions/OrganizationLicensedMembers" - }, - "activeMembers": { - "type": "array", - "items": { - "type": "string", - "title": "Active Member", - "x-ms-visibility": "important" - }, - "title": "Active Members", - "x-ms-visibility": "important" - }, - "searchQuota": { - "$ref": "#/definitions/anyVariableValue" - }, - "showTeamSearchHistory": { - "type": "boolean", - "title": "Show Team Search History", - "x-ms-visibility": "important" - }, - "disableIndividualSearchHistory": { - "$ref": "#/definitions/anyVariableValue" - }, - "disableTeamSearchHistory": { - "$ref": "#/definitions/anyVariableValue" - }, - "lastActive": { - "type": "string", - "title": "Last Active", - "x-ms-visibility": "important" - }, - "defaultDomains": { - "type": "array", - "items": { - "type": "string", - "title": "Default Domain", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/vuln-intel/cves": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Vulnerability Information for the primary vendor for the given account.", + "summary": "Get attack surface vulnerable information", + "operationId": "GetVulnInfo", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" }, - "title": "Default Domains", - "x-ms-visibility": "important" + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceCveResponse" + } + } }, - "acceptableDomains": { - "type": "array", - "items": { - "type": "string", - "title": "Acceptable Domain", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/vuln-intel/third-party/{id}/cves": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Third-Party Vulnerability Information given the vendor ID.", + "summary": "Get attack surface third party vulnerabilities", + "operationId": "GetThirdPartyVulnInfo", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "title": "Acceptable Domains", - "x-ms-visibility": "important" - }, - "active": { - "type": "boolean", - "title": "Active", - "x-ms-visibility": "important" - }, - "inactiveMembers": { - "type": "array", - "items": {}, - "title": "Inactive Members", - "x-ms-visibility": "important" - }, - "admins": { - "type": "array", - "items": { - "type": "string", - "title": "Admin", - "x-ms-visibility": "important" + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" }, - "title": "Admins", - "x-ms-visibility": "important" - }, - "disabledMembers": { - "$ref": "#/definitions/anyVariableValue" - }, - "usersNotSignedUpYet": { - "$ref": "#/definitions/anyVariableValue" - }, - "hasFalconCreds": { - "type": "boolean", - "title": "Has Falcon Creds", - "x-ms-visibility": "important" - }, - "sources": { - "$ref": "#/definitions/anyVariableValue" - }, - "enhancedAttackSurfaceData": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "title": "Enabled", - "x-ms-visibility": "important" - }, - "primary": { - "type": "array", - "items": {}, - "title": "Primary", - "x-ms-visibility": "important" - }, - "maxVendors": { - "type": "integer", - "format": "int32", - "title": "Max Vendors", - "x-ms-visibility": "important" - }, - "vendors": { - "type": "array", - "items": {}, - "title": "Vendors", - "x-ms-visibility": "important" + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceCveResponse" } } - } - } - }, - "OrganizationLicenses": { - "type": "object", - "properties": { - "enterprise": { - "description": "Enterprise organization licenses", - "type": "integer", - "format": "int32", - "title": "Enterprise", - "x-ms-visibility": "important" - }, - "cyberThreatIntel": { - "description": "Cyber threat intel licenses", - "type": "integer", - "format": "int32", - "title": "Cyber Threat Intel", - "x-ms-visibility": "important" }, - "secOpsIntel": { - "description": "SecOps licenses", - "type": "integer", - "format": "int32", - "title": "SecOps Intel", - "x-ms-visibility": "important" - }, - "illuminate": { - "description": "illuminate licenses", - "type": "integer", - "format": "int32", - "title": "illuminate", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important" } }, - "OrganizationLicensedMembers": { - "type": "object", - "properties": { - "enterprise": { - "description": "Enterprise organization licensed members", - "type": "array", - "items": { - "description": "Enterprise values of organization licensed members", + "/attack-surface/vuln-intel/cves/{cveId}/observations": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Vulnerability Observations for the primary vendor given a CVE.", + "summary": "Get attack surface vulnerability observations", + "operationId": "GetVulnObservation", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "cveId", + "in": "path", + "description": "Cve Id", + "required": true, "type": "string", - "title": "Enterprise Values", - "x-ms-visibility": "important" + "x-ms-summary": "Cve Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "title": "Enterprise", - "x-ms-visibility": "important" - }, - "illuminate": { - "description": "illuminate licensed members", - "type": "array", - "items": { - "description": "illuminate values of licensed members", - "type": "string", - "title": "illuminate Values", - "x-ms-visibility": "important" + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" }, - "title": "illuminate", - "x-ms-visibility": "important" + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceCveObservationsResponse" + } + } }, - "cyberThreatIntel": { - "description": "Cyber threat intel licensed members", - "type": "array", - "items": { - "description": "Cyber threat intel values of licensed members", - "type": "string", - "title": "Cyber Threat Intel Values", - "x-ms-visibility": "important" + "x-ms-visibility": "important" + } + }, + "/attack-surface/vuln-intel/third-party/{id}/cves/{cveId}/observations": { + "get": { + "tags": [ + "Attack Surface" + ], + "description": "Finds the Attack Surface Third-Party Vulnerability Observations given the vendor ID and CVE.", + "summary": "Get attack surface third party vulnerability observations", + "operationId": "GetThirdPartyVulnObservation", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Vendor Id", + "required": true, + "type": "integer", + "format": "int32", + "x-ms-summary": "Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "title": "Cyber Threat Intel", - "x-ms-visibility": "important" - }, - "secOpsIntel": { - "description": "SecOps licensed members", - "type": "array", - "items": { - "description": "SecOps intel values of licensed members", + { + "name": "cveId", + "in": "path", + "description": "Cve Id", + "required": true, "type": "string", - "title": "SecOps Intel Values", - "x-ms-visibility": "important" + "x-ms-summary": "Cve Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" }, - "title": "SecOps Intel", - "x-ms-visibility": "important" - } + { + "name": "page", + "in": "query", + "description": "The index of the page to retrieve. The index is zero based so the first page is page 0.", + "required": false, + "type": "integer", + "format": "int32", + "default": 0, + "x-ms-summary": "Page", + "x-ms-visibility": "advanced" + }, + { + "name": "size", + "in": "query", + "description": "The number of matching records to return per page", + "required": false, + "type": "integer", + "format": "int32", + "default": 25, + "x-ms-summary": "Size", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Valid response returned", + "schema": { + "$ref": "#/definitions/AttackSurfaceCveObservationsResponse" + } + } + }, + "x-ms-visibility": "important" } - }, - "Organization": { + } + }, + "definitions": { + "AccountResponse": { "type": "object", "properties": { - "owner": { - "description": "Organization owners", - "type": "string", - "title": "Owner", - "x-ms-visibility": "important" - }, - "organization": { - "description": "Name of organization", - "type": "string", - "title": "Name", - "x-ms-visibility": "important" - }, - "guid": { - "description": "GUID of organization", - "type": "string", - "title": "GUID", - "x-ms-visibility": "important" - }, - "counts": { + "features": { "type": "object", - "description": "Organization counts", "properties": { - "keyword_monitors": { - "description": "Keyword monitors used(Organization)", - "type": "integer", - "format": "int32", - "title": "Keyword Monitors", + "two_factor_enabled": { + "type": "boolean", + "title": "Two Factor Enabled", "x-ms-visibility": "important" }, - "search_api": { - "description": "API searches used(Organization)", - "type": "integer", - "format": "int32", - "title": "Search API", + "calendly_integration": { + "type": "boolean", + "title": "Calendly Integration", "x-ms-visibility": "important" }, - "basic_monitors": { - "description": "Basic monitors used(Organization)", - "type": "integer", - "format": "int32", - "title": "Basic Monitors", + "analyst_insights": { + "description": "Analyst insights feature flag", + "type": "boolean", + "title": "Analyst Insights", "x-ms-visibility": "important" }, - "search_web": { - "description": "Web searches used(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "analyst_projects": { + "type": "boolean", + "title": "Analyst Projects", "x-ms-visibility": "important" }, - "projects_private": { - "description": "Private projects used(Organization)", - "type": "integer", - "format": "int32", - "title": "Projects Private", + "async_heatmap": { + "type": "boolean", + "title": "Async Heatmap", "x-ms-visibility": "important" }, - "projects_public": { - "description": "Public projects used(Organization)", - "type": "integer", - "format": "int32", - "title": "Projects Public", - "x-ms-visibility": "important" - } - } - }, - "freebies": { - "type": "object", - "description": "Free organizations", - "properties": { - "search_api": { - "description": "API searches used free accounts(Organization)", - "type": "integer", - "format": "int32", - "title": "Search API", + "tab_update": { + "type": "boolean", + "title": "Tab Update", "x-ms-visibility": "important" }, - "search_web": { - "description": "Web searches used by free accounts(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - } - } - }, - "profile": { - "type": "object", - "description": "Organization profile", - "properties": { - "analysis": { - "description": "Analysis profile(Organization)", - "type": "string", - "title": "Analysis", + "msft_integration": { + "type": "boolean", + "title": "MSFT Integration", "x-ms-visibility": "important" }, - "workflow": { - "description": "Workflow profile(Organization)", - "type": "string", - "title": "Workflow", - "x-ms-visibility": "important" - } - } - }, - "limits": { - "type": "object", - "description": "Limits of organization", - "properties": { - "search_api": { - "description": "API search limits(Organization)", - "type": "integer", - "format": "int32", - "title": "Search API", + "exposed_services": { + "type": "boolean", + "title": "Exposed Services", "x-ms-visibility": "important" }, - "basic_monitors": { - "description": "Basic monitor limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Basic Monitors", + "community_relaunch": { + "type": "boolean", + "title": "Community Relaunch", "x-ms-visibility": "important" }, - "monitor_results": { - "description": "Monitor results limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Monitor Results", + "data_table_improvement": { + "type": "boolean", + "title": "Data Table Improvement", "x-ms-visibility": "important" }, - "projects_private": { - "description": "Private project limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Projects Private", + "project_selector_v2": { + "type": "boolean", + "title": "Project Selector V2", "x-ms-visibility": "important" }, - "monitor_frequency": { - "description": "Monitor frequency(Organization)", - "type": "string", - "title": "Monitor Frequency", + "whois_history": { + "description": "WHOIS history feature flag", + "type": "boolean", + "title": "WHOIS History", "x-ms-visibility": "important" }, - "keyword_monitors": { - "description": "Keyword monitor limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Keyword Monitors", + "server_side_facets": { + "type": "boolean", + "title": "Server Side Facets", "x-ms-visibility": "important" }, - "search_web": { - "description": "Web search limits(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "projects_tabs": { + "type": "boolean", + "title": "Projects Tabs", "x-ms-visibility": "important" }, - "projects_public": { - "description": "Public project limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Projects Public", + "projects_share": { + "type": "boolean", + "title": "Projects Share", "x-ms-visibility": "important" }, - "create_crawls": { - "description": "Crawl limits(Organization)", - "type": "integer", - "format": "int32", - "title": "Create Crawls", + "illuminate": { + "type": "boolean", + "title": "illuminate", "x-ms-visibility": "important" }, - "crawl_submissions": { - "description": "Crawl submission limits(Organization)", - "type": "integer", - "format": "int32", - "title": "Crawl Submissions", + "triage": { + "type": "boolean", + "title": "Triage", + "x-ms-visibility": "important" + }, + "data_table_paginated": { + "type": "boolean", + "title": "Data Table Paginated", "x-ms-visibility": "important" } - } + }, + "x-ms-visibility": "important" }, - "quotaInterval": { - "description": "Quota interval of organization", + "username": { "type": "string", - "title": "Quota Interval", + "title": "Username", "x-ms-visibility": "important" }, - "licenseCounts": { - "$ref": "#/definitions/OrganizationLicenseCounts" + "guest": { + "type": "boolean", + "title": "Guest", + "x-ms-visibility": "important" }, - "licenseLimits": { - "$ref": "#/definitions/OrganizationLicenseLimits" + "firstName": { + "type": "string", + "title": "First Name", + "x-ms-visibility": "important" }, - "useMonthlyQuotaInactive": { - "description": "Monthly quota inactive of organization", + "lastName": { + "type": "string", + "title": "Last Name", + "x-ms-visibility": "important" + }, + "fullName": { + "type": "string", + "title": "Full Name", + "x-ms-visibility": "important" + }, + "organization": { + "type": "string", + "title": "Organization", + "x-ms-visibility": "important" + }, + "firstActive": { + "type": "string", + "title": "First Active", + "x-ms-visibility": "important" + }, + "lastActive": { + "type": "string", + "title": "Last Active", + "x-ms-visibility": "important" + }, + "verified": { + "type": "string", + "title": "Verified", + "x-ms-visibility": "important" + }, + "suppliedOrganization": { + "type": "string", + "title": "Supplied Organization", + "x-ms-visibility": "important" + }, + "jobRole": { + "$ref": "#/definitions/anyVariableValue" + }, + "roles": { + "type": "array", + "items": { + "type": "string", + "title": "Role", + "x-ms-visibility": "important" + }, + "title": "Roles", + "x-ms-visibility": "important" + }, + "enterpriseUser": { + "type": "string", + "title": "Enterprise User", + "x-ms-visibility": "important" + }, + "approvedSources": { + "type": "string", + "title": "Approved Sources", + "x-ms-visibility": "important" + }, + "country": { + "type": "string", + "title": "Country", + "x-ms-visibility": "important" + }, + "phoneNumber": { + "type": "string", + "title": "Phone Number", + "x-ms-visibility": "important" + }, + "stateOrRegion": { + "type": "string", + "title": "State Or Region", + "x-ms-visibility": "important" + }, + "searchWebQuotaExceeded": { "type": "boolean", - "title": "Use Monthly Quota Inactive", + "title": "Search Web Quota Exceeded", "x-ms-visibility": "important" }, - "next_reset": { - "description": "Next reset of organization", + "searchApiQuotaExceeded": { + "type": "boolean", + "title": "Search API Quota Exceeded", + "x-ms-visibility": "important" + }, + "projectPublicQuotaExceeded": { + "type": "boolean", + "title": "Project Public Quota Exceeded", + "x-ms-visibility": "important" + }, + "projectPrivateQuotaExceeded": { + "type": "boolean", + "title": "Project Private Quota Exceeded", + "x-ms-visibility": "important" + }, + "accountStatus": { "type": "string", - "title": "Next Reset", + "title": "Account Status", "x-ms-visibility": "important" }, - "last_reset": { - "description": "Last quota reset for organization", + "monitorFrequency": { "type": "string", - "title": "Last Reset", + "title": "Monitor Frequency", "x-ms-visibility": "important" }, - "username": { - "description": "Username of organization", + "emailDigestFrequency": { "type": "string", - "title": "Username", + "title": "Email Digest Frequency", "x-ms-visibility": "important" }, - "event_code": { + "workspaceId": { + "type": "integer", + "format": "int32", + "title": "Workspace ID", + "x-ms-visibility": "important" + }, + "permissions": { + "type": "array", + "items": {}, + "title": "Permissions", + "x-ms-visibility": "important" + }, + "disableHistory": { + "type": "boolean", + "title": "Disable History", + "x-ms-visibility": "important" + }, + "ssoIntegrationId": { "$ref": "#/definitions/anyVariableValue" }, - "event_code_expiration": { + "ssoAuthPartnerId": { "$ref": "#/definitions/anyVariableValue" - } - } - }, - "OrganizationLicenseCounts": { - "type": "object", - "description": "License counts of organization", - "properties": { - "enterprise": { + }, + "ssoSuccess": { + "type": "boolean", + "title": "SSO Success", + "x-ms-visibility": "important" + }, + "daysLeftOnTrial": { + "$ref": "#/definitions/anyVariableValue" + }, + "darkMode": { + "type": "boolean", + "title": "Dark Mode", + "description": "Dark mode feature flag", + "x-ms-visibility": "important" + }, + "homeOptIn": { + "type": "boolean", + "title": "Home Opt In", + "description": "New home screen feature flag", + "x-ms-visibility": "important" + }, + "hideHomeOptIn": { + "type": "boolean", + "title": "Hide Home Opt In", + "description": "Hide new home screen feature flag", + "x-ms-visibility": "important" + }, + "preferences": { "type": "object", - "description": "Enterprise organizatoin licences used", "properties": { - "searchApi": { - "description": "Enterprise api searches used", - "type": "integer", - "format": "int32", - "title": "Search API", + "darkMode": { + "description": "Dark mode preference flag", + "type": "boolean", + "title": "Dark Mode", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "Enterprise web searches used(Organization)", + "articlePageSize": { "type": "integer", "format": "int32", - "title": "Search Web", + "title": "Article Page Size", "x-ms-visibility": "important" - } - } - }, - "cyberThreatIntel": { - "type": "object", - "description": "Cyber threat intel licenses used", - "properties": { - "searchApi": { - "description": "Cyber threat intel api searches used", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "ptClassicMode": { + "type": "boolean", + "title": "PT Classic Mode", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "Cyber threat intel web searches used(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "neverLoggedIn": { + "type": "boolean", + "title": "Never Logged In", "x-ms-visibility": "important" - } - } - }, - "secOpsIntel": { - "type": "object", - "description": "SecOps licenses used", - "properties": { - "searchApi": { - "description": "SecOps api searches used", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "homeOptIn": { + "description": "New home screen preference flag", + "type": "boolean", + "title": "Home Opt In", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "SecOps web searches used(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "hideHomeOptIn": { + "description": "Hide new home screen preference flag", + "type": "boolean", + "title": "Hide Home Opt In", "x-ms-visibility": "important" } } }, - "illuminate": { + "datasets": { "type": "object", - "description": "illuminate licenses used", "properties": { - "searchApi": { - "description": "illuminate api searches used", - "type": "integer", - "format": "int32", - "title": "Search API", + "trackers": { + "type": "boolean", + "title": "Trackers", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "illuminate web searches used(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "components": { + "type": "boolean", + "title": "Components", "x-ms-visibility": "important" - } - } - } - } - }, - "OrganizationLicenseLimits": { - "type": "object", - "description": "License limits of organization", - "properties": { - "enterprise": { - "type": "object", - "description": "Enterprise organization license limits", - "properties": { - "searchApi": { - "description": "Enterprise api search limit", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "hostPairs": { + "type": "boolean", + "title": "Host Pairs", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "Enterprise web search limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "malware": { + "$ref": "#/definitions/anyVariableValue" + }, + "whoisHistory": { + "description": "WHOIS history dataset flag", + "type": "boolean", + "title": "WHOIS History", "x-ms-visibility": "important" - } - } - }, - "cyberThreatIntel": { - "type": "object", - "description": "Cyber threat intel license limit", - "properties": { - "searchApi": { - "description": "Cyber threat intel api search limit", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "whois": { + "type": "boolean", + "title": "WHOIS", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "Cyber threat intel web search limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "sslCerts": { + "$ref": "#/definitions/anyVariableValue" + }, + "attackSurfaceIntel": { + "type": "boolean", + "title": "Attack Surface Intel", "x-ms-visibility": "important" - } - } - }, - "secOpsIntel": { - "type": "object", - "description": "SecOps license limit", - "properties": { - "searchApi": { - "description": "SecOps api search limit", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "services": { + "type": "boolean", + "title": "Services", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "SecOps web search limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "pdns": { + "$ref": "#/definitions/anyVariableValue" + }, + "cookies": { + "type": "boolean", + "title": "Cookies", "x-ms-visibility": "important" - } - } - }, - "illuminate": { - "type": "object", - "description": "illuminate license limit", - "properties": { - "searchApi": { - "description": "illuminate api search limit", - "type": "integer", - "format": "int32", - "title": "Search API", + }, + "reputation": { + "type": "boolean", + "title": "Reputation", "x-ms-visibility": "important" }, - "searchWeb": { - "description": "illuminate web search limit(Organization)", - "type": "integer", - "format": "int32", - "title": "Search Web", + "analystInsights": { + "description": "Analyst insights dataset flag", + "type": "boolean", + "title": "Analyst Insights", + "x-ms-visibility": "important" + }, + "deepDarkWeb": { + "type": "boolean", + "title": "Deep Dark Web", + "x-ms-visibility": "important" + }, + "brandIntel": { + "type": "boolean", + "title": "Brand Intel", + "x-ms-visibility": "important" + }, + "riskiqArticleIndicators": { + "type": "boolean", + "title": "RiskIQ Article Indicators", + "x-ms-visibility": "important" + }, + "adversaryIntel": { + "type": "boolean", + "title": "Adversary Intel", "x-ms-visibility": "important" } } + }, + "event_code": { + "$ref": "#/definitions/anyVariableValue" + }, + "user_id": { + "$ref": "#/definitions/anyVariableValue" + }, + "user_hash": { + "$ref": "#/definitions/anyVariableValue" } } }, - "QuotaResponse": { + "HistoryResponse": { "type": "object", "properties": { - "user": { - "$ref": "#/definitions/User" + "history": { + "type": "array", + "items": { + "$ref": "#/definitions/History" + }, + "x-ms-visibility": "important" }, - "organization": { - "$ref": "#/definitions/Organization" + "teamstream": { + "$ref": "#/definitions/anyVariableValue" } } }, - "User": { + "History": { "type": "object", "properties": { - "owner": { - "description": "Organization users", + "focus": { "type": "string", - "title": "Owner", + "title": "Focus", "x-ms-visibility": "important" }, - "organization": { - "description": "User organization", + "context": { + "type": "integer", + "format": "int32", + "title": "Context", + "x-ms-visibility": "important" + }, + "username": { "type": "string", - "title": "Organization", + "title": "Username", + "x-ms-visibility": "important" + }, + "dt": { + "type": "string", + "title": "Date", "x-ms-visibility": "important" }, "guid": { - "description": "GUID of user", "type": "string", "title": "GUID", "x-ms-visibility": "important" }, - "counts": { - "type": "object", - "description": "User counts", - "properties": { - "keyword_monitors": { - "description": "Keyword monitors used(User)", - "type": "integer", - "format": "int32", - "title": "Keyword Monitors", - "x-ms-visibility": "important" - }, - "search_api": { - "description": "Search api of counts(User)", - "type": "integer", - "format": "int32", - "title": "Search API", - "x-ms-visibility": "important" - }, - "basic_monitors": { - "description": "Basic monitors used(User)", - "type": "integer", - "format": "int32", - "title": "Basic Monitors", - "x-ms-visibility": "important" - }, - "search_web": { - "description": "Search web of counts(User)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - }, - "projects_private": { - "description": "Private projects used(User)", - "type": "integer", - "format": "int32", - "title": "Projects Private", - "x-ms-visibility": "important" - }, - "projects_public": { - "description": "Public projects used(User)", - "type": "integer", - "format": "int32", - "title": "Projects Public", - "x-ms-visibility": "important" - } - } - }, - "freebies": { - "type": "object", - "description": "Free users", - "properties": { - "search_api": { - "description": "Search api of freebies(User)", - "type": "integer", - "format": "int32", - "title": "Search API", - "x-ms-visibility": "important" - }, - "search_web": { - "description": "Search web of freebies(User)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - } - } - }, - "profile": { - "type": "object", - "description": "User profile", - "properties": { - "analysis": { - "description": "Analysis profile(User)", - "type": "string", - "title": "Analysis", - "x-ms-visibility": "important" - }, - "workflow": { - "description": "Workflow profile(User)", - "type": "string", - "title": "Workflow", - "x-ms-visibility": "important" - } - } - }, - "limits": { - "type": "object", - "description": "Limits of user", - "properties": { - "search_api": { - "description": "Search api of limits(User)", - "type": "integer", - "format": "int32", - "title": "Search API", - "x-ms-visibility": "important" - }, - "basic_monitors": { - "description": "Basic monitor limit(User)", - "type": "integer", - "format": "int32", - "title": "Basic Monitors", - "x-ms-visibility": "important" - }, - "monitor_results": { - "description": "Monitor results limit(User)", - "type": "integer", - "format": "int32", - "title": "Monitor Results", - "x-ms-visibility": "important" - }, - "projects_private": { - "description": "Private project limit(User)", - "type": "integer", - "format": "int32", - "title": "Projects Private", - "x-ms-visibility": "important" - }, - "monitor_frequency": { - "description": "Monitor frequency(User)", - "type": "string", - "title": "Monitor Frequency", - "x-ms-visibility": "important" - }, - "keyword_monitors": { - "description": "Keyword monitor limit(User)", - "type": "integer", - "format": "int32", - "title": "Keyword Monitors", - "x-ms-visibility": "important" - }, - "search_web": { - "description": "Search web of limits(User)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - }, - "projects_public": { - "description": "Public project limit(User)", - "type": "integer", - "format": "int32", - "title": "Projects Public", - "x-ms-visibility": "important" - }, - "create_crawls": { - "description": "Crawl limits(User)", - "type": "integer", - "format": "int32", - "title": "Create Crawls", - "x-ms-visibility": "important" - }, - "crawl_submissions": { - "description": "Crawl submission limits(User)", - "type": "integer", - "format": "int32", - "title": "Crawl Submissions", - "x-ms-visibility": "important" - } - } - }, - "quotaInterval": { - "description": "Quota interval of user", - "type": "string", - "title": "Quota Interval", - "x-ms-visibility": "important" - }, - "useMonthlyQuotaInactive": { - "description": "Use monthly quota inactive of user", - "type": "boolean", - "title": "Use Monthly Quota Inactive", - "x-ms-visibility": "important" - }, - "licenseCounts": { - "type": "object", - "description": "License counts of user", - "properties": { - "searchApi": { - "description": "Search api of license counts(User)", - "type": "integer", - "format": "int32", - "title": "Search API", - "x-ms-visibility": "important" - }, - "searchWeb": { - "description": "Search web of license counts(User)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - } - } - }, - "licenseLimits": { - "type": "object", - "description": "License limits of user", - "properties": { - "searchApi": { - "description": "Search api of license limits(User)", - "type": "integer", - "format": "int32", - "title": "Search API", - "x-ms-visibility": "important" - }, - "searchWeb": { - "description": "Search web of license limits(User)", - "type": "integer", - "format": "int32", - "title": "Search Web", - "x-ms-visibility": "important" - } - } - }, - "next_reset": { - "description": "Next reset of user", - "type": "string", - "title": "Next Reset", - "x-ms-visibility": "important" - }, - "last_reset": { - "description": "Last quota reset for user", + "source": { "type": "string", - "title": "Last Reset", + "title": "Source", "x-ms-visibility": "important" }, - "username": { - "description": "Username of user", + "type": { "type": "string", - "title": "Username", + "title": "Type", "x-ms-visibility": "important" - }, - "event_code": { - "$ref": "#/definitions/anyVariableValue" - }, - "event_code_expiration": { - "$ref": "#/definitions/anyVariableValue" } } }, - "SourcesResponse": { + "MonitorsResponse": { "type": "object", "properties": { - "sources": { + "monitors": { "type": "array", "items": { - "$ref": "#/definitions/Source" + "$ref": "#/definitions/Monitor" }, "x-ms-visibility": "important" } } }, - "Source": { + "Monitor": { "type": "object", "properties": { - "controllable": { - "type": "boolean", - "title": "Controllable", + "focus": { + "type": "string", + "title": "Focus", "x-ms-visibility": "important" }, - "active": { - "type": "boolean", - "title": "Active", + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", "x-ms-visibility": "important" - }, - "configuration": { - "type": "object", - "properties": { - "settings": { - "type": "object", - "properties": {} - }, - "password": { - "description": "Source password", - "type": "string", - "title": "Password", - "x-ms-visibility": "important" - }, - "username": { - "description": "Source username", - "type": "string", - "title": "Username", - "x-ms-visibility": "important" - }, - "token": { - "description": "Source configuration token", - "type": "string", - "title": "Token", - "x-ms-visibility": "important" - } - } - }, - "type": { - "type": "array", - "items": { - "type": "string", - "title": "Type Values", - "x-ms-visibility": "important" - }, - "title": "Type", - "x-ms-visibility": "important" - }, - "access": { - "type": "array", - "items": { - "type": "string", - "title": "Access Values", - "x-ms-visibility": "important" - }, - "title": "Access", - "x-ms-visibility": "important" - }, - "description": { + } + } + }, + "OrganizationResponse": { + "type": "object", + "properties": { + "registered": { "type": "string", - "title": "Description", - "x-ms-visibility": "important" - }, - "authRequired": { - "type": "boolean", - "title": "Auth Required", + "title": "Registered", "x-ms-visibility": "important" }, - "website": { + "name": { "type": "string", - "title": "Website", + "title": "Name", "x-ms-visibility": "important" }, - "label": { + "id": { "type": "string", - "title": "Label", + "title": "ID", "x-ms-visibility": "important" }, - "auth": { - "type": "boolean", - "title": "Auth", + "watchQuota": { + "$ref": "#/definitions/anyVariableValue" + }, + "licenses": { + "$ref": "#/definitions/OrganizationLicenses" + }, + "seats": { + "type": "integer", + "format": "int32", + "title": "Seats", "x-ms-visibility": "important" }, - "authMethod": { + "features": { "type": "object", "properties": { - "apiKey": { - "type": "string", - "title": "API Key", - "x-ms-visibility": "important" - }, - "password": { - "description": "Password auth method", - "type": "string", - "title": "Password", - "x-ms-visibility": "important" - }, - "username": { - "description": "Username auth method", - "type": "string", - "title": "Username", - "x-ms-visibility": "important" - }, - "token": { - "description": "Token auth method", - "type": "string", - "title": "Token", - "x-ms-visibility": "important" - }, - "token_key": { - "type": "string", - "title": "Token Key", - "x-ms-visibility": "important" - }, - "token_secret": { - "type": "string", - "title": "Token Secret", + "illuminate": { + "type": "boolean", + "title": "illuminate", + "description": "illuminate feature flag", "x-ms-visibility": "important" }, - "private_key": { - "type": "string", - "title": "Private Key", + "triage": { + "type": "boolean", + "title": "Triage", "x-ms-visibility": "important" } } }, - "source": { + "status": { "type": "string", - "title": "Source", + "title": "Status", "x-ms-visibility": "important" }, - "org_configuration": { - "$ref": "#/definitions/anyVariableValue" - } - } - }, - "TeamstreamResponse": { - "type": "object", - "properties": { - "history": { - "$ref": "#/definitions/anyVariableValue" + "licensedMembers": { + "$ref": "#/definitions/OrganizationLicensedMembers" }, - "teamstream": { + "activeMembers": { "type": "array", "items": { - "$ref": "#/definitions/Teamstream" + "type": "string", + "title": "Active Member", + "x-ms-visibility": "important" }, - "x-ms-visibility": "important" - } - } - }, - "Teamstream": { - "type": "object", - "properties": { - "focus": { - "type": "string", - "title": "Focus", + "title": "Active Members", "x-ms-visibility": "important" }, - "source": { - "type": "string", - "title": "Source", - "x-ms-visibility": "important" + "searchQuota": { + "$ref": "#/definitions/anyVariableValue" }, - "username": { - "type": "string", - "title": "Username", + "showTeamSearchHistory": { + "type": "boolean", + "title": "Show Team Search History", "x-ms-visibility": "important" }, - "type": { - "type": "string", - "title": "Type", - "x-ms-visibility": "important" + "disableIndividualSearchHistory": { + "$ref": "#/definitions/anyVariableValue" }, - "context": { - "type": "integer", - "format": "int32", - "title": "Context", - "x-ms-visibility": "important" + "disableTeamSearchHistory": { + "$ref": "#/definitions/anyVariableValue" }, - "guid": { + "lastActive": { "type": "string", - "title": "GUID", + "title": "Last Active", "x-ms-visibility": "important" }, - "dt": { - "type": "string", - "title": "Date", - "x-ms-visibility": "important" - } - } - }, - "ClassificationsResponse": { - "type": "object", - "properties": { - "malicious": { + "defaultDomains": { "type": "array", "items": { "type": "string", - "title": "Malicious Values", + "title": "Default Domain", "x-ms-visibility": "important" }, - "title": "Malicious", + "title": "Default Domains", "x-ms-visibility": "important" }, - "non_malicious": { + "acceptableDomains": { "type": "array", "items": { "type": "string", - "title": "Non Malicious Values", + "title": "Acceptable Domain", "x-ms-visibility": "important" }, - "title": "Non Malicious", + "title": "Acceptable Domains", "x-ms-visibility": "important" }, - "suspicious": { - "type": "array", - "items": { - "type": "string", - "title": "Suspicious Values", - "x-ms-visibility": "important" - }, - "title": "Suspicious", + "active": { + "type": "boolean", + "title": "Active", "x-ms-visibility": "important" }, - "unknown": { + "inactiveMembers": { "type": "array", - "items": { - "type": "string", - "title": "Unknown Values", - "x-ms-visibility": "important" - }, - "title": "Unknown", + "items": {}, + "title": "Inactive Members", "x-ms-visibility": "important" - } - } - }, - "TagActionResponse": { - "type": "object", - "properties": { - "tags": { + }, + "admins": { "type": "array", "items": { "type": "string", - "title": "Tag", + "title": "Admin", "x-ms-visibility": "important" }, - "title": "Tags", + "title": "Admins", "x-ms-visibility": "important" - } - } - }, - "BulkClassificationResponse": { - "type": "object", - "properties": { - "success": { + }, + "disabledMembers": { + "$ref": "#/definitions/anyVariableValue" + }, + "usersNotSignedUpYet": { + "$ref": "#/definitions/anyVariableValue" + }, + "hasFalconCreds": { "type": "boolean", - "title": "Success", + "title": "Has Falcon Creds", "x-ms-visibility": "important" }, - "results": { + "sources": { + "$ref": "#/definitions/anyVariableValue" + }, + "enhancedAttackSurfaceData": { "type": "object", - "title": "Results", - "x-ms-visibility": "important" - } - } - }, - "ClassificationInfo": { - "type": "object", - "properties": { - "classification": { - "type": "string", - "title": "Classification", - "x-ms-visibility": "important" + "properties": { + "enabled": { + "type": "boolean", + "title": "Enabled", + "x-ms-visibility": "important" + }, + "primary": { + "type": "array", + "items": {}, + "title": "Primary", + "x-ms-visibility": "important" + }, + "maxVendors": { + "type": "integer", + "format": "int32", + "title": "Max Vendors", + "x-ms-visibility": "important" + }, + "vendors": { + "type": "array", + "items": {}, + "title": "Vendors", + "x-ms-visibility": "important" + } + } } } }, - "CompromisedStatusResponse": { + "OrganizationLicenses": { "type": "object", "properties": { - "everCompromised": { - "type": "boolean", - "title": "Ever Compromised", + "enterprise": { + "description": "Enterprise organization licenses", + "type": "integer", + "format": "int32", + "title": "Enterprise", "x-ms-visibility": "important" - } - } - }, - "DynamicDnsResponse": { - "type": "object", - "properties": { - "dynamicDns": { - "type": "boolean", - "title": "Dynamic DNS", + }, + "cyberThreatIntel": { + "description": "Cyber threat intel licenses", + "type": "integer", + "format": "int32", + "title": "Cyber Threat Intel", "x-ms-visibility": "important" - } - } - }, - "MonitorStatusResponse": { - "type": "object", - "properties": { - "monitor": { - "type": "boolean", - "title": "Monitor", + }, + "secOpsIntel": { + "description": "SecOps licenses", + "type": "integer", + "format": "int32", + "title": "SecOps Intel", "x-ms-visibility": "important" - } - } - }, - "SinkholeStatusResponse": { - "type": "object", - "properties": { - "sinkhole": { - "type": "boolean", - "title": "Sinkhole", + }, + "illuminate": { + "description": "illuminate licenses", + "type": "integer", + "format": "int32", + "title": "illuminate", "x-ms-visibility": "important" } } }, - "ActionSearchTagResponse": { + "OrganizationLicensedMembers": { "type": "object", "properties": { - "results": { - "$ref": "#/definitions/SearchTagElement" - } - } - }, - "SearchTagElement": { - "type": "array", - "items": { - "type": "object", - "properties": { - "focus": { + "enterprise": { + "description": "Enterprise organization licensed members", + "type": "array", + "items": { + "description": "Enterprise values of organization licensed members", "type": "string", - "title": "Focus", - "x-ms-visibility": "important" - }, - "user_tags": { - "type": "array", - "items": { - "type": "string", - "title": "User Tag", - "x-ms-visibility": "important" - }, - "title": "User Tags", - "x-ms-visibility": "important" - }, - "system_tags": { - "type": "array", - "items": { - "type": "string", - "title": "System Tag", - "x-ms-visibility": "important" - }, - "title": "System Tags", - "x-ms-visibility": "important" - }, - "global_tags": { - "type": "array", - "items": { - "type": "string", - "title": "Global Tag", - "x-ms-visibility": "important" - }, - "title": "Global Tags", + "title": "Enterprise Values", "x-ms-visibility": "important" }, - "tags": { - "type": "array", - "items": { - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, - "title": "Tags", + "title": "Enterprise", + "x-ms-visibility": "important" + }, + "illuminate": { + "description": "illuminate licensed members", + "type": "array", + "items": { + "description": "illuminate values of licensed members", + "type": "string", + "title": "illuminate Values", "x-ms-visibility": "important" }, - "tag_meta": { - "type": "object", - "title": "Tag Meta", + "title": "illuminate", + "x-ms-visibility": "important" + }, + "cyberThreatIntel": { + "description": "Cyber threat intel licensed members", + "type": "array", + "items": { + "description": "Cyber threat intel values of licensed members", + "type": "string", + "title": "Cyber Threat Intel Values", "x-ms-visibility": "important" }, - "username": { + "title": "Cyber Threat Intel", + "x-ms-visibility": "important" + }, + "secOpsIntel": { + "description": "SecOps licensed members", + "type": "array", + "items": { + "description": "SecOps intel values of licensed members", "type": "string", - "title": "Username", + "title": "SecOps Intel Values", "x-ms-visibility": "important" - } + }, + "title": "SecOps Intel", + "x-ms-visibility": "important" } - }, - "x-ms-visibility": "important" - }, - "FindArtifactResponse": { - "type": "object", - "description": "Find Artifact Response" - }, - "BulkUpdateResponse": { - "type": "object", - "description": "Bulk Update Response" - }, - "BulkDeleteResponse": { - "type": "object", - "description": "Bulk Delete Response" - }, - "BulkCreateResponse": { - "type": "object", - "description": "Bulk Create Response" + } }, - "SingleArtifactResponse": { + "Organization": { "type": "object", "properties": { - "monitor": { - "type": "boolean", - "title": "Monitor", - "x-ms-visibility": "important" - }, - "type": { - "type": "string", - "title": "Type", - "x-ms-visibility": "important" - }, "owner": { + "description": "Organization owners", "type": "string", "title": "Owner", "x-ms-visibility": "important" }, - "monitorable": { - "type": "boolean", - "title": "Monitorable", - "x-ms-visibility": "important" - }, - "creator": { + "organization": { + "description": "Name of organization", "type": "string", - "title": "Creator", + "title": "Name", "x-ms-visibility": "important" }, "guid": { + "description": "GUID of organization", "type": "string", "title": "GUID", "x-ms-visibility": "important" }, - "project": { - "description": "Project where artifact is located", - "type": "string", - "title": "Project", - "x-ms-visibility": "important" - }, - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "organization": { - "type": "string", - "title": "Organization", - "x-ms-visibility": "important" - }, - "created": { - "type": "string", - "title": "Created", - "x-ms-visibility": "important" - }, - "query": { - "type": "string", - "title": "Query", - "x-ms-visibility": "important" - }, - "system_tags": { - "type": "array", - "title": "System Tags", - "x-ms-visibility": "important", - "items": { - "type": "string", - "title": "System Tag", - "x-ms-visibility": "important" - } - }, - "user_tags": { - "type": "array", - "title": "User Tags", - "x-ms-visibility": "important", - "items": { - "type": "string", - "title": "User Tag", - "x-ms-visibility": "important" - } - }, - "global_tags": { - "type": "array", - "title": "Global Tags", - "x-ms-visibility": "important", - "items": { - "type": "string", - "title": "Global Tag", - "x-ms-visibility": "important" + "counts": { + "type": "object", + "description": "Organization counts", + "properties": { + "keyword_monitors": { + "description": "Keyword monitors used(Organization)", + "type": "integer", + "format": "int32", + "title": "Keyword Monitors", + "x-ms-visibility": "important" + }, + "search_api": { + "description": "API searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "basic_monitors": { + "description": "Basic monitors used(Organization)", + "type": "integer", + "format": "int32", + "title": "Basic Monitors", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Web searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + }, + "projects_private": { + "description": "Private projects used(Organization)", + "type": "integer", + "format": "int32", + "title": "Projects Private", + "x-ms-visibility": "important" + }, + "projects_public": { + "description": "Public projects used(Organization)", + "type": "integer", + "format": "int32", + "title": "Projects Public", + "x-ms-visibility": "important" + } } }, - "tag_meta": { + "freebies": { "type": "object", - "title": "Tag Meta", - "x-ms-visibility": "important" + "description": "Free organizations", + "properties": { + "search_api": { + "description": "API searches used free accounts(Organization)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Web searches used by free accounts(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } }, - "links": { + "profile": { "type": "object", + "description": "Organization profile", "properties": { - "tag": { + "analysis": { + "description": "Analysis profile(Organization)", "type": "string", - "title": "Tag", + "title": "Analysis", "x-ms-visibility": "important" }, - "self": { + "workflow": { + "description": "Workflow profile(Organization)", "type": "string", - "title": "Self", + "title": "Workflow", + "x-ms-visibility": "important" + } + } + }, + "limits": { + "type": "object", + "description": "Limits of organization", + "properties": { + "search_api": { + "description": "API search limits(Organization)", + "type": "integer", + "format": "int32", + "title": "Search API", "x-ms-visibility": "important" }, - "project": { - "description": "Link to projects", + "basic_monitors": { + "description": "Basic monitor limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Basic Monitors", + "x-ms-visibility": "important" + }, + "monitor_results": { + "description": "Monitor results limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Monitor Results", + "x-ms-visibility": "important" + }, + "projects_private": { + "description": "Private project limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Projects Private", + "x-ms-visibility": "important" + }, + "monitor_frequency": { + "description": "Monitor frequency(Organization)", "type": "string", - "title": "Project", + "title": "Monitor Frequency", + "x-ms-visibility": "important" + }, + "keyword_monitors": { + "description": "Keyword monitor limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Keyword Monitors", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Web search limits(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + }, + "projects_public": { + "description": "Public project limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Projects Public", + "x-ms-visibility": "important" + }, + "create_crawls": { + "description": "Crawl limits(Organization)", + "type": "integer", + "format": "int32", + "title": "Create Crawls", + "x-ms-visibility": "important" + }, + "crawl_submissions": { + "description": "Crawl submission limits(Organization)", + "type": "integer", + "format": "int32", + "title": "Crawl Submissions", "x-ms-visibility": "important" } - }, - "x-ms-visibility": "important" - } - } - }, - "ArticlesIndicatorsResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "indicators": { - "type": "array", - "items": { - "$ref": "#/definitions/Indicators" - }, - "x-ms-visibility": "important" + } }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - } - } - }, - "Indicators": { - "type": "object", - "properties": { - "source": { + "quotaInterval": { + "description": "Quota interval of organization", "type": "string", - "title": "Source", + "title": "Quota Interval", "x-ms-visibility": "important" }, - "value": { - "type": "string", - "title": "Value", - "x-ms-visibility": "important" + "licenseCounts": { + "$ref": "#/definitions/OrganizationLicenseCounts" }, - "type": { - "type": "string", - "title": "Type", + "licenseLimits": { + "$ref": "#/definitions/OrganizationLicenseLimits" + }, + "useMonthlyQuotaInactive": { + "description": "Monthly quota inactive of organization", + "type": "boolean", + "title": "Use Monthly Quota Inactive", "x-ms-visibility": "important" }, - "guid": { + "next_reset": { + "description": "Next reset of organization", "type": "string", - "title": "GUID", + "title": "Next Reset", "x-ms-visibility": "important" }, - "link": { + "last_reset": { + "description": "Last quota reset for organization", "type": "string", - "title": "Link", + "title": "Last Reset", "x-ms-visibility": "important" }, - "publishedDate": { + "username": { + "description": "Username of organization", "type": "string", - "title": "Published Date", + "title": "Username", "x-ms-visibility": "important" }, - "tags": { - "type": "array", - "items": { - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, - "title": "Tags", - "x-ms-visibility": "important" + "event_code": { + "$ref": "#/definitions/anyVariableValue" + }, + "event_code_expiration": { + "$ref": "#/definitions/anyVariableValue" } } }, - "ArticlesResponse": { + "OrganizationLicenseCounts": { "type": "object", + "description": "License counts of organization", "properties": { - "guid": { - "type": "string", - "title": "GUID", - "x-ms-visibility": "important" - }, - "title": { - "type": "string", - "title": "Title", - "x-ms-visibility": "important" - }, - "summary": { - "type": "string", - "title": "Summary", - "x-ms-visibility": "important" - }, - "type": { - "type": "string", - "title": "Type", - "description": "Indicators type", - "x-ms-visibility": "important" - }, - "publishedDate": { - "type": "string", - "title": "Published Date", - "x-ms-visibility": "important" - }, - "link": { - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - }, - "tags": { - "type": "array", - "items": { - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, - "title": "Tags", - "x-ms-visibility": "important" - }, - "categories": { - "type": "array", - "items": { - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "title": "Categories", - "x-ms-visibility": "important" + "enterprise": { + "type": "object", + "description": "Enterprise organizatoin licences used", + "properties": { + "searchApi": { + "description": "Enterprise api searches used", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "searchWeb": { + "description": "Enterprise web searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } }, - "indicators": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "description": "Indicators type", - "type": "string", - "title": "Type", - "x-ms-visibility": "important" - }, - "count": { - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "values": { - "type": "array", - "items": { - "type": "string", - "title": "Value", - "x-ms-visibility": "important" - }, - "title": "Values", - "x-ms-visibility": "important" - }, - "source": { - "type": "string", - "title": "Source", - "x-ms-visibility": "important" - } + "cyberThreatIntel": { + "type": "object", + "description": "Cyber threat intel licenses used", + "properties": { + "searchApi": { + "description": "Cyber threat intel api searches used", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" }, - "x-ms-visibility": "important" - }, - "x-ms-visibility": "important" - } - } - }, - "ArticlesListResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" + "searchWeb": { + "description": "Cyber threat intel web searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } }, - "articles": { - "$ref": "#/definitions/anyVariableValue" + "secOpsIntel": { + "type": "object", + "description": "SecOps licenses used", + "properties": { + "searchApi": { + "description": "SecOps api searches used", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "searchWeb": { + "description": "SecOps web searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" + "illuminate": { + "type": "object", + "description": "illuminate licenses used", + "properties": { + "searchApi": { + "description": "illuminate api searches used", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "searchWeb": { + "description": "illuminate web searches used(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } } } }, - "SummaryDataCardResponse": { + "OrganizationLicenseLimits": { "type": "object", + "description": "License limits of organization", "properties": { - "type": { - "type": "string", - "title": "Type", - "x-ms-visibility": "important" - }, - "name": { - "type": "string", - "title": "Name", - "x-ms-visibility": "important" - }, - "link": { - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - }, - "netblock": { - "type": "string", - "title": "Net Block", - "x-ms-visibility": "important" - }, - "os": { - "type": "string", - "title": "OS", - "x-ms-visibility": "important" - }, - "asn": { - "type": "string", - "title": "ASN", - "x-ms-visibility": "important" - }, - "hosting_provider": { - "type": "string", - "title": "Hosting Provider", - "x-ms-visibility": "important" - }, - "data_summary": { + "enterprise": { "type": "object", + "description": "Enterprise organization license limits", "properties": { - "resolutions": { - "type": "object", - "properties": { - "count": { - "description": "Count of resolutions", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to resolutions", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + "searchApi": { + "description": "Enterprise api search limit", + "type": "integer", + "format": "int32", + "title": "Search API", "x-ms-visibility": "important" }, - "certificates": { - "type": "object", - "properties": { - "count": { - "description": "Count of certificates", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to certificates", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, - "hashes": { - "type": "object", - "properties": { - "count": { - "description": "Count of hashes", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to hashes", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, - "projects": { - "type": "object", - "properties": { - "count": { - "description": "Count of projects", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to projects", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, - "articles": { - "type": "object", - "properties": { - "count": { - "description": "Count of articles", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to articles", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + "searchWeb": { + "description": "Enterprise web search limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", "x-ms-visibility": "important" - }, - "trackers": { - "type": "object", - "properties": { - "count": { - "description": "Count of trackers", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to trackers", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + } + } + }, + "cyberThreatIntel": { + "type": "object", + "description": "Cyber threat intel license limit", + "properties": { + "searchApi": { + "description": "Cyber threat intel api search limit", + "type": "integer", + "format": "int32", + "title": "Search API", "x-ms-visibility": "important" }, - "components": { - "type": "object", - "properties": { - "count": { - "description": "Count of components", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to components", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + "searchWeb": { + "description": "Cyber threat intel web search limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", "x-ms-visibility": "important" - }, - "host_pairs": { - "type": "object", - "properties": { - "count": { - "description": "Count of host pairs", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to host pairs", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + } + } + }, + "secOpsIntel": { + "type": "object", + "description": "SecOps license limit", + "properties": { + "searchApi": { + "description": "SecOps api search limit", + "type": "integer", + "format": "int32", + "title": "Search API", "x-ms-visibility": "important" }, - "cookies": { - "type": "object", - "properties": { - "count": { - "description": "Count of cookies", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to cookies", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + "searchWeb": { + "description": "SecOps web search limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", "x-ms-visibility": "important" - }, - "reverse_dns": { - "type": "object", - "properties": { - "count": { - "description": "Count of reverse dns", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to reverse dns", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + } + } + }, + "illuminate": { + "type": "object", + "description": "illuminate license limit", + "properties": { + "searchApi": { + "description": "illuminate api search limit", + "type": "integer", + "format": "int32", + "title": "Search API", "x-ms-visibility": "important" }, - "services": { - "type": "object", - "properties": { - "count": { - "description": "Count of services", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "link": { - "description": "Link to services", - "type": "string", - "title": "Link", - "x-ms-visibility": "important" - } - }, + "searchWeb": { + "description": "illuminate web search limit(Organization)", + "type": "integer", + "format": "int32", + "title": "Search Web", "x-ms-visibility": "important" } } } } }, - "EnrichmentResponse": { + "QuotaResponse": { "type": "object", "properties": { - "classification": { + "user": { + "$ref": "#/definitions/User" + }, + "organization": { + "$ref": "#/definitions/Organization" + } + } + }, + "User": { + "type": "object", + "properties": { + "owner": { + "description": "Organization users", "type": "string", - "title": "Classification", + "title": "Owner", "x-ms-visibility": "important" }, - "sinkhole": { - "type": "boolean", - "title": "Sinkhole", + "organization": { + "description": "User organization", + "type": "string", + "title": "Organization", "x-ms-visibility": "important" }, - "everCompromised": { - "type": "boolean", - "title": "Ever Compromised", + "guid": { + "description": "GUID of user", + "type": "string", + "title": "GUID", "x-ms-visibility": "important" }, - "queryType": { + "counts": { + "type": "object", + "description": "User counts", + "properties": { + "keyword_monitors": { + "description": "Keyword monitors used(User)", + "type": "integer", + "format": "int32", + "title": "Keyword Monitors", + "x-ms-visibility": "important" + }, + "search_api": { + "description": "Search api of counts(User)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "basic_monitors": { + "description": "Basic monitors used(User)", + "type": "integer", + "format": "int32", + "title": "Basic Monitors", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Search web of counts(User)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + }, + "projects_private": { + "description": "Private projects used(User)", + "type": "integer", + "format": "int32", + "title": "Projects Private", + "x-ms-visibility": "important" + }, + "projects_public": { + "description": "Public projects used(User)", + "type": "integer", + "format": "int32", + "title": "Projects Public", + "x-ms-visibility": "important" + } + } + }, + "freebies": { + "type": "object", + "description": "Free users", + "properties": { + "search_api": { + "description": "Search api of freebies(User)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Search web of freebies(User)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } + }, + "profile": { + "type": "object", + "description": "User profile", + "properties": { + "analysis": { + "description": "Analysis profile(User)", + "type": "string", + "title": "Analysis", + "x-ms-visibility": "important" + }, + "workflow": { + "description": "Workflow profile(User)", + "type": "string", + "title": "Workflow", + "x-ms-visibility": "important" + } + } + }, + "limits": { + "type": "object", + "description": "Limits of user", + "properties": { + "search_api": { + "description": "Search api of limits(User)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "basic_monitors": { + "description": "Basic monitor limit(User)", + "type": "integer", + "format": "int32", + "title": "Basic Monitors", + "x-ms-visibility": "important" + }, + "monitor_results": { + "description": "Monitor results limit(User)", + "type": "integer", + "format": "int32", + "title": "Monitor Results", + "x-ms-visibility": "important" + }, + "projects_private": { + "description": "Private project limit(User)", + "type": "integer", + "format": "int32", + "title": "Projects Private", + "x-ms-visibility": "important" + }, + "monitor_frequency": { + "description": "Monitor frequency(User)", + "type": "string", + "title": "Monitor Frequency", + "x-ms-visibility": "important" + }, + "keyword_monitors": { + "description": "Keyword monitor limit(User)", + "type": "integer", + "format": "int32", + "title": "Keyword Monitors", + "x-ms-visibility": "important" + }, + "search_web": { + "description": "Search web of limits(User)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + }, + "projects_public": { + "description": "Public project limit(User)", + "type": "integer", + "format": "int32", + "title": "Projects Public", + "x-ms-visibility": "important" + }, + "create_crawls": { + "description": "Crawl limits(User)", + "type": "integer", + "format": "int32", + "title": "Create Crawls", + "x-ms-visibility": "important" + }, + "crawl_submissions": { + "description": "Crawl submission limits(User)", + "type": "integer", + "format": "int32", + "title": "Crawl Submissions", + "x-ms-visibility": "important" + } + } + }, + "quotaInterval": { + "description": "Quota interval of user", "type": "string", - "title": "Query Type", + "title": "Quota Interval", "x-ms-visibility": "important" }, - "queryValue": { + "useMonthlyQuotaInactive": { + "description": "Use monthly quota inactive of user", + "type": "boolean", + "title": "Use Monthly Quota Inactive", + "x-ms-visibility": "important" + }, + "licenseCounts": { + "type": "object", + "description": "License counts of user", + "properties": { + "searchApi": { + "description": "Search api of license counts(User)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "searchWeb": { + "description": "Search web of license counts(User)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } + }, + "licenseLimits": { + "type": "object", + "description": "License limits of user", + "properties": { + "searchApi": { + "description": "Search api of license limits(User)", + "type": "integer", + "format": "int32", + "title": "Search API", + "x-ms-visibility": "important" + }, + "searchWeb": { + "description": "Search web of license limits(User)", + "type": "integer", + "format": "int32", + "title": "Search Web", + "x-ms-visibility": "important" + } + } + }, + "next_reset": { + "description": "Next reset of user", "type": "string", - "title": "Query Value", + "title": "Next Reset", "x-ms-visibility": "important" }, - "primaryDomain": { + "last_reset": { + "description": "Last quota reset for user", "type": "string", - "title": "Primary Domain", + "title": "Last Reset", "x-ms-visibility": "important" }, - "tld": { + "username": { + "description": "Username of user", "type": "string", - "title": "TLD", + "title": "Username", "x-ms-visibility": "important" }, - "subdomains": { + "event_code": { + "$ref": "#/definitions/anyVariableValue" + }, + "event_code_expiration": { + "$ref": "#/definitions/anyVariableValue" + } + } + }, + "SourcesResponse": { + "type": "object", + "properties": { + "sources": { "type": "array", "items": { - "type": "string", - "title": "Subdomain", - "x-ms-visibility": "important" + "$ref": "#/definitions/Source" }, - "title": "Subdomains", "x-ms-visibility": "important" - }, - "tag_meta": { - "type": "object", - "title": "Tag Meta", + } + } + }, + "Source": { + "type": "object", + "properties": { + "controllable": { + "type": "boolean", + "title": "Controllable", "x-ms-visibility": "important" }, - "global_tags": { - "type": "array", - "items": { - "type": "string", - "title": "Global Tag", - "x-ms-visibility": "important" - }, - "title": "Global Tags", + "active": { + "type": "boolean", + "title": "Active", "x-ms-visibility": "important" }, - "tags": { + "configuration": { + "type": "object", + "properties": { + "settings": { + "type": "object", + "properties": {} + }, + "password": { + "description": "Source password", + "type": "string", + "title": "Password", + "x-ms-visibility": "important" + }, + "username": { + "description": "Source username", + "type": "string", + "title": "Username", + "x-ms-visibility": "important" + }, + "token": { + "description": "Source configuration token", + "type": "string", + "title": "Token", + "x-ms-visibility": "important" + } + } + }, + "type": { "type": "array", "items": { "type": "string", - "title": "Tag", + "title": "Type Values", "x-ms-visibility": "important" }, - "title": "Tags", + "title": "Type", "x-ms-visibility": "important" }, - "system_tags": { + "access": { "type": "array", "items": { "type": "string", - "title": "System Tag", + "title": "Access Values", "x-ms-visibility": "important" }, - "title": "System Tags", + "title": "Access", "x-ms-visibility": "important" }, - "dynamicDns": { - "type": "boolean", - "title": "Dynamic DNS", + "description": { + "type": "string", + "title": "Description", "x-ms-visibility": "important" }, - "autonomousSystemNumber": { - "type": "integer", - "format": "int32", - "title": "Autonomous System Number", + "authRequired": { + "type": "boolean", + "title": "Auth Required", "x-ms-visibility": "important" }, - "autonomousSystemName": { + "website": { "type": "string", - "title": "Autonomous System Name", + "title": "Website", "x-ms-visibility": "important" }, - "network": { + "label": { "type": "string", - "title": "Network", + "title": "Label", "x-ms-visibility": "important" }, - "country": { - "type": "string", - "title": "Country", + "auth": { + "type": "boolean", + "title": "Auth", "x-ms-visibility": "important" }, - "longitude": { - "type": "number", - "format": "float", - "title": "Longitude", - "x-ms-visibility": "important" + "authMethod": { + "type": "object", + "properties": { + "apiKey": { + "type": "string", + "title": "API Key", + "x-ms-visibility": "important" + }, + "password": { + "description": "Password auth method", + "type": "string", + "title": "Password", + "x-ms-visibility": "important" + }, + "username": { + "description": "Username auth method", + "type": "string", + "title": "Username", + "x-ms-visibility": "important" + }, + "token": { + "description": "Token auth method", + "type": "string", + "title": "Token", + "x-ms-visibility": "important" + }, + "token_key": { + "type": "string", + "title": "Token Key", + "x-ms-visibility": "important" + }, + "token_secret": { + "type": "string", + "title": "Token Secret", + "x-ms-visibility": "important" + }, + "private_key": { + "type": "string", + "title": "Private Key", + "x-ms-visibility": "important" + } + } }, - "latitude": { - "type": "number", - "format": "float", - "title": "Latitude", + "source": { + "type": "string", + "title": "Source", "x-ms-visibility": "important" }, - "dynamic": { + "org_configuration": { "$ref": "#/definitions/anyVariableValue" } } }, - "EnrichmentMalwareResponse": { + "TeamstreamResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" + "history": { + "$ref": "#/definitions/anyVariableValue" }, - "results": { + "teamstream": { "type": "array", "items": { - "$ref": "#/definitions/EnrichmentMalwareResult" + "$ref": "#/definitions/Teamstream" }, "x-ms-visibility": "important" } } }, - "EnrichmentMalwareResult": { + "Teamstream": { "type": "object", "properties": { - "collectionDate": { + "focus": { "type": "string", - "title": "Collection Date", + "title": "Focus", "x-ms-visibility": "important" }, - "sample": { + "source": { "type": "string", - "title": "Sample", + "title": "Source", "x-ms-visibility": "important" }, - "source": { + "username": { "type": "string", - "title": "Source", + "title": "Username", "x-ms-visibility": "important" }, - "sourceUrl": { + "type": { "type": "string", - "title": "Source URL", + "title": "Type", "x-ms-visibility": "important" - } - } - }, - "EnrichmentOsintResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", + }, + "context": { + "type": "integer", + "format": "int32", + "title": "Context", "x-ms-visibility": "important" }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/EnrichmentOsintResult" - }, + "guid": { + "type": "string", + "title": "GUID", + "x-ms-visibility": "important" + }, + "dt": { + "type": "string", + "title": "Date", "x-ms-visibility": "important" } } }, - "EnrichmentOsintResult": { + "ClassificationsResponse": { "type": "object", "properties": { - "derived": { - "type": "array", - "items": {}, - "title": "Derived", - "x-ms-visibility": "important" - }, - "inReport": { + "malicious": { "type": "array", "items": { "type": "string", - "title": "In Report", + "title": "Malicious Values", "x-ms-visibility": "important" }, - "title": "In Reports", - "x-ms-visibility": "important" - }, - "source": { - "type": "string", - "title": "Source", - "x-ms-visibility": "important" - }, - "sourceUrl": { - "type": "string", - "title": "Source URL", + "title": "Malicious", "x-ms-visibility": "important" }, - "tags": { + "non_malicious": { "type": "array", "items": { "type": "string", - "title": "Tag", + "title": "Non Malicious Values", "x-ms-visibility": "important" }, - "title": "Tags", + "title": "Non Malicious", "x-ms-visibility": "important" }, - "indicators": { + "suspicious": { "type": "array", - "items": {}, - "title": "Indicators", + "items": { + "type": "string", + "title": "Suspicious Values", + "x-ms-visibility": "important" + }, + "title": "Suspicious", "x-ms-visibility": "important" }, - "compromised": { + "unknown": { "type": "array", - "items": {}, - "title": "Compromised", + "items": { + "type": "string", + "title": "Unknown Values", + "x-ms-visibility": "important" + }, + "title": "Unknown", "x-ms-visibility": "important" } } }, - "EnrichmentSubdomainsResponse": { + "TagActionResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "primaryDomain": { - "type": "string", - "title": "Primary Domain", - "x-ms-visibility": "important" - }, - "subdomains": { + "tags": { "type": "array", "items": { "type": "string", - "title": "Subdomain", + "title": "Tag", "x-ms-visibility": "important" }, - "title": "Subdomains", + "title": "Tags", + "x-ms-visibility": "important" + } + } + }, + "BulkClassificationResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", "x-ms-visibility": "important" }, - "queryValue": { + "results": { + "type": "object", + "title": "Results", + "x-ms-visibility": "important" + } + } + }, + "ClassificationInfo": { + "type": "object", + "properties": { + "classification": { "type": "string", - "title": "Query Value", + "title": "Classification", "x-ms-visibility": "important" } } }, - "ServicesResponse": { + "CompromisedStatusResponse": { + "type": "object", + "properties": { + "everCompromised": { + "type": "boolean", + "title": "Ever Compromised", + "x-ms-visibility": "important" + } + } + }, + "DynamicDnsResponse": { + "type": "object", + "properties": { + "dynamicDns": { + "type": "boolean", + "title": "Dynamic DNS", + "x-ms-visibility": "important" + } + } + }, + "MonitorStatusResponse": { + "type": "object", + "properties": { + "monitor": { + "type": "boolean", + "title": "Monitor", + "x-ms-visibility": "important" + } + } + }, + "SinkholeStatusResponse": { + "type": "object", + "properties": { + "sinkhole": { + "type": "boolean", + "title": "Sinkhole", + "x-ms-visibility": "important" + } + } + }, + "ActionSearchTagResponse": { + "type": "object", + "properties": { + "results": { + "$ref": "#/definitions/SearchTagElement" + } + } + }, + "SearchTagElement": { + "type": "array", + "items": { + "type": "object", + "properties": { + "focus": { + "type": "string", + "title": "Focus", + "x-ms-visibility": "important" + }, + "user_tags": { + "type": "array", + "items": { + "type": "string", + "title": "User Tag", + "x-ms-visibility": "important" + }, + "title": "User Tags", + "x-ms-visibility": "important" + }, + "system_tags": { + "type": "array", + "items": { + "type": "string", + "title": "System Tag", + "x-ms-visibility": "important" + }, + "title": "System Tags", + "x-ms-visibility": "important" + }, + "global_tags": { + "type": "array", + "items": { + "type": "string", + "title": "Global Tag", + "x-ms-visibility": "important" + }, + "title": "Global Tags", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", + "x-ms-visibility": "important" + }, + "tag_meta": { + "type": "object", + "title": "Tag Meta", + "x-ms-visibility": "important" + }, + "username": { + "type": "string", + "title": "Username", + "x-ms-visibility": "important" + } + } + }, + "x-ms-visibility": "important" + }, + "FindArtifactResponse": { + "type": "object", + "description": "Find Artifact Response" + }, + "BulkUpdateResponse": { + "type": "object", + "description": "Bulk Update Response" + }, + "BulkDeleteResponse": { + "type": "object", + "description": "Bulk Delete Response" + }, + "BulkCreateResponse": { + "type": "object", + "description": "Bulk Create Response" + }, + "SingleArtifactResponse": { "type": "object", "properties": { + "monitor": { + "type": "boolean", + "title": "Monitor", + "x-ms-visibility": "important" + }, + "type": { + "type": "string", + "title": "Type", + "x-ms-visibility": "important" + }, + "owner": { + "type": "string", + "title": "Owner", + "x-ms-visibility": "important" + }, + "monitorable": { + "type": "boolean", + "title": "Monitorable", + "x-ms-visibility": "important" + }, + "creator": { + "type": "string", + "title": "Creator", + "x-ms-visibility": "important" + }, + "guid": { + "type": "string", + "title": "GUID", + "x-ms-visibility": "important" + }, + "project": { + "description": "Project where artifact is located", + "type": "string", + "title": "Project", + "x-ms-visibility": "important" + }, "success": { "type": "boolean", "title": "Success", "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "organization": { + "type": "string", + "title": "Organization", "x-ms-visibility": "important" }, - "results": { + "created": { + "type": "string", + "title": "Created", + "x-ms-visibility": "important" + }, + "query": { + "type": "string", + "title": "Query", + "x-ms-visibility": "important" + }, + "system_tags": { "type": "array", + "title": "System Tags", + "x-ms-visibility": "important", "items": { - "description": "Item of results", - "type": "object", - "properties": { - "firstSeen": { - "description": "Results first seen", - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "description": "Results last seen", - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "lastScan": { - "type": "string", - "title": "Last Scan", - "x-ms-visibility": "important" - }, - "portNumber": { - "type": "integer", - "format": "int32", - "title": "Port Number", - "x-ms-visibility": "important" - }, - "count": { - "description": "Count of results", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - }, - "status": { + "type": "string", + "title": "System Tag", + "x-ms-visibility": "important" + } + }, + "user_tags": { + "type": "array", + "title": "User Tags", + "x-ms-visibility": "important", + "items": { + "type": "string", + "title": "User Tag", + "x-ms-visibility": "important" + } + }, + "global_tags": { + "type": "array", + "title": "Global Tags", + "x-ms-visibility": "important", + "items": { + "type": "string", + "title": "Global Tag", + "x-ms-visibility": "important" + } + }, + "tag_meta": { + "type": "object", + "title": "Tag Meta", + "x-ms-visibility": "important" + }, + "links": { + "type": "object", + "properties": { + "tag": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "self": { + "type": "string", + "title": "Self", + "x-ms-visibility": "important" + }, + "project": { + "description": "Link to projects", + "type": "string", + "title": "Project", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + } + } + }, + "ArticlesIndicatorsResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "indicators": { + "type": "array", + "items": { + "$ref": "#/definitions/Indicators" + }, + "x-ms-visibility": "important" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + } + } + }, + "Indicators": { + "type": "object", + "properties": { + "source": { + "type": "string", + "title": "Source", + "x-ms-visibility": "important" + }, + "value": { + "type": "string", + "title": "Value", + "x-ms-visibility": "important" + }, + "type": { + "type": "string", + "title": "Type", + "x-ms-visibility": "important" + }, + "guid": { + "type": "string", + "title": "GUID", + "x-ms-visibility": "important" + }, + "link": { + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + }, + "publishedDate": { + "type": "string", + "title": "Published Date", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", + "x-ms-visibility": "important" + } + } + }, + "ArticlesResponse": { + "type": "object", + "properties": { + "guid": { + "type": "string", + "title": "GUID", + "x-ms-visibility": "important" + }, + "title": { + "type": "string", + "title": "Title", + "x-ms-visibility": "important" + }, + "summary": { + "type": "string", + "title": "Summary", + "x-ms-visibility": "important" + }, + "type": { + "type": "string", + "title": "Type", + "description": "Indicators type", + "x-ms-visibility": "important" + }, + "publishedDate": { + "type": "string", + "title": "Published Date", + "x-ms-visibility": "important" + }, + "link": { + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", + "x-ms-visibility": "important" + }, + "categories": { + "type": "array", + "items": { + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "title": "Categories", + "x-ms-visibility": "important" + }, + "indicators": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "description": "Indicators type", "type": "string", - "title": "Status", + "title": "Type", "x-ms-visibility": "important" }, - "protocol": { - "type": "string", - "title": "Protocol", + "count": { + "type": "integer", + "format": "int32", + "title": "Count", "x-ms-visibility": "important" }, - "banners": { + "values": { "type": "array", "items": { - "description": "Item of banners", - "type": "object", - "properties": { - "banner": { - "type": "string", - "title": "Banner", - "x-ms-visibility": "important" - }, - "scanType": { - "type": "string", - "title": "Scan Type", - "x-ms-visibility": "important" - }, - "firstSeen": { - "description": "Banner first seen", - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "description": "Banner last seen", - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "count": { - "description": "Banner count", - "type": "integer", - "format": "int32", - "title": "Count", - "x-ms-visibility": "important" - } - } + "type": "string", + "title": "Value", + "x-ms-visibility": "important" }, + "title": "Values", "x-ms-visibility": "important" }, - "currentServices": { - "type": "array", - "items": { - "description": "Item of current services", - "type": "object", - "properties": { - "firstSeen": { - "description": "Current service first seen", - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "description": "Current service last seen", - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "version": { - "description": "Current service version", - "type": "string", - "title": "Version", - "x-ms-visibility": "important" - }, - "category": { - "description": "Current service category", - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "label": { - "description": "Current service label", - "type": "string", - "title": "Label", - "x-ms-visibility": "important" - } - }, + "source": { + "type": "string", + "title": "Source", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + } + } + }, + "ArticlesListResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "articles": { + "$ref": "#/definitions/anyVariableValue" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + } + } + }, + "SummaryDataCardResponse": { + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "Type", + "x-ms-visibility": "important" + }, + "name": { + "type": "string", + "title": "Name", + "x-ms-visibility": "important" + }, + "link": { + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + }, + "netblock": { + "type": "string", + "title": "Net Block", + "x-ms-visibility": "important" + }, + "os": { + "type": "string", + "title": "OS", + "x-ms-visibility": "important" + }, + "asn": { + "type": "string", + "title": "ASN", + "x-ms-visibility": "important" + }, + "hosting_provider": { + "type": "string", + "title": "Hosting Provider", + "x-ms-visibility": "important" + }, + "data_summary": { + "type": "object", + "properties": { + "resolutions": { + "type": "object", + "properties": { + "count": { + "description": "Count of resolutions", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to resolutions", + "type": "string", + "title": "Link", "x-ms-visibility": "important" } }, - "recentServices": { - "type": "array", - "items": { - "description": "Item of recent services", - "type": "object", - "properties": { - "firstSeen": { - "description": "Recent service first seen", - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "description": "Recent service last seen", - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "version": { - "description": "Recent service version", - "type": "string", - "title": "Version", - "x-ms-visibility": "important" - }, - "category": { - "description": "Recent service category", - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "label": { - "description": "Recent service label", - "type": "string", - "title": "Label", - "x-ms-visibility": "important" - } - } + "x-ms-visibility": "important" + }, + "certificates": { + "type": "object", + "properties": { + "count": { + "description": "Count of certificates", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" }, - "x-ms-visibility": "important" + "link": { + "description": "Link to certificates", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } }, - "mostRecentSslCert": { - "type": "object", - "properties": { - "firstSeen": { - "description": "Most recent ssl cert first seen", - "type": "integer", - "format": "int32", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "description": "Most recent ssl cert last seen", - "type": "integer", - "format": "int32", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "fingerprint": { - "type": "string", - "title": "Finger Print", - "x-ms-visibility": "important" - }, - "sslVersion": { - "type": "string", - "title": "SSL Version", - "x-ms-visibility": "important" - }, - "expirationDate": { - "type": "string", - "title": "Expiration Date", - "x-ms-visibility": "important" - }, - "issueDate": { - "type": "string", - "title": "Issue Date", - "x-ms-visibility": "important" - }, - "sha1": { - "type": "string", - "title": "SHA1", - "x-ms-visibility": "important" - }, - "serialNumber": { - "type": "string", - "title": "Serial Number", - "x-ms-visibility": "important" - }, - "subjectCountry": { - "type": "string", - "title": "Subject Country", - "x-ms-visibility": "important" - }, - "issuerCommonName": { - "type": "string", - "title": "Issuer Common Name", - "x-ms-visibility": "important" - }, - "issuerProvince": { - "type": "string", - "title": "Issuer Province", - "x-ms-visibility": "important" - }, - "subjectStateOrProvinceName": { - "type": "string", - "title": "Subject State Or Province Name", - "x-ms-visibility": "important" - }, - "subjectStreetAddress": { - "type": "string", - "title": "Subject Street Address", - "x-ms-visibility": "important" - }, - "issuerStateOrProvinceName": { - "type": "string", - "title": "Issuer State Or Province Name", - "x-ms-visibility": "important" - }, - "subjectSurname": { - "type": "string", - "title": "Subject Surname", - "x-ms-visibility": "important" - }, - "issuerCountry": { - "type": "string", - "title": "Issuer Country", - "x-ms-visibility": "important" - }, - "subjectLocalityName": { - "type": "string", - "title": "Subject Locality Name", - "x-ms-visibility": "important" - }, - "issuerOrganizationUnitName": { - "type": "string", - "title": "Issuer Organization Unit Name", - "x-ms-visibility": "important" - }, - "issuerOrganizationName": { - "type": "string", + "x-ms-visibility": "important" + }, + "hashes": { + "type": "object", + "properties": { + "count": { + "description": "Count of hashes", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to hashes", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "projects": { + "type": "object", + "properties": { + "count": { + "description": "Count of projects", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to projects", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "articles": { + "type": "object", + "properties": { + "count": { + "description": "Count of articles", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to articles", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "trackers": { + "type": "object", + "properties": { + "count": { + "description": "Count of trackers", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to trackers", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "components": { + "type": "object", + "properties": { + "count": { + "description": "Count of components", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to components", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "host_pairs": { + "type": "object", + "properties": { + "count": { + "description": "Count of host pairs", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to host pairs", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "cookies": { + "type": "object", + "properties": { + "count": { + "description": "Count of cookies", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to cookies", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "reverse_dns": { + "type": "object", + "properties": { + "count": { + "description": "Count of reverse dns", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to reverse dns", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "services": { + "type": "object", + "properties": { + "count": { + "description": "Count of services", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "link": { + "description": "Link to services", + "type": "string", + "title": "Link", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + } + } + } + } + }, + "EnrichmentResponse": { + "type": "object", + "properties": { + "classification": { + "type": "string", + "title": "Classification", + "x-ms-visibility": "important" + }, + "sinkhole": { + "type": "boolean", + "title": "Sinkhole", + "x-ms-visibility": "important" + }, + "everCompromised": { + "type": "boolean", + "title": "Ever Compromised", + "x-ms-visibility": "important" + }, + "queryType": { + "type": "string", + "title": "Query Type", + "x-ms-visibility": "important" + }, + "queryValue": { + "type": "string", + "title": "Query Value", + "x-ms-visibility": "important" + }, + "primaryDomain": { + "type": "string", + "title": "Primary Domain", + "x-ms-visibility": "important" + }, + "tld": { + "type": "string", + "title": "TLD", + "x-ms-visibility": "important" + }, + "subdomains": { + "type": "array", + "items": { + "type": "string", + "title": "Subdomain", + "x-ms-visibility": "important" + }, + "title": "Subdomains", + "x-ms-visibility": "important" + }, + "tag_meta": { + "type": "object", + "title": "Tag Meta", + "x-ms-visibility": "important" + }, + "global_tags": { + "type": "array", + "items": { + "type": "string", + "title": "Global Tag", + "x-ms-visibility": "important" + }, + "title": "Global Tags", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", + "x-ms-visibility": "important" + }, + "system_tags": { + "type": "array", + "items": { + "type": "string", + "title": "System Tag", + "x-ms-visibility": "important" + }, + "title": "System Tags", + "x-ms-visibility": "important" + }, + "dynamicDns": { + "type": "boolean", + "title": "Dynamic DNS", + "x-ms-visibility": "important" + }, + "autonomousSystemNumber": { + "type": "integer", + "format": "int32", + "title": "Autonomous System Number", + "x-ms-visibility": "important" + }, + "autonomousSystemName": { + "type": "string", + "title": "Autonomous System Name", + "x-ms-visibility": "important" + }, + "network": { + "type": "string", + "title": "Network", + "x-ms-visibility": "important" + }, + "country": { + "type": "string", + "title": "Country", + "x-ms-visibility": "important" + }, + "longitude": { + "type": "number", + "format": "float", + "title": "Longitude", + "x-ms-visibility": "important" + }, + "latitude": { + "type": "number", + "format": "float", + "title": "Latitude", + "x-ms-visibility": "important" + }, + "dynamic": { + "$ref": "#/definitions/anyVariableValue" + } + } + }, + "EnrichmentMalwareResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EnrichmentMalwareResult" + }, + "x-ms-visibility": "important" + } + } + }, + "EnrichmentMalwareResult": { + "type": "object", + "properties": { + "collectionDate": { + "type": "string", + "title": "Collection Date", + "x-ms-visibility": "important" + }, + "sample": { + "type": "string", + "title": "Sample", + "x-ms-visibility": "important" + }, + "source": { + "type": "string", + "title": "Source", + "x-ms-visibility": "important" + }, + "sourceUrl": { + "type": "string", + "title": "Source URL", + "x-ms-visibility": "important" + } + } + }, + "EnrichmentOsintResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/EnrichmentOsintResult" + }, + "x-ms-visibility": "important" + } + } + }, + "EnrichmentOsintResult": { + "type": "object", + "properties": { + "derived": { + "type": "array", + "items": {}, + "title": "Derived", + "x-ms-visibility": "important" + }, + "inReport": { + "type": "array", + "items": { + "type": "string", + "title": "In Report", + "x-ms-visibility": "important" + }, + "title": "In Reports", + "x-ms-visibility": "important" + }, + "source": { + "type": "string", + "title": "Source", + "x-ms-visibility": "important" + }, + "sourceUrl": { + "type": "string", + "title": "Source URL", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "title": "Tags", + "x-ms-visibility": "important" + }, + "indicators": { + "type": "array", + "items": {}, + "title": "Indicators", + "x-ms-visibility": "important" + }, + "compromised": { + "type": "array", + "items": {}, + "title": "Compromised", + "x-ms-visibility": "important" + } + } + }, + "EnrichmentSubdomainsResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "primaryDomain": { + "type": "string", + "title": "Primary Domain", + "x-ms-visibility": "important" + }, + "subdomains": { + "type": "array", + "items": { + "type": "string", + "title": "Subdomain", + "x-ms-visibility": "important" + }, + "title": "Subdomains", + "x-ms-visibility": "important" + }, + "queryValue": { + "type": "string", + "title": "Query Value", + "x-ms-visibility": "important" + } + } + }, + "ServicesResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "description": "Item of results", + "type": "object", + "properties": { + "firstSeen": { + "description": "Results first seen", + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "description": "Results last seen", + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "lastScan": { + "type": "string", + "title": "Last Scan", + "x-ms-visibility": "important" + }, + "portNumber": { + "type": "integer", + "format": "int32", + "title": "Port Number", + "x-ms-visibility": "important" + }, + "count": { + "description": "Count of results", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + }, + "status": { + "type": "string", + "title": "Status", + "x-ms-visibility": "important" + }, + "protocol": { + "type": "string", + "title": "Protocol", + "x-ms-visibility": "important" + }, + "banners": { + "type": "array", + "items": { + "description": "Item of banners", + "type": "object", + "properties": { + "banner": { + "type": "string", + "title": "Banner", + "x-ms-visibility": "important" + }, + "scanType": { + "type": "string", + "title": "Scan Type", + "x-ms-visibility": "important" + }, + "firstSeen": { + "description": "Banner first seen", + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "description": "Banner last seen", + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "count": { + "description": "Banner count", + "type": "integer", + "format": "int32", + "title": "Count", + "x-ms-visibility": "important" + } + } + }, + "x-ms-visibility": "important" + }, + "currentServices": { + "type": "array", + "items": { + "description": "Item of current services", + "type": "object", + "properties": { + "firstSeen": { + "description": "Current service first seen", + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "description": "Current service last seen", + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "version": { + "description": "Current service version", + "type": "string", + "title": "Version", + "x-ms-visibility": "important" + }, + "category": { + "description": "Current service category", + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "label": { + "description": "Current service label", + "type": "string", + "title": "Label", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + } + }, + "recentServices": { + "type": "array", + "items": { + "description": "Item of recent services", + "type": "object", + "properties": { + "firstSeen": { + "description": "Recent service first seen", + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "description": "Recent service last seen", + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "version": { + "description": "Recent service version", + "type": "string", + "title": "Version", + "x-ms-visibility": "important" + }, + "category": { + "description": "Recent service category", + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "label": { + "description": "Recent service label", + "type": "string", + "title": "Label", + "x-ms-visibility": "important" + } + } + }, + "x-ms-visibility": "important" + }, + "mostRecentSslCert": { + "type": "object", + "properties": { + "firstSeen": { + "description": "Most recent ssl cert first seen", + "type": "integer", + "format": "int32", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "description": "Most recent ssl cert last seen", + "type": "integer", + "format": "int32", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "fingerprint": { + "type": "string", + "title": "Finger Print", + "x-ms-visibility": "important" + }, + "sslVersion": { + "type": "string", + "title": "SSL Version", + "x-ms-visibility": "important" + }, + "expirationDate": { + "type": "string", + "title": "Expiration Date", + "x-ms-visibility": "important" + }, + "issueDate": { + "type": "string", + "title": "Issue Date", + "x-ms-visibility": "important" + }, + "sha1": { + "type": "string", + "title": "SHA1", + "x-ms-visibility": "important" + }, + "serialNumber": { + "type": "string", + "title": "Serial Number", + "x-ms-visibility": "important" + }, + "subjectCountry": { + "type": "string", + "title": "Subject Country", + "x-ms-visibility": "important" + }, + "issuerCommonName": { + "type": "string", + "title": "Issuer Common Name", + "x-ms-visibility": "important" + }, + "issuerProvince": { + "type": "string", + "title": "Issuer Province", + "x-ms-visibility": "important" + }, + "subjectStateOrProvinceName": { + "type": "string", + "title": "Subject State Or Province Name", + "x-ms-visibility": "important" + }, + "subjectStreetAddress": { + "type": "string", + "title": "Subject Street Address", + "x-ms-visibility": "important" + }, + "issuerStateOrProvinceName": { + "type": "string", + "title": "Issuer State Or Province Name", + "x-ms-visibility": "important" + }, + "subjectSurname": { + "type": "string", + "title": "Subject Surname", + "x-ms-visibility": "important" + }, + "issuerCountry": { + "type": "string", + "title": "Issuer Country", + "x-ms-visibility": "important" + }, + "subjectLocalityName": { + "type": "string", + "title": "Subject Locality Name", + "x-ms-visibility": "important" + }, + "issuerOrganizationUnitName": { + "type": "string", + "title": "Issuer Organization Unit Name", + "x-ms-visibility": "important" + }, + "issuerOrganizationName": { + "type": "string", "title": "Issuer Organization Name", "x-ms-visibility": "important" }, @@ -6600,21 +7532,405 @@ } } }, - "MonitorResponse": { + "MonitorResponse": { + "type": "object", + "properties": { + "results": { + "type": "object", + "title": "Results", + "x-ms-visibility": "important" + }, + "error": { + "$ref": "#/definitions/anyVariableValue" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + }, + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + } + } + }, + "FindProjectResponse": { + "type": "object", + "description": "Find Project Response" + }, + "ProjectResponse": { + "type": "object", + "properties": { + "visibility": { + "type": "string", + "title": "Visibility", + "x-ms-visibility": "important" + }, + "owner": { + "type": "string", + "title": "Owner", + "x-ms-visibility": "important" + }, + "active": { + "type": "boolean", + "title": "Active", + "x-ms-visibility": "important" + }, + "description": { + "type": "string", + "title": "Description", + "x-ms-visibility": "important" + }, + "subscribers": { + "type": "array", + "title": "Subscribers", + "items": { + "type": "string", + "title": "Subscriber", + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + }, + "creator": { + "type": "string", + "title": "Creator", + "x-ms-visibility": "important" + }, + "guid": { + "type": "string", + "title": "GUID", + "x-ms-visibility": "important" + }, + "featured": { + "type": "boolean", + "title": "Featured", + "x-ms-visibility": "important" + }, + "tags": { + "type": "array", + "title": "Tags", + "items": { + "description": "Tag to tags", + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + }, + "collaborators": { + "type": "array", + "title": "Collaborators", + "items": { + "type": "string", + "title": "Collaborator", + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + }, + "name": { + "type": "string", + "title": "Name", + "x-ms-visibility": "important" + }, + "created": { + "type": "string", + "title": "Created", + "x-ms-visibility": "important" + }, + "organization": { + "type": "string", + "title": "Organization", + "x-ms-visibility": "important" + }, + "links": { + "type": "object", + "properties": { + "tag": { + "description": "Link to tags", + "type": "string", + "title": "Tag", + "x-ms-visibility": "important" + }, + "self": { + "type": "string", + "title": "Self", + "x-ms-visibility": "important" + }, + "artifact": { + "type": "string", + "title": "Artifact", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "can_edit": { + "type": "boolean", + "title": "Can Edit", + "x-ms-visibility": "important" + }, + "link": { + "$ref": "#/definitions/anyVariableValue" + } + } + }, + "SSLResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "overallTotalRecords": { + "type": "integer", + "format": "int32", + "title": "Overall Total Records", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSLResponseResult" + }, + "x-ms-visibility": "important" + } + } + }, + "SSLResponseResult": { + "type": "object", + "properties": { + "firstSeen": { + "type": "integer", + "format": "int32", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "integer", + "format": "int32", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "fingerprint": { + "type": "string", + "title": "Finger Print", + "x-ms-visibility": "important" + }, + "sslVersion": { + "type": "string", + "title": "SSL Version", + "x-ms-visibility": "important" + }, + "expirationDate": { + "type": "string", + "title": "Expiration Date", + "x-ms-visibility": "important" + }, + "issueDate": { + "type": "string", + "title": "Issue Date", + "x-ms-visibility": "important" + }, + "sha1": { + "type": "string", + "title": "SHA1", + "x-ms-visibility": "important" + }, + "serialNumber": { + "type": "string", + "title": "Serial Number", + "x-ms-visibility": "important" + }, + "subjectCountry": { + "type": "string", + "title": "Subject Country", + "x-ms-visibility": "important" + }, + "issuerCommonName": { + "type": "string", + "title": "Issuer Common Name", + "x-ms-visibility": "important" + }, + "issuerProvince": { + "type": "string", + "title": "Issuer Province", + "x-ms-visibility": "important" + }, + "subjectStateOrProvinceName": { + "type": "string", + "title": "Subject State Or Province Name", + "x-ms-visibility": "important" + }, + "subjectStreetAddress": { + "type": "string", + "title": "Subject Street Address", + "x-ms-visibility": "important" + }, + "issuerStateOrProvinceName": { + "type": "string", + "title": "Issuer State Or Province Name", + "x-ms-visibility": "important" + }, + "subjectSurname": { + "type": "string", + "title": "Subject Surname", + "x-ms-visibility": "important" + }, + "issuerCountry": { + "type": "string", + "title": "Issuer Country", + "x-ms-visibility": "important" + }, + "subjectLocalityName": { + "type": "string", + "title": "Subject Locality Name", + "x-ms-visibility": "important" + }, + "issuerOrganizationUnitName": { + "type": "string", + "title": "Issuer Organization Unit Name", + "x-ms-visibility": "important" + }, + "issuerOrganizationName": { + "type": "string", + "title": "Issuer Organization Name", + "x-ms-visibility": "important" + }, + "subjectEmailAddress": { + "type": "string", + "title": "Subject Email Address", + "x-ms-visibility": "important" + }, + "subjectOrganizationName": { + "type": "string", + "title": "Subject Organization Name", + "x-ms-visibility": "important" + }, + "issuerLocalityName": { + "type": "string", + "title": "Issuer Locality Name", + "x-ms-visibility": "important" + }, + "subjectCommonName": { + "type": "string", + "title": "Subject Common Name", + "x-ms-visibility": "important" + }, + "subjectProvince": { + "type": "string", + "title": "Subject Province", + "x-ms-visibility": "important" + }, + "issuerGivenName": { + "type": "string", + "title": "Issuer Given Name", + "x-ms-visibility": "important" + }, + "subjectOrganizationUnitName": { + "type": "string", + "title": "Subject Organization Unit Name", + "x-ms-visibility": "important" + }, + "issuerEmailAddress": { + "type": "string", + "title": "Issuer Email Address", + "x-ms-visibility": "important" + }, + "subjectGivenName": { + "type": "string", + "title": "Subject Given Name", + "x-ms-visibility": "important" + }, + "subjectSerialNumber": { + "type": "string", + "title": "Subject Serial Number", + "x-ms-visibility": "important" + }, + "issuerStreetAddress": { + "type": "string", + "title": "Issuer Street Address", + "x-ms-visibility": "important" + }, + "issuerSerialNumber": { + "type": "string", + "title": "Issuer Serial Number", + "x-ms-visibility": "important" + }, + "issuerSurname": { + "type": "string", + "title": "Issuer Surname", + "x-ms-visibility": "important" + }, + "subjectAlternativeNames": { + "type": "array", + "items": { + "type": "string", + "title": "Subject Alternative Name", + "x-ms-visibility": "important" + }, + "title": "Subject Alternative Names", + "x-ms-visibility": "important" + } + } + }, + "SSLSearchKeywordResponse": { + "type": "object", + "properties": { + "queryValue": { + "type": "string", + "title": "Query Value", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSLSearchKeywordResult" + }, + "x-ms-visibility": "important" + }, + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + } + } + }, + "SSLSearchKeywordResult": { "type": "object", "properties": { - "results": { - "type": "object", - "title": "Results", + "matchType": { + "type": "string", + "title": "Match Type", "x-ms-visibility": "important" }, - "error": { - "$ref": "#/definitions/anyVariableValue" + "fieldMatch": { + "type": "string", + "title": "Field Match", + "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "focusPoint": { + "type": "string", + "title": "Focus Point", + "x-ms-visibility": "important" + } + } + }, + "SSLHistoryResponse": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSLHistoryResult" + }, "x-ms-visibility": "important" }, "success": { @@ -6624,132 +7940,276 @@ } } }, - "FindProjectResponse": { - "type": "object", - "description": "Find Project Response" - }, - "ProjectResponse": { + "SSLHistoryResult": { "type": "object", "properties": { - "visibility": { - "type": "string", - "title": "Visibility", - "x-ms-visibility": "important" - }, - "owner": { + "sha1": { "type": "string", - "title": "Owner", - "x-ms-visibility": "important" - }, - "active": { - "type": "boolean", - "title": "Active", + "title": "SHA1", "x-ms-visibility": "important" }, - "description": { + "firstSeen": { "type": "string", - "title": "Description", + "title": "First Seen", "x-ms-visibility": "important" }, - "subscribers": { + "ipAddresses": { "type": "array", - "title": "Subscribers", + "title": "IP Addresses", "items": { "type": "string", - "title": "Subscriber", + "title": "IP Address", "x-ms-visibility": "important" - }, - "x-ms-visibility": "important" + } }, - "creator": { + "lastSeen": { "type": "string", - "title": "Creator", + "title": "Last Seen", "x-ms-visibility": "important" - }, - "guid": { + } + } + }, + "SSLSearchResponse": { + "type": "object", + "properties": { + "queryValue": { "type": "string", - "title": "GUID", + "title": "Query Value", "x-ms-visibility": "important" }, - "featured": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/SSLResponseResult" + }, + "x-ms-visibility": "important" + }, + "success": { "type": "boolean", - "title": "Featured", + "title": "Success", "x-ms-visibility": "important" }, + "overallTotalRecords": { + "type": "integer", + "format": "int32", + "title": "Overall Total Records", + "x-ms-visibility": "important" + } + } + }, + "SetArtifactTagResponse": { + "type": "object", + "description": "Set Artifact Tag Response" + }, + "UpdateArtifactTagResponse": { + "type": "object", + "description": "Update Artifact Tag Response" + }, + "RemoveArtifactTagResponse": { + "type": "object", + "description": "Remove Artifact Tag Response" + }, + "ArtifactTagResponse": { + "type": "object", + "properties": { "tags": { "type": "array", "title": "Tags", "items": { - "description": "Tag to tags", "type": "string", "title": "Tag", "x-ms-visibility": "important" }, "x-ms-visibility": "important" }, - "collaborators": { + "system_tags": { "type": "array", - "title": "Collaborators", + "title": "System Tags", "items": { "type": "string", - "title": "Collaborator", + "title": "System Tag", "x-ms-visibility": "important" }, "x-ms-visibility": "important" }, - "name": { + "tag_meta": { + "type": "object", + "title": "Tag Meta", + "x-ms-visibility": "important" + }, + "user_tags": { + "type": "array", + "title": "User Tags", + "items": { + "type": "string", + "title": "User Tag", + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + }, + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + } + } + }, + "TrackersSearchResponse": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/TrackersSearchResult" + }, + "x-ms-visibility": "important" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + }, + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + } + } + }, + "TrackersSearchResult": { + "type": "object", + "properties": { + "entity": { "type": "string", - "title": "Name", + "title": "Entity", "x-ms-visibility": "important" }, - "created": { + "lastSeen": { "type": "string", - "title": "Created", + "title": "Last Seen", "x-ms-visibility": "important" }, - "organization": { + "firstSeen": { "type": "string", - "title": "Organization", + "title": "First Seen", + "x-ms-visibility": "important" + } + } + }, + "ComponentInfo": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", "x-ms-visibility": "important" }, - "links": { - "type": "object", - "properties": { - "tag": { - "description": "Link to tags", - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, - "self": { - "type": "string", - "title": "Self", - "x-ms-visibility": "important" + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "version": { + "type": "string", + "title": "Version", + "x-ms-visibility": "important" + }, + "category": { + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "label": { + "type": "string", + "title": "Label", + "x-ms-visibility": "important" + }, + "hostname": { + "type": "string", + "title": "Host Name", + "x-ms-visibility": "important" + }, + "address": { + "type": "string", + "title": "Address", + "x-ms-visibility": "important" + } }, - "artifact": { - "type": "string", - "title": "Artifact", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important" }, "x-ms-visibility": "important" - }, + } + } + }, + "PairInfo": { + "type": "object", + "properties": { "success": { "type": "boolean", "title": "Success", "x-ms-visibility": "important" }, - "can_edit": { - "type": "boolean", - "title": "Can Edit", + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", "x-ms-visibility": "important" }, - "link": { - "$ref": "#/definitions/anyVariableValue" + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "cause": { + "type": "string", + "title": "Cause", + "x-ms-visibility": "important" + }, + "parent": { + "type": "string", + "title": "Parent", + "x-ms-visibility": "important" + }, + "child": { + "type": "string", + "title": "Child", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" } } }, - "SSLResponse": { + "TrackerInfo": { "type": "object", "properties": { "success": { @@ -6757,591 +8217,505 @@ "title": "Success", "x-ms-visibility": "important" }, - "overallTotalRecords": { + "totalRecords": { "type": "integer", "format": "int32", - "title": "Overall Total Records", + "title": "Total Records", "x-ms-visibility": "important" }, "results": { "type": "array", "items": { - "$ref": "#/definitions/SSLResponseResult" + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "attributeValue": { + "type": "string", + "title": "Attribute Value", + "x-ms-visibility": "important" + }, + "attributeType": { + "type": "string", + "title": "Attribute Type", + "x-ms-visibility": "important" + }, + "hostname": { + "type": "string", + "title": "Host Name", + "x-ms-visibility": "important" + }, + "address": { + "type": "string", + "title": "Address", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" }, "x-ms-visibility": "important" } } }, - "SSLResponseResult": { + "CookiesResponse": { "type": "object", "properties": { - "firstSeen": { - "type": "integer", - "format": "int32", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { + "totalRecords": { "type": "integer", "format": "int32", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "fingerprint": { - "type": "string", - "title": "Finger Print", - "x-ms-visibility": "important" - }, - "sslVersion": { - "type": "string", - "title": "SSL Version", - "x-ms-visibility": "important" - }, - "expirationDate": { - "type": "string", - "title": "Expiration Date", - "x-ms-visibility": "important" - }, - "issueDate": { - "type": "string", - "title": "Issue Date", - "x-ms-visibility": "important" - }, - "sha1": { - "type": "string", - "title": "SHA1", - "x-ms-visibility": "important" - }, - "serialNumber": { - "type": "string", - "title": "Serial Number", - "x-ms-visibility": "important" - }, - "subjectCountry": { - "type": "string", - "title": "Subject Country", - "x-ms-visibility": "important" - }, - "issuerCommonName": { - "type": "string", - "title": "Issuer Common Name", - "x-ms-visibility": "important" - }, - "issuerProvince": { - "type": "string", - "title": "Issuer Province", - "x-ms-visibility": "important" - }, - "subjectStateOrProvinceName": { - "type": "string", - "title": "Subject State Or Province Name", - "x-ms-visibility": "important" - }, - "subjectStreetAddress": { - "type": "string", - "title": "Subject Street Address", - "x-ms-visibility": "important" - }, - "issuerStateOrProvinceName": { - "type": "string", - "title": "Issuer State Or Province Name", - "x-ms-visibility": "important" - }, - "subjectSurname": { - "type": "string", - "title": "Subject Surname", - "x-ms-visibility": "important" - }, - "issuerCountry": { - "type": "string", - "title": "Issuer Country", - "x-ms-visibility": "important" - }, - "subjectLocalityName": { - "type": "string", - "title": "Subject Locality Name", - "x-ms-visibility": "important" - }, - "issuerOrganizationUnitName": { - "type": "string", - "title": "Issuer Organization Unit Name", - "x-ms-visibility": "important" - }, - "issuerOrganizationName": { - "type": "string", - "title": "Issuer Organization Name", - "x-ms-visibility": "important" - }, - "subjectEmailAddress": { - "type": "string", - "title": "Subject Email Address", - "x-ms-visibility": "important" - }, - "subjectOrganizationName": { - "type": "string", - "title": "Subject Organization Name", - "x-ms-visibility": "important" - }, - "issuerLocalityName": { - "type": "string", - "title": "Issuer Locality Name", - "x-ms-visibility": "important" - }, - "subjectCommonName": { - "type": "string", - "title": "Subject Common Name", - "x-ms-visibility": "important" - }, - "subjectProvince": { - "type": "string", - "title": "Subject Province", + "title": "Total Records", "x-ms-visibility": "important" }, - "issuerGivenName": { - "type": "string", - "title": "Issuer Given Name", + "success": { + "type": "boolean", + "title": "Success", "x-ms-visibility": "important" }, - "subjectOrganizationUnitName": { - "type": "string", - "title": "Subject Organization Unit Name", + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/CookieInfo" + }, "x-ms-visibility": "important" - }, - "issuerEmailAddress": { + } + } + }, + "CookieInfo": { + "type": "object", + "properties": { + "cookieDomain": { "type": "string", - "title": "Issuer Email Address", + "title": "Cookie Domain", "x-ms-visibility": "important" }, - "subjectGivenName": { + "cookieName": { "type": "string", - "title": "Subject Given Name", + "title": "Cookie Name", "x-ms-visibility": "important" }, - "subjectSerialNumber": { + "lastSeen": { "type": "string", - "title": "Subject Serial Number", + "title": "Last Seen", "x-ms-visibility": "important" }, - "issuerStreetAddress": { + "firstSeen": { "type": "string", - "title": "Issuer Street Address", + "title": "First Seen", "x-ms-visibility": "important" }, - "issuerSerialNumber": { + "hostname": { "type": "string", - "title": "Issuer Serial Number", + "title": "Host Name", + "x-ms-visibility": "important" + } + } + }, + "CookiesSearchResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", "x-ms-visibility": "important" }, - "issuerSurname": { - "type": "string", - "title": "Issuer Surname", + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", "x-ms-visibility": "important" }, - "subjectAlternativeNames": { + "results": { "type": "array", "items": { - "type": "string", - "title": "Subject Alternative Name", + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "hostname": { + "type": "string", + "title": "Host Name", + "x-ms-visibility": "important" + }, + "cookieName": { + "type": "string", + "title": "Cookie Name", + "x-ms-visibility": "important" + }, + "cookieDomain": { + "type": "string", + "title": "Cookie Domain", + "x-ms-visibility": "important" + } + }, "x-ms-visibility": "important" }, - "title": "Subject Alternative Names", "x-ms-visibility": "important" } } }, - "SSLSearchKeywordResponse": { + "ComponentsSearchAddressesResponse": { "type": "object", "properties": { - "queryValue": { - "type": "string", - "title": "Query Value", + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", "x-ms-visibility": "important" }, "results": { "type": "array", "items": { - "$ref": "#/definitions/SSLSearchKeywordResult" + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "version": { + "type": "string", + "title": "Version", + "x-ms-visibility": "important" + }, + "category": { + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "label": { + "type": "string", + "title": "Label", + "x-ms-visibility": "important" + }, + "address": { + "type": "string", + "title": "Address", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" }, "x-ms-visibility": "important" - }, + } + } + }, + "ComponentsSearchHostsResponse": { + "type": "object", + "properties": { "success": { "type": "boolean", "title": "Success", "x-ms-visibility": "important" + }, + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibility": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibility": "important" + }, + "version": { + "type": "string", + "title": "Version", + "x-ms-visibility": "important" + }, + "category": { + "type": "string", + "title": "Category", + "x-ms-visibility": "important" + }, + "label": { + "type": "string", + "title": "Label", + "x-ms-visibility": "important" + }, + "hostname": { + "type": "string", + "title": "Host Name", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" } } }, - "SSLSearchKeywordResult": { + "PassiveDnsSearchResponse": { "type": "object", "properties": { - "matchType": { - "type": "string", - "title": "Match Type", + "totalRecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", "x-ms-visibility": "important" }, - "fieldMatch": { + "firstSeen": { "type": "string", - "title": "Field Match", + "title": "First Seen", + "description": "First seen of passive dns search", "x-ms-visibility": "important" }, - "focusPoint": { + "lastSeen": { "type": "string", - "title": "Focus Point", + "title": "Last Seen", + "description": "Last seen of passive dns search", "x-ms-visibility": "important" - } - } - }, - "SSLHistoryResponse": { - "type": "object", - "properties": { + }, "results": { "type": "array", "items": { - "$ref": "#/definitions/SSLHistoryResult" + "$ref": "#/definitions/DnsSearchResult" }, "x-ms-visibility": "important" }, - "success": { - "type": "boolean", - "title": "Success", + "queryType": { + "type": "string", + "title": "Query Type", + "x-ms-visibility": "important" + }, + "pager": { + "type": "string", + "title": "Pager", + "x-ms-visibility": "important" + }, + "queryValue": { + "type": "string", + "title": "Query Value", "x-ms-visibility": "important" } } }, - "SSLHistoryResult": { + "DnsSearchResult": { "type": "object", "properties": { - "sha1": { + "firstSeen": { + "description": "First seen of results", "type": "string", - "title": "SHA1", + "title": "First Seen", "x-ms-visibility": "important" }, - "firstSeen": { + "resolveType": { "type": "string", - "title": "First Seen", + "title": "Resolve Type", "x-ms-visibility": "important" }, - "ipAddresses": { - "type": "array", - "title": "IP Addresses", - "items": { - "type": "string", - "title": "IP Address", - "x-ms-visibility": "important" - } + "value": { + "type": "string", + "title": "Value", + "x-ms-visibility": "important" + }, + "recordHash": { + "type": "string", + "title": "Record Hash", + "x-ms-visibility": "important" }, "lastSeen": { + "description": "Last seen of results", "type": "string", "title": "Last Seen", "x-ms-visibility": "important" - } - } - }, - "SSLSearchResponse": { - "type": "object", - "properties": { - "queryValue": { + }, + "resolve": { "type": "string", - "title": "Query Value", + "title": "Resolve", "x-ms-visibility": "important" }, - "results": { + "source": { "type": "array", "items": { - "$ref": "#/definitions/SSLResponseResult" + "type": "string", + "title": "Source Values", + "x-ms-visibility": "important" }, + "title": "Source", "x-ms-visibility": "important" }, - "success": { - "type": "boolean", - "title": "Success", + "recordType": { + "type": "string", + "title": "Record Type", "x-ms-visibility": "important" }, - "overallTotalRecords": { - "type": "integer", - "format": "int32", - "title": "Overall Total Records", + "collected": { + "type": "string", + "title": "Collected", "x-ms-visibility": "important" } } }, - "SetArtifactTagResponse": { - "type": "object", - "description": "Set Artifact Tag Response" - }, - "UpdateArtifactTagResponse": { - "type": "object", - "description": "Update Artifact Tag Response" - }, - "RemoveArtifactTagResponse": { - "type": "object", - "description": "Remove Artifact Tag Response" - }, - "ArtifactTagResponse": { + "PassiveUniqueDnsSearchResponse": { "type": "object", "properties": { - "tags": { - "type": "array", - "title": "Tags", - "items": { - "type": "string", - "title": "Tag", - "x-ms-visibility": "important" - }, + "pager": { + "type": "string", + "title": "Pager", "x-ms-visibility": "important" }, - "system_tags": { + "frequency": { "type": "array", - "title": "System Tags", "items": { - "type": "string", - "title": "System Tag", + "type": "array", + "items": {}, "x-ms-visibility": "important" }, + "title": "Frequency", "x-ms-visibility": "important" }, - "tag_meta": { - "type": "object", - "title": "Tag Meta", + "queryValue": { + "type": "string", + "title": "Query Value", "x-ms-visibility": "important" }, - "user_tags": { + "results": { "type": "array", - "title": "User Tags", "items": { "type": "string", - "title": "User Tag", + "title": "Result", "x-ms-visibility": "important" }, + "title": "Results", "x-ms-visibility": "important" }, - "success": { - "type": "boolean", - "title": "Success", + "queryType": { + "type": "string", + "title": "Query Type", + "x-ms-visibility": "important" + }, + "total": { + "type": "integer", + "format": "int32", + "title": "Total", "x-ms-visibility": "important" } } }, - "TrackersSearchResponse": { + "KeywordDnsSearchResponse": { "type": "object", "properties": { "results": { "type": "array", "items": { - "$ref": "#/definitions/TrackersSearchResult" + "$ref": "#/definitions/DnsKeywordSearchMatch" }, "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - }, - "success": { - "type": "boolean", - "title": "Success", + "queryValue": { + "type": "string", + "title": "Query Value", "x-ms-visibility": "important" } } }, - "TrackersSearchResult": { + "DnsKeywordSearchMatch": { "type": "object", "properties": { - "entity": { + "fieldMatch": { "type": "string", - "title": "Entity", + "title": "Field Match", "x-ms-visibility": "important" }, - "lastSeen": { + "focusPoint": { "type": "string", - "title": "Last Seen", + "title": "Focus Point", "x-ms-visibility": "important" }, - "firstSeen": { + "matchType": { "type": "string", - "title": "First Seen", + "title": "Match Type", "x-ms-visibility": "important" } } }, - "ComponentInfo": { + "WhoisResponse": { "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "version": { - "type": "string", - "title": "Version", - "x-ms-visibility": "important" - }, - "category": { - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "label": { - "type": "string", - "title": "Label", - "x-ms-visibility": "important" - }, - "hostname": { - "type": "string", - "title": "Host Name", - "x-ms-visibility": "important" - }, - "address": { - "type": "string", - "title": "Address", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, - "x-ms-visibility": "important" - } - } + "description": "Return the WHOIS data" }, - "PairInfo": { + "KeywordSearchResult": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", + "matchType": { + "type": "string", + "title": "Match Type", "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "fieldMatch": { + "type": "string", + "title": "Field Match", "x-ms-visibility": "important" }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "cause": { - "type": "string", - "title": "Cause", - "x-ms-visibility": "important" - }, - "parent": { - "type": "string", - "title": "Parent", - "x-ms-visibility": "important" - }, - "child": { - "type": "string", - "title": "Child", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, + "focusPoint": { + "type": "string", + "title": "Focus Point", "x-ms-visibility": "important" } } }, - "TrackerInfo": { + "WhoisKeywordSearchResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "queryValue": { + "type": "string", + "title": "Query Value", "x-ms-visibility": "important" }, "results": { "type": "array", "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "attributeValue": { - "type": "string", - "title": "Attribute Value", - "x-ms-visibility": "important" - }, - "attributeType": { - "type": "string", - "title": "Attribute Type", - "x-ms-visibility": "important" - }, - "hostname": { - "type": "string", - "title": "Host Name", - "x-ms-visibility": "important" - }, - "address": { - "type": "string", - "title": "Address", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" + "$ref": "#/definitions/KeywordSearchResult" }, "x-ms-visibility": "important" + }, + "totalrecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" } } }, - "CookiesResponse": { + "ResultListResponse": { "type": "object", "properties": { - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - }, "success": { "type": "boolean", "title": "Success", @@ -7350,541 +8724,582 @@ "results": { "type": "array", "items": { - "$ref": "#/definitions/CookieInfo" + "$ref": "#/definitions/WhoisSearchResult" }, "x-ms-visibility": "important" + }, + "totalrecords": { + "type": "integer", + "format": "int32", + "title": "Total Records", + "x-ms-visibility": "important" } } }, - "CookieInfo": { + "WhoisSearchResult": { "type": "object", "properties": { - "cookieDomain": { + "telephone": { "type": "string", - "title": "Cookie Domain", + "title": "Telephone", "x-ms-visibility": "important" }, - "cookieName": { + "nameServers": { + "type": "array", + "items": { + "type": "string", + "title": "Name Server", + "x-ms-visibility": "important" + }, + "title": "Name Servers", + "x-ms-visibility": "important" + }, + "billing": { + "type": "object", + "title": "Billing", + "x-ms-visibility": "important" + }, + "zone": { + "type": "object", + "title": "Zone", + "x-ms-visibility": "important" + }, + "admin": { + "type": "object", + "title": "Admin", + "x-ms-visibility": "important" + }, + "tech": { + "type": "object", + "title": "Tech", + "x-ms-visibility": "important" + }, + "registrant": { + "type": "object", + "title": "Registrant", + "x-ms-visibility": "important" + }, + "registryUpdatedAt": { "type": "string", - "title": "Cookie Name", + "title": "Registry Updated At", "x-ms-visibility": "important" }, - "lastSeen": { + "organization": { "type": "string", - "title": "Last Seen", + "title": "Organization", "x-ms-visibility": "important" }, - "firstSeen": { + "contactEmail": { "type": "string", - "title": "First Seen", + "title": "Contact Email", "x-ms-visibility": "important" }, - "hostname": { + "registered": { "type": "string", - "title": "Host Name", + "title": "Registered", "x-ms-visibility": "important" - } - } - }, - "CookiesSearchResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", + }, + "lastLoadedAt": { + "type": "string", + "title": "Last Loaded At", "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "expiresAt": { + "type": "string", + "title": "Expires At", "x-ms-visibility": "important" }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "hostname": { - "type": "string", - "title": "Host Name", - "x-ms-visibility": "important" - }, - "cookieName": { - "type": "string", - "title": "Cookie Name", - "x-ms-visibility": "important" - }, - "cookieDomain": { - "type": "string", - "title": "Cookie Domain", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, + "domain": { + "type": "string", + "title": "Domain", "x-ms-visibility": "important" - } - } - }, - "ComponentsSearchAddressesResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", + }, + "whoisServer": { + "type": "string", + "title": "WHOIS Server", "x-ms-visibility": "important" }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "name": { + "type": "string", + "title": "Name", "x-ms-visibility": "important" }, - "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "version": { - "type": "string", - "title": "Version", - "x-ms-visibility": "important" - }, - "category": { - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "label": { - "type": "string", - "title": "Label", - "x-ms-visibility": "important" - }, - "address": { - "type": "string", - "title": "Address", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, + "registrar": { + "type": "string", + "title": "Registrar", + "x-ms-visibility": "important" + }, + "rawText": { + "type": "string", + "title": "Raw Text", "x-ms-visibility": "important" } } }, - "ComponentsSearchHostsResponse": { + "EnrichmentBulkResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", - "x-ms-visibility": "important" - }, - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - }, "results": { - "type": "array", - "items": { - "type": "object", - "properties": { - "firstSeen": { - "type": "string", - "title": "First Seen", - "x-ms-visibility": "important" - }, - "lastSeen": { - "type": "string", - "title": "Last Seen", - "x-ms-visibility": "important" - }, - "version": { - "type": "string", - "title": "Version", - "x-ms-visibility": "important" - }, - "category": { - "type": "string", - "title": "Category", - "x-ms-visibility": "important" - }, - "label": { - "type": "string", - "title": "Label", - "x-ms-visibility": "important" - }, - "hostname": { - "type": "string", - "title": "Host Name", - "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important" - }, + "type": "object", + "title": "Results", + "x-ms-visibility": "important" + } + } + }, + "MalwareBulkSearchResults": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "title": "Success", + "x-ms-visibility": "important" + }, + "results": { + "type": "object", + "title": "Results", "x-ms-visibility": "important" } } }, - "PassiveDnsSearchResponse": { + "OsintBulkResponse": { "type": "object", "properties": { - "totalRecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", + "success": { + "type": "boolean", + "title": "Success", "x-ms-visibility": "important" }, - "firstSeen": { - "type": "string", - "title": "First Seen", - "description": "First seen of passive dns search", + "results": { + "type": "object", + "title": "Results", + "x-ms-visibility": "important" + } + } + }, + "ReputationResponse": { + "type": "object", + "properties": { + "score": { + "type": "integer", + "format": "int32", + "title": "Score", "x-ms-visibility": "important" }, - "lastSeen": { + "classification": { "type": "string", - "title": "Last Seen", - "description": "Last seen of passive dns search", + "title": "Classification", "x-ms-visibility": "important" }, - "results": { + "rules": { "type": "array", "items": { - "$ref": "#/definitions/DnsSearchResult" + "$ref": "#/definitions/ReputationRules" }, "x-ms-visibility": "important" - }, - "queryType": { + } + } + }, + "ReputationRules": { + "type": "object", + "properties": { + "name": { "type": "string", - "title": "Query Type", + "title": "Name", "x-ms-visibility": "important" }, - "pager": { + "description": { "type": "string", - "title": "Pager", + "title": "Description", "x-ms-visibility": "important" }, - "queryValue": { + "severity": { + "type": "integer", + "format": "int32", + "title": "Severity", + "x-ms-visibility": "important" + }, + "link": { "type": "string", - "title": "Query Value", + "title": "Link", "x-ms-visibility": "important" } } }, - "DnsSearchResult": { + "IntelProfilesResponse": { "type": "object", "properties": { - "firstSeen": { - "description": "First seen of results", + "id": { "type": "string", - "title": "First Seen", + "title": "Id", "x-ms-visibility": "important" }, - "resolveType": { + "title": { "type": "string", - "title": "Resolve Type", + "title": "Title", "x-ms-visibility": "important" }, - "value": { + "link": { "type": "string", - "title": "Value", + "title": "Link", "x-ms-visibility": "important" }, - "recordHash": { - "type": "string", - "title": "Record Hash", + "osintIndicatorsCount": { + "type": "integer", + "format": "int32", + "title": "Osint Indicators Count", "x-ms-visibility": "important" }, - "lastSeen": { - "description": "Last seen of results", - "type": "string", - "title": "Last Seen", + "riskIqIndicatorsCount": { + "type": "integer", + "format": "int32", + "title": "Riskiq Indicators Count", "x-ms-visibility": "important" }, - "resolve": { + "indicators": { "type": "string", - "title": "Resolve", + "title": "Indicators", "x-ms-visibility": "important" }, - "source": { + "tags": { "type": "array", "items": { - "type": "string", - "title": "Source Values", - "x-ms-visibility": "important" + "$ref": "#/definitions/IntelProfileTag" }, - "title": "Source", - "x-ms-visibility": "important" - }, - "recordType": { - "type": "string", - "title": "Record Type", "x-ms-visibility": "important" }, - "collected": { - "type": "string", - "title": "Collected", + "aliases": { + "type": "array", + "items": { + "type": "string", + "title": "Alias", + "x-ms-visbility": "important" + }, + "title": "Aliases", "x-ms-visibility": "important" } } }, - "PassiveUniqueDnsSearchResponse": { + "IntelProfilesListResponse": { "type": "object", "properties": { - "pager": { - "type": "string", - "title": "Pager", - "x-ms-visibility": "important" + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", + "x-ms-visibilty": "important" }, - "frequency": { + "results": { "type": "array", "items": { - "type": "array", - "items": {}, - "x-ms-visibility": "important" + "$ref": "#/definitions/IntelProfilesResponse" }, - "title": "Frequency", "x-ms-visibility": "important" + } + } + }, + "IntelProfileTag": { + "type": "object", + "properties": { + "label": { + "type": "string", + "title": "Label", + "x-ms-visbility": "important" }, - "queryValue": { + "countryCode": { "type": "string", - "title": "Query Value", - "x-ms-visibility": "important" + "title": "Country Code", + "x-ms-visibilty": "important" + } + } + }, + "IntelProfilesIndicatorListResponse": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", + "x-ms-visibilty": "important" }, - "results": { + "types": { "type": "array", "items": { + "description": "Types value of intel profiles indicator list", "type": "string", - "title": "Result", - "x-ms-visibility": "important" + "title": "Type", + "x-ms-visibilty": "important" }, - "title": "Results", - "x-ms-visibility": "important" - }, - "queryType": { - "type": "string", - "title": "Query Type", - "x-ms-visibility": "important" + "title": "Types", + "x-ms-visibilty": "important" }, - "total": { - "type": "integer", - "format": "int32", - "title": "Total", - "x-ms-visibility": "important" + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/IntelProfileIndicator" + }, + "x-ms-visibilty": "important" } } }, - "KeywordDnsSearchResponse": { + "IntelProfileIndicator": { "type": "object", "properties": { - "results": { + "id": { + "type": "string", + "title": "Id", + "x-ms-visibilty": "important" + }, + "profileId": { + "type": "string", + "title": "Profile Id", + "x-ms-visibilty": "important" + }, + "type": { + "description": "Type of intel profile indicator", + "type": "string", + "title": "Type", + "x-ms-visibilty": "important" + }, + "value": { + "type": "string", + "title": "Value", + "x-ms-visibilty": "important" + }, + "category": { + "type": "string", + "title": "Category", + "x-ms-visibilty": "important" + }, + "firstSeen": { + "type": "string", + "title": "First Seen", + "x-ms-visibilty": "important" + }, + "lastSeen": { + "type": "string", + "title": "Last Seen", + "x-ms-visibilty": "important" + }, + "osint": { + "type": "boolean", + "title": "Osint", + "x-ms-visibilty": "important" + }, + "osintUrl": { + "type": "string", + "title": "Osint Url", + "x-ms-visibilty": "important" + }, + "articleGuids": { "type": "array", "items": { - "$ref": "#/definitions/DnsKeywordSearchMatch" + "type": "string", + "title": "Article Guid", + "x-ms-visibilty": "important" }, - "x-ms-visibility": "important" - }, - "queryValue": { - "type": "string", - "title": "Query Value", - "x-ms-visibility": "important" + "title": "Article Guids", + "x-ms-visibilty": "important" } } }, - "DnsKeywordSearchMatch": { + "VendorInfo": { "type": "object", "properties": { - "fieldMatch": { - "type": "string", - "title": "Field Match", - "x-ms-visibility": "important" + "id": { + "type": "integer", + "title": "Id", + "format": "int32", + "x-ms-visibilty": "important" }, - "focusPoint": { + "name": { "type": "string", - "title": "Focus Point", - "x-ms-visibility": "important" + "title": "Name", + "x-ms-visibilty": "important" }, - "matchType": { - "type": "string", - "title": "Match Type", - "x-ms-visibility": "important" + "priorities": { + "type": "object", + "properties": { + "high": { + "type": "object", + "properties": { + "observationCount": { + "description": "High prioirity observation count", + "type": "integer", + "format": "int32", + "title": "Observation Count", + "x-ms-visibilty": "important" + }, + "link": { + "description": "High priority link", + "title": "Link", + "type": "string", + "x-ms-visibilty": "important" + } + }, + "x-ms-visibilty": "important" + }, + "medium": { + "type": "object", + "properties": { + "observationCount": { + "description": "Medium prioirity observation count", + "type": "integer", + "format": "int32", + "title": "Observation Count", + "x-ms-visibilty": "important" + }, + "link": { + "description": "Medium priority link", + "title": "Link", + "type": "string", + "x-ms-visibilty": "important" + } + }, + "x-ms-visibilty": "important" + }, + "low": { + "type": "object", + "properties": { + "observationCount": { + "description": "Low prioirity observation count", + "type": "integer", + "format": "int32", + "title": "Observation Count", + "x-ms-visibilty": "important" + }, + "link": { + "description": "Low priority link", + "title": "Link", + "type": "string", + "x-ms-visibilty": "important" + } + }, + "x-ms-visibilty": "important" + } + } } } }, - "WhoisResponse": { - "type": "object", - "description": "Return the WHOIS data" - }, - "KeywordSearchResult": { + "AttackSurfaceResponse": { "type": "object", "properties": { - "matchType": { - "type": "string", - "title": "Match Type", + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", "x-ms-visibility": "important" }, - "fieldMatch": { - "type": "string", - "title": "Field Match", + "totalPages": { + "type": "integer", + "format": "int32", + "title": "Total Pages", "x-ms-visibility": "important" }, - "focusPoint": { - "type": "string", - "title": "Focus Point", - "x-ms-visibility": "important" - } - } - }, - "WhoisKeywordSearchResponse": { - "type": "object", - "properties": { - "queryValue": { + "nextPage": { "type": "string", - "title": "Query Value", + "title": "NextPage", "x-ms-visibility": "important" }, - "results": { + "vendors": { "type": "array", "items": { - "$ref": "#/definitions/KeywordSearchResult" + "$ref": "#/definitions/VendorInfo" }, "x-ms-visibility": "important" - }, - "totalrecords": { - "type": "integer", - "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" } } }, - "ResultListResponse": { + "AttackSurfacePriorityResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", + "activeInsightCount": { + "type": "integer", + "format": "int32", + "title": "Active Insight Count", "x-ms-visibility": "important" }, - "results": { - "type": "array", - "items": { - "$ref": "#/definitions/WhoisSearchResult" - }, + "totalInsightCount": { + "type": "integer", + "format": "int32", + "title": "Total Insight Count", "x-ms-visibility": "important" }, - "totalrecords": { + "totalObservations": { "type": "integer", "format": "int32", - "title": "Total Records", - "x-ms-visibility": "important" - } - } - }, - "WhoisSearchResult": { - "type": "object", - "properties": { - "telephone": { - "type": "string", - "title": "Telephone", + "title": "Total Observations", "x-ms-visibility": "important" }, - "nameServers": { + "insights": { "type": "array", "items": { - "type": "string", - "title": "Name Server", - "x-ms-visibility": "important" + "$ref": "#/definitions/InsightInfo" }, - "title": "Name Servers", - "x-ms-visibility": "important" - }, - "billing": { - "type": "object", - "title": "Billing", - "x-ms-visibility": "important" - }, - "zone": { - "type": "object", - "title": "Zone", - "x-ms-visibility": "important" - }, - "admin": { - "type": "object", - "title": "Admin", - "x-ms-visibility": "important" - }, - "tech": { - "type": "object", - "title": "Tech", "x-ms-visibility": "important" - }, - "registrant": { - "type": "object", - "title": "Registrant", - "x-ms-visibility": "important" - }, - "registryUpdatedAt": { + } + } + }, + "InsightInfo": { + "type": "object", + "properties": { + "name": { "type": "string", - "title": "Registry Updated At", + "title": "Name", "x-ms-visibility": "important" }, - "organization": { + "description": { "type": "string", - "title": "Organization", + "title": "Description", "x-ms-visibility": "important" }, - "contactEmail": { - "type": "string", - "title": "Contact Email", - "x-ms-visibility": "important" + "observationCount": { + "type": "integer", + "format": "int32", + "title": "Observation Count", + "x-ms-visibilty": "important" }, - "registered": { + "link": { + "title": "Link", "type": "string", - "title": "Registered", + "x-ms-visibilty": "important" + } + } + }, + "AttackSurfaceInsightResponse": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", "x-ms-visibility": "important" }, - "lastLoadedAt": { - "type": "string", - "title": "Last Loaded At", + "totalPages": { + "type": "integer", + "format": "int32", + "title": "Total Pages", "x-ms-visibility": "important" }, - "expiresAt": { + "nextPage": { "type": "string", - "title": "Expires At", + "title": "Next Page", "x-ms-visibility": "important" }, - "domain": { - "type": "string", - "title": "Domain", + "assets": { + "type": "array", + "items": { + "$ref": "#/definitions/AssetInfo" + }, "x-ms-visibility": "important" - }, - "whoisServer": { + } + } + }, + "AssetInfo": { + "type": "object", + "properties": { + "type": { "type": "string", - "title": "WHOIS Server", + "title": "Type", "x-ms-visibility": "important" }, "name": { @@ -7892,82 +9307,118 @@ "title": "Name", "x-ms-visibility": "important" }, - "registrar": { + "firstSeen": { "type": "string", - "title": "Registrar", + "title": "First Seen", "x-ms-visibility": "important" }, - "rawText": { + "lastSeen": { "type": "string", - "title": "Raw Text", + "title": "Last Seen", "x-ms-visibility": "important" } } }, - "EnrichmentBulkResponse": { + "AttackSurfaceCveResponse": { "type": "object", "properties": { - "results": { - "type": "object", - "title": "Results", + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", "x-ms-visibility": "important" - } - } - }, - "MalwareBulkSearchResults": { - "type": "object", - "properties": { - "success": { - "type": "boolean", - "title": "Success", + }, + "totalPages": { + "type": "integer", + "format": "int32", + "title": "Total Pages", "x-ms-visibility": "important" }, - "results": { - "type": "object", - "title": "Results", + "nextPage": { + "type": "string", + "title": "Next Page", + "x-ms-visibility": "important" + }, + "cves": { + "type": "array", + "items": { + "$ref": "#/definitions/CveInfo" + }, "x-ms-visibility": "important" } } }, - "OsintBulkResponse": { + "AttackSurfaceCveObservationsResponse": { "type": "object", "properties": { - "success": { - "type": "boolean", - "title": "Success", + "totalCount": { + "type": "integer", + "format": "int32", + "title": "Total Count", "x-ms-visibility": "important" }, - "results": { - "type": "object", - "title": "Results", + "totalPages": { + "type": "integer", + "format": "int32", + "title": "Total Pages", + "x-ms-visibility": "important" + }, + "nextPage": { + "type": "string", + "title": "Next Page", + "x-ms-visibility": "important" + }, + "cveId": { + "type": "string", + "title": "Cve Id", + "x-ms-visibility": "important" + }, + "cwes": { + "type": "array", + "items": { + "$ref": "#/definitions/CweInfo" + }, + "x-ms-visibility": "important" + }, + "assets": { + "type": "array", + "items": { + "$ref": "#/definitions/AssetInfo" + }, "x-ms-visibility": "important" } } }, - "ReputationResponse": { + "VulnerableComponentResponse": { "type": "object", "properties": { - "score": { + "totalCount": { "type": "integer", "format": "int32", - "title": "Score", + "title": "Total Count", "x-ms-visibility": "important" }, - "classification": { + "totalPages": { + "type": "integer", + "format": "int32", + "title": "Total Pages", + "x-ms-visibility": "important" + }, + "nextPage": { "type": "string", - "title": "Classification", + "title": "Next Page", "x-ms-visibility": "important" }, - "rules": { + "vulnerableComponents": { "type": "array", "items": { - "$ref": "#/definitions/ReputationRules" + "$ref": "#/definitions/VulnerableComponent" }, "x-ms-visibility": "important" } } }, - "ReputationRules": { + "VulnerableComponent": { "type": "object", "properties": { "name": { @@ -7975,20 +9426,63 @@ "title": "Name", "x-ms-visibility": "important" }, - "description": { + "type": { "type": "string", - "title": "Description", + "title": "Type", "x-ms-visibility": "important" }, "severity": { + "type": "string", + "title": "Severity", + "x-ms-visibility": "important" + }, + "count": { "type": "integer", "format": "int32", - "title": "Severity", + "title": "Count", + "x-ms-visibility": "important" + } + } + }, + "CveInfo": { + "type": "object", + "properties": { + "cveId": { + "type": "string", + "title": "Cve Id", "x-ms-visibility": "important" }, - "link": { + "priorityScore": { + "type": "number", + "title": "Priority Score", + "x-ms-visibilty": "important" + }, + "observationCount": { + "type": "integer", + "format": "int32", + "title": "Observation Count", + "x-ms-visibilty": "important" + }, + "cveLink": { "type": "string", - "title": "Link", + "title": "Cve Link", + "x-ms-visibility": "important" + }, + "cwes": { + "type": "array", + "items": { + "$ref": "#/definitions/CweInfo" + }, + "x-ms-visibility": "important" + } + } + }, + "CweInfo": { + "type": "object", + "properties": { + "cweId": { + "type": "string", + "title": "Cwe Id", "x-ms-visibility": "important" } } diff --git a/certified-connectors/RiskIQPassiveTotal/readme.md b/certified-connectors/RiskIQPassiveTotal/readme.md index 01a3013819..451e723d73 100644 --- a/certified-connectors/RiskIQPassiveTotal/readme.md +++ b/certified-connectors/RiskIQPassiveTotal/readme.md @@ -1,6 +1,6 @@ -# RiskIQ PassiveTotal +# RiskIQ Illuminate -RiskIQ PassiveTotal aggregates data from the whole internet, absorbing intelligence to identify threats and attacker infrastructure, and leverages machine learning to scale threat hunting and response. With PassiveTotal, you get context on who is attacking you, their tools and systems, and indicators of compromise outside the firewall—enterprise and third party. +RiskIQ Illuminate® reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place. ## Pre-requisites @@ -147,6 +147,25 @@ The connector supports the following operations: ### Reputation * `Get reputation` : Retrieves reputation for given query. +### Attack Surface Intelligence +* `Get attack surface` : Finds the Attack Surface information of the given account. +* `Get attack surface priority detail by level` : Finds the Attack Surface Priority Information given the level (low, medium, high) associated to the given account. +* `Get attack surface insight by insight Id` : Finds the Attack Surface Insight Information given the insight ID for the given account +* `Get attack surface third party by vendor Id` : Finds vendors associated with the given vendor id for given account account +* `Get all third party vendors` : Finds all vendors associated with the given account +* `Get attack surface third party priority detail by vendor Id and level` : Finds vendors associated with the given vendor id and priority level for given account account +* `Get attack surface third party insight by vendor Id and insight Id` : Finds vendors associated with the given vendor id and insight ID for given account account +* `Get attack surface vulnerable components` : Finds the Attack Surface Vulnerable Components for the primary vendor. +* `Get attack surface third party vulnerable components` : Finds the Attack Surface Third-Party Vulnerable Components given the vendor ID. +* `Get attack surface vulnerable information` : Finds the Attack Surface Vulnerability Information for the primary vendor for the given account. +* `Get attack surface third party vulnerabilities` : Finds the Attack Surface Third-Party Vulnerability Information given the vendor ID. +* `Get attack surface vulnerability observations` : Finds the Attack Surface Vulnerability Observations for the primary vendor given a CVE. +* `Get attack surface third party vulnerability observations` : Finds the Attack Surface Third-Party Vulnerability Observations given the vendor ID and CVE. +### Intel Profiles +* `Get profile details` : Retrieves the details for the given profile. +* `Get all indicators for given profile` : Retrieves the indicators for the given profile id. +* `Get all profiles` : Retrieves all profiles. +* `Get all profiles by indicator` : Retrieves all profiles containing the given indicator. ## How to get credentials From 1e375da69bcecf4ccbcf24af69b4df7597f874a2 Mon Sep 17 00:00:00 2001 From: Sam Kalum <32343294+skalum@users.noreply.github.com> Date: Mon, 4 Oct 2021 14:40:13 -0400 Subject: [PATCH 032/219] All user-data params are arrays (#1154) * fix user-data array in POST Invite * all user-data params are arrays --- .../envoy/apiDefinition.swagger.json | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/certified-connectors/envoy/apiDefinition.swagger.json b/certified-connectors/envoy/apiDefinition.swagger.json index 9abbd7da89..7e4ce93457 100644 --- a/certified-connectors/envoy/apiDefinition.swagger.json +++ b/certified-connectors/envoy/apiDefinition.swagger.json @@ -2010,27 +2010,18 @@ "description": "private-notes" }, "user-data": { - "type": "object", - "properties": { - "Host": { - "type": "string", - "description": "Host" - }, - "Purpose of visit": { - "type": "string", - "description": "Purpose of visit" - }, - "multipleNDAs": { - "type": "string", - "description": "multipleNDAs" - }, - "Do you have a fever?": { - "type": "string", - "description": "Do you have a fever?" - }, - "Your Phone Number": { - "type": "string", - "description": "Your Phone Number" + "type": "array", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "field" + }, + "value": { + "type": "string", + "description": "value" + } } }, "description": "user-data" From 87e912761ba250b10a12b52552286fdc9f23ebf7 Mon Sep 17 00:00:00 2001 From: geekoid69 Date: Mon, 4 Oct 2021 12:49:21 -0600 Subject: [PATCH 033/219] Starting the Certification Process (#1153) * Added AikiDocs Plug-in Added AikiDocs Plug-in for the initial certification process * Fixed Readme.md Clarification of service descriptions was changed * Adding tag for submission Added certified-connector tag for submission * Updates to wording * Fixes to readme.md text * Added Test harness Link --- certified-connectors/AikiDocs/Readme.md | 44 + .../AikiDocs/apiDefinition.swagger.json | 784 ++++++++++++++++++ .../AikiDocs/apiProperties.json | 23 + 3 files changed, 851 insertions(+) create mode 100644 certified-connectors/AikiDocs/Readme.md create mode 100644 certified-connectors/AikiDocs/apiDefinition.swagger.json create mode 100644 certified-connectors/AikiDocs/apiProperties.json diff --git a/certified-connectors/AikiDocs/Readme.md b/certified-connectors/AikiDocs/Readme.md new file mode 100644 index 0000000000..61f61a896e --- /dev/null +++ b/certified-connectors/AikiDocs/Readme.md @@ -0,0 +1,44 @@ + +## AikiDocs for Power Automate +[AikiDocs for Power Automate](https://www.aiki-mind.com/) - Enhance your Microsoft Power Automate solutions with our Aiki-Doc capabilities, providing advanced document processing with features that allow you do automate document processing usually performed manually. In addition you can also access our REST API for your custom applications, taking advantage of the capabilities of the Aiki-Docs. + +## Setup +- [Register](https://www.aiki-mind.com/Account/Register) for an Aiki-Mind Account +- [Request A Trial Key](https://www.aiki-mind.com/Account/TrialRequest) to manage your existing AikiMind Subscription +- [Purchase](https://www.aiki-mind.com/Products) a License Key +- [Create](https://flow.microsoft.com) a Flow using the AikiDocs Connector in Microsoft Power Automate + +## Test Harness +You can utilize the [test harness](https://www.aiki-mind.com/APIManagement/Harness) from your account to understand all the services and test them with your documents. + +## Supported Operations + +### Append Word Docs +Append word documents together to generate one new combined document + +### Insert Word Documents +Insert one or more Word documents into a master document at a bookmark of your choice + +### Apply Styles To Word Document +Apply the styles from one document to another word document + +### Extract Content from Word +Extract content from a word document into a new empty document + +### Extract Content by Title and/or Style from Word +Extract Content by text and/or the style of that text (For example Heading 1 with a title of "Introduction" extracts the section with that title and style) + +### Extract Content by Style Only from Word +Extract Content of a document into several sub documents with subdividing by Style types. (For example Heading 1 could break the document in sub documents at the heading 1 level) + +### Excel Get Cell +Get the value or forumla from a cell by name + +### Exccel Get Cells +Get the value or forumla from a list of cells by name + +### Set Cell +Set the value or formula of a cell by name + +### Set Cells +Set the value or formula of a list of cells by name diff --git a/certified-connectors/AikiDocs/apiDefinition.swagger.json b/certified-connectors/AikiDocs/apiDefinition.swagger.json new file mode 100644 index 0000000000..9d55616a3d --- /dev/null +++ b/certified-connectors/AikiDocs/apiDefinition.swagger.json @@ -0,0 +1,784 @@ +{ + "swagger": "2.0", + "info": { + "title": "AikiDocs", + "description": "AikiDocs for Office Documents enables document changes that would otherwise require human interaction. Merging, Manipulating, extracting content to and from office documents can be integrated into your solutions.", + "termsOfService": "https://www.aiki-mind.com/terms", + "contact": { + "name": "Aiki-Mind Support", + "url": "https://www.aiki-mind.com/Account/Support", + "email": "support@aiki-mind.com" + }, + "version": "v1" + }, + "host": "api.aiki-mind.com", + "x-ms-connector-metadata": [ + { + "propertyName": "WebSite", + "propertyValue": "https://www.aiki-mind.com" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.aiki-mind.com/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Productivity" + } + ], + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/api/ExcelModifyDocument/cell": { + "post": { + "tags": [ + "ExcelModifyDocument" + ], + "summary": "Excel - Set Cell Value or Formula", + "description": "Excel - Set Cell Value or Formula", + "operationId": "ExcelSetCell", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ModifySpreadSheetCellRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ModifySpreadSheetCellResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "string" + } + } + } + } + }, + "/api/ExcelModifyDocument/cells": { + "post": { + "tags": [ + "ExcelModifyDocument" + ], + "summary": "Excel - Set Cells Value or Formula", + "description": "Excel - Set Cells Value or Formula", + "operationId": "ExcelSetCells", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ModifySpreadSheetCellsRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ModifySpreadSheetCellResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "string" + } + } + } + } + }, + "/api/ExcelReadDocument/cell": { + "post": { + "tags": [ + "ExcelReadDocument" + ], + "summary": "Excel - Get Cell Value or Formula", + "description": "Excel - Get Cell Value or Formula", + "operationId": "ExcelGetCell", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/modifySpreadSheetCellRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ReadSpreadSheetCellResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "string" + } + } + } + } + }, + "/api/ExcelReadDocument/cells": { + "post": { + "tags": [ + "ExcelReadDocument" + ], + "summary": "Excel - Get Cells Value or Formula", + "description": "Excel - Get Cells Value or Formula", + "operationId": "ExcelGetCells", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ReadSpreadSheetCellsRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ReadSpreadSheetCellsResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "type": "string" + } + } + } + } + }, + "/good": { + "post": { + "tags": [ + "ValidateConnection" + ], + "summary": "Validate the connection and API Key are working", + "description": "Validate the connection and API Key are working", + "operationId": "ValidateConnectGoodService", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ValidateConnectionRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ValidateConnectionResponse" + } + } + } + } + }, + "/bad": { + "post": { + "tags": [ + "ValidateConnection" + ], + "summary": "Validate the connection and API Key are working but with a failure response", + "description": "Validate the connection and API Key are working but with a failure response", + "operationId": "ValidateConnectBadService", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ValidateConnectionRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ValidateConnectionResponse" + } + } + } + } + }, + "/api/WordAppendDocuments": { + "post": { + "tags": [ + "WordAppendDocuments" + ], + "summary": "Word - Append Multiple Word Documents Together", + "description": "Word - Append multiple Word documents together returning a single document which represents all the documents appended together", + "operationId": "WordAppendDocuments", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/AppendDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AppendDocumentResponse" + } + } + } + } + }, + "/api/WordExtractContent/ByHeading": { + "post": { + "tags": [ + "WordExtractContent" + ], + "summary": "Word - Extract Content By Heading", + "description": "Word - Extract Content By Heading", + "operationId": "WordExtractContentByHeading", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ExtractContentByHeadingRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ExtractContentByHeadingResponse" + } + } + } + } + }, + "/api/WordExtractContent/ByTitle": { + "post": { + "tags": [ + "WordExtractContent" + ], + "summary": "Word - Extract Content By Title", + "description": "Word - Extract Content By Title", + "operationId": "WordExtractContentByTitle", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ExtractSectionByTitleRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ExtractSectionByTitleResponse" + } + } + } + } + }, + "/api/WordExtractContent/ByBookMarks": { + "post": { + "tags": [ + "WordExtractContent" + ], + "summary": "Word - Extract Content By Bookmarks", + "description": "Word - Extract Content By Bookmarks", + "operationId": "WordExtractContentByBookmarks", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ExtractContentByBookMarksRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ExtractContentByBookMarksResponse" + } + } + } + } + }, + "/api/WordInsertDocuments": { + "post": { + "tags": [ + "WordInsertDocuments" + ], + "summary": "Word - Insert Documents into a document at bookmark", + "description": "Word - Insert Documents into a document at bookmark", + "operationId": "WordInsertDocuments", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/InsertDocumentRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/InsertDocumentResponse" + } + } + } + } + }, + "/api/WordStyles/ApplyStyleToDocument": { + "post": { + "tags": [ + "WordStyles" + ], + "summary": "Word - Apply the style to a document from a source document", + "description": "Word - Apply the style to a document from a source document", + "operationId": "WordApplyStyleToDocument", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/ApplyStylesRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ApplyStylesResponse" + } + } + } + } + } + }, + "definitions": { + "AddressedSpreadSheetCell": { + "type": "object", + "properties": { + "displayValue": { + "type": "string" + }, + "formulaValue": { + "type": "string" + }, + "cellLocation": { + "$ref": "#/definitions/SpreadSheetCellLocation" + } + } + }, + "AppendDocumentRequest": { + "type": "object", + "properties": { + "appendDocumentList": { + "type": "array", + "items": { + "format": "byte", + "type": "string" + } + } + } + }, + "AppendDocumentResponse": { + "type": "object", + "properties": { + "resultDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "count": { + "format": "int32", + "type": "integer" + } + } + }, + "ApplyStylesRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "destinationDocument": { + "$ref": "#/definitions/WordDocumentParameter" + } + } + }, + "ApplyStylesResponse": { + "type": "object", + "properties": { + "resultDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "count": { + "format": "int32", + "type": "integer" + } + } + }, + "ExcelDocumentParameter": { + "type": "object", + "properties": { + "documentContent": { + "format": "byte", + "type": "string" + }, + "documentName": { + "type": "string" + } + } + }, + "ExtractContentByBookMarksRequest": { + "type": "object", + "properties": { + "startBookMark": { + "type": "string" + }, + "endBookMark": { + "type": "string" + }, + "sourceDocument": { + "$ref": "#/definitions/WordDocumentParameter" + } + } + }, + "ExtractContentByBookMarksResponse": { + "type": "object", + "properties": { + "resultDocument": { + "$ref": "#/definitions/WordDocumentParameter" + } + } + }, + "ExtractContentByHeadingRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "headingStyleName": { + "type": "string" + } + } + }, + "ExtractContentByHeadingResponse": { + "type": "object", + "properties": { + "resultDocuments": { + "type": "array", + "items": { + "$ref": "#/definitions/WordDocumentParameter" + } + } + } + }, + "ExtractSectionByTitleRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "headingText": { + "type": "string" + }, + "headingStyleName": { + "type": "string" + }, + "headingEscapeStyleNames": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ExtractSectionByTitleResponse": { + "type": "object", + "properties": { + "resultDocument": { + "$ref": "#/definitions/WordDocumentParameter" + } + } + }, + "InsertDocumentRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "insertDocumentList": { + "type": "array", + "items": { + "format": "byte", + "type": "string" + } + }, + "bookmarkName": { + "type": "string" + }, + "deleteBookmark": { + "type": "boolean" + } + } + }, + "InsertDocumentResponse": { + "type": "object", + "properties": { + "resultDocument": { + "$ref": "#/definitions/WordDocumentParameter" + }, + "count": { + "format": "int32", + "type": "integer" + } + } + }, + "modifySpreadSheetCellRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/ExcelDocumentParameter" + }, + "cellLocation": { + "$ref": "#/definitions/SpreadSheetCellLocation" + } + } + }, + "ModifySpreadSheetCellRequest": { + "type": "object", + "properties": { + "cell": { + "$ref": "#/definitions/AddressedSpreadSheetCell" + }, + "sourceDocument": { + "$ref": "#/definitions/ExcelDocumentParameter" + } + } + }, + "ModifySpreadSheetCellResponse": { + "type": "object", + "properties": { + "cell": { + "$ref": "#/definitions/AddressedSpreadSheetCell" + }, + "resultDocument": { + "$ref": "#/definitions/ExcelDocumentParameter" + } + } + }, + "ModifySpreadSheetCellsRequest": { + "type": "object", + "properties": { + "cells": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressedSpreadSheetCell" + } + }, + "sourceDocument": { + "$ref": "#/definitions/ExcelDocumentParameter" + } + } + }, + "ReadSpreadSheetCellResponse": { + "type": "object", + "properties": { + "cell": { + "$ref": "#/definitions/AddressedSpreadSheetCell" + } + } + }, + "ReadSpreadSheetCellsRequest": { + "type": "object", + "properties": { + "sourceDocument": { + "$ref": "#/definitions/ExcelDocumentParameter" + }, + "cellLocations": { + "type": "array", + "items": { + "$ref": "#/definitions/SpreadSheetCellLocation" + } + } + } + }, + "ReadSpreadSheetCellsResponse": { + "type": "object", + "properties": { + "cells": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressedSpreadSheetCell" + } + } + } + }, + "SpreadSheetCellLocation": { + "type": "object", + "properties": { + "sheetName": { + "type": "string" + }, + "cellAddress": { + "type": "string" + } + } + }, + "ValidateConnectionRequest": { + "type": "object", + "properties": { + "message": { + "type": "string" + } + } + }, + "ValidateConnectionResponse": { + "type": "object", + "properties": { + "resultMessage": { + "type": "string" + } + } + }, + "WordDocumentParameter": { + "type": "object", + "properties": { + "documentContent": { + "format": "byte", + "type": "string" + }, + "documentName": { + "type": "string" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "ApiKey": { + "type": "apiKey", + "name": "ApiKey", + "in": "header", + "description": "Api Key required to call services" + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/AikiDocs/apiProperties.json b/certified-connectors/AikiDocs/apiProperties.json new file mode 100644 index 0000000000..834ccd9350 --- /dev/null +++ b/certified-connectors/AikiDocs/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api.", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#bd549f", + "capabilities": [], + "publisher": "Aiki-Mind Services Inc.", + "stackOwner": "Aiki-Mind Services Inc." + } +} \ No newline at end of file From 52c0d3037a6628bfcda4d422ab0a7012e635a583 Mon Sep 17 00:00:00 2001 From: Isak Hassbring Date: Mon, 4 Oct 2021 21:24:59 +0200 Subject: [PATCH 034/219] Minor adjustment for peltarion-v.1.1 on dev branch (#1147) --- .../Peltarion/apiDefinition.swagger.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/certified-connectors/Peltarion/apiDefinition.swagger.json b/certified-connectors/Peltarion/apiDefinition.swagger.json index 2f305557a4..0de92f68f4 100644 --- a/certified-connectors/Peltarion/apiDefinition.swagger.json +++ b/certified-connectors/Peltarion/apiDefinition.swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Peltarion", - "description": "The simplest and fastest way to use deep learning. Add the connector, build your AI model and connect by adding your credentials.", + "description": "A powerful yet simple and fast way to use deep learning. Add the connector, build your AI model and connect by adding your credentials.", "termsOfService" : "http://peltarion.com/terms/", "contact": { "name": "Peltarion", @@ -16,14 +16,14 @@ "schemes": [ "https" ], - "consumes": ["application/json"], - "produces": ["application/json"], + "consumes": [], + "produces": [], "paths": { "/api/forwardcall": { - "get": { + "post": { "responses": { "200": { - "description": "default", + "description": "Successful response", "schema": { "type": "object", "properties": { @@ -61,10 +61,10 @@ } }, "/api/forwardcalltextsim": { - "get": { + "post": { "responses": { "200": { - "description": "default", + "description": "Successful response", "schema": { "type": "object", "properties": { From 9ed0df83e1eede79dae0030548b14824c46d7e78 Mon Sep 17 00:00:00 2001 From: paulculmsee Date: Tue, 5 Oct 2021 09:49:06 +0800 Subject: [PATCH 035/219] Jira Search (Independent Publisher) (#1097) * Initial commit * Improved descriptions on output schema * Fixed indents * Updated icon color * Update readme.md make it clearer about using the hostname parameter * Update readme.md * Updated readme * Updated definition as per PR feedback #1045 * Updated readme Added disclaimer that this is Jira cloud only, not on-premises * Improved descriptions Co-authored-by: Mahbub Murshed --- .../JiraSearch/apiDefinition.swagger.json | 38 +++++++++---------- .../JiraSearch/readme.md | 4 ++ 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/independent-publisher-connectors/JiraSearch/apiDefinition.swagger.json b/independent-publisher-connectors/JiraSearch/apiDefinition.swagger.json index c88e7fd837..bb9cd66d3f 100644 --- a/independent-publisher-connectors/JiraSearch/apiDefinition.swagger.json +++ b/independent-publisher-connectors/JiraSearch/apiDefinition.swagger.json @@ -64,7 +64,7 @@ }, "key": { "type": "string", - "description": "A unique identifier for this issue, in the example above: ANGRY-304. (The characters to the left of the hyphen represent the project to which this issue belongs.)" + "description": "A unique identifier for this issue, eg: ANGRY-304. (The characters to the left of the hyphen represent the project to which this issue belongs.)" }, "fields": { "type": "object", @@ -103,11 +103,11 @@ }, "id": { "type": "string", - "description": "Issue Type id" + "description": "Issue Type Id" }, "description": { "type": "string", - "description": "Issue Type description" + "description": "Issue Type Description" }, "iconUrl": { "type": "string", @@ -119,7 +119,7 @@ }, "subtask": { "type": "boolean", - "description": "Issue Type subtask" + "description": "Issue Type Subtask" }, "avatarId": { "type": "integer", @@ -132,7 +132,7 @@ "description": "Hierarchy Level" } }, - "description": "Issue Yype" + "description": "Issue Type Description" }, "timetracking": { "type": "object", @@ -162,7 +162,7 @@ "components": { "type": "array", "items": {}, - "description": "Components" + "description": "Project component(s) to which this issue relates." }, "reporter": { "type": "object", @@ -175,12 +175,12 @@ "progress": { "type": "integer", "format": "int32", - "description": "progress" + "description": "Issue Progress" }, "total": { "type": "integer", "format": "int32", - "description": "total" + "description": "Issue Progress Total" } }, "description": "Time Spent from each of the individual work logs for this issue." @@ -190,7 +190,7 @@ "properties": { "self": { "type": "string", - "description": "self" + "description": "Self" }, "id": { "type": "string", @@ -202,11 +202,11 @@ }, "name": { "type": "string", - "description": "name" + "description": "Project Name" }, "projectTypeKey": { "type": "string", - "description": "projectTypeKey" + "description": "Project Type Key" }, "simplified": { "type": "boolean", @@ -218,7 +218,7 @@ "watches": { "type": "object", "properties": {}, - "description": "Watches" + "description": "Nnumber shown indicates how many people are watching this issue." }, "updated": { "type": "string", @@ -235,7 +235,7 @@ "comment": { "type": "object", "properties": {}, - "description": "Comment" + "description": "Issue Comment" }, "statuscategorychangedate": { "type": "string", @@ -251,11 +251,11 @@ "properties": { "name": { "type": "string", - "description": "name" + "description": "Priority Name" }, "id": { "type": "string", - "description": "id" + "description": "Priority Id" } }, "description": "The importance of the issue in relation to other issues." @@ -263,7 +263,7 @@ "versions": { "type": "array", "items": {}, - "description": "versions" + "description": "Issue Versions" }, "aggregateprogress": { "type": "object", @@ -271,12 +271,12 @@ "progress": { "type": "integer", "format": "int32", - "description": "progress" + "description": "Aggregate Progress" }, "total": { "type": "integer", "format": "int32", - "description": "total" + "description": "Total Progress" } }, "description": "The sum of the Time Spent from each of the individual work logs for this issue." @@ -284,7 +284,7 @@ "issuerestriction": { "type": "object", "properties": {}, - "description": "issuerestriction" + "description": "Issue Restriction" }, "created": { "type": "string", diff --git a/independent-publisher-connectors/JiraSearch/readme.md b/independent-publisher-connectors/JiraSearch/readme.md index 6857ec16ae..41039132b0 100644 --- a/independent-publisher-connectors/JiraSearch/readme.md +++ b/independent-publisher-connectors/JiraSearch/readme.md @@ -15,6 +15,10 @@ Search Jira using JQL language This connector uses basic auth. Contact your JIRA administrator to get a suitable account set up. ​ ## Known Issues and Limitations +Pay attention to the hostname parameter. You just specify the name of your Jira instance (ie mycompany). You do NOT use a fully qualified domain name (eg mycompany.atlassian.net) + +This connector has only been tested and used for Jira Cloud. It is not designed to be used for on-premises deployments + All listed issues with the Microsoft supplied Jira connector apply. Consult the Known Issues section at https://docs.microsoft.com/en-us/connectors/jira/ ## Frequently Asked Questions From de97e76dd13342ef499f1e97b1b121d23c60d1a5 Mon Sep 17 00:00:00 2001 From: Joep Killaars Date: Wed, 6 Oct 2021 01:51:16 +0200 Subject: [PATCH 036/219] Updated connector. (#1155) --- .../apiDefinition.swagger.json | 205 ++++++++++++++---- 1 file changed, 157 insertions(+), 48 deletions(-) diff --git a/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json b/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json index f141618562..8b852a51f6 100644 --- a/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json +++ b/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json @@ -192,8 +192,8 @@ "items": { "type": "integer", "format": "int32", - "title": "Content Id Item", - "description": "The id of a content entity linked to the root business entity." + "title": "Content Item Id", + "description": "The id of a content item linked to the root business entity." }, "description": "A list of content items linked to the root business entity.", "title": "Content Item Id's" @@ -302,65 +302,70 @@ "id": { "type": "integer", "format": "int32", - "description": "The content entity id.", + "description": "The content item id.", "title": "Id" }, "title": { "type": "string", - "description": "The title of the content entity.", + "description": "The title of the content item.", "title": "Title" }, "fileName": { "type": "string", - "description": "The filename of the content entity.", + "description": "The filename of the content item.", "title": "Filename" }, "fileSize": { "type": "integer", "format": "int32", - "description": "The file size of the content entity.", + "description": "The file size of the content item.", "title": "Filesize" }, "fileType": { "type": "string", - "description": "The file type of the content entity.", + "description": "The file type of the content item.", "title": "File Type" }, + "fileTypeDisplayName": { + "type": "string", + "description": "The friendly name of the file type of the content item.", + "title": "File Type Display Name" + }, "fileUrl": { "type": "string", - "description": "The file url of the content entity.", + "description": "The file url of the content item.", "title": "File Url" }, "fileVersion": { "type": "string", - "description": "The file version of the content entity.", + "description": "The file version of the content item.", "title": "File Version" }, "categoryId": { "type": "integer", "format": "int32", - "description": "The category id of the content entity", + "description": "The category id of the content item", "title": "Category Id" }, "category": { "type": "string", - "description": "The category name of the content entity.", + "description": "The category name of the content item.", "title": "Category Name" }, "storageProviderId": { "type": "integer", "format": "int32", - "description": "The id of the storage provider on which the content entity is stored.", + "description": "The id of the storage provider on which the content item is stored.", "title": "Storage Provider Id" }, "storageProviderName": { "type": "string", - "description": "The name of the storage provider on which the content entity is stored.", + "description": "The name of the storage provider on which the content item is stored.", "title": "Storage Provider Name" }, "storageProviderReferenceId": { "type": "string", - "description": "The reference id of the storage provider on which the content entity is stored.", + "description": "The reference id of the storage provider on which the content item is stored.", "title": "Storage Provider Reference Id" }, "userProperties": { @@ -368,12 +373,12 @@ }, "createdOn": { "type": "string", - "description": "Content entity created on", + "description": "Content item created on", "title": "Created On" }, "createdBy": { "type": "string", - "description": "Content entity created by", + "description": "Content item created by", "title": "Created By" }, "permissions": { @@ -422,17 +427,17 @@ }, "changedOn": { "type": "string", - "description": "Content entity last modified on", + "description": "Content item last modified on", "title": "Last Modified On" }, "changedBy": { "type": "string", - "description": "Content entity last modified by", + "description": "Content item last modified by", "title": "Last Modified By" } }, - "title": "Content Entity", - "description": "A content entity linked to the root business entity." + "title": "Content Item", + "description": "A content item linked to the root business entity." }, "description": "A list of content items linked to the root business entity." } @@ -509,8 +514,8 @@ "in": "path", "required": true, "type": "string", - "x-ms-summary": "Business Entity Provider Reference Id", - "description": "The business entity provider reference id.", + "x-ms-summary": "Business Entity Connector", + "description": "The business entity connector.", "x-ms-dynamic-values": { "operationId": "List-Business-Entity-Connectors", "value-path": "referenceId", @@ -522,8 +527,8 @@ "in": "path", "required": true, "type": "string", - "x-ms-summary": "External Type", - "description": "The external type.", + "x-ms-summary": "Business Entity Type", + "description": "The business entity type.", "x-ms-dynamic-values": { "operationId": "List-Business-Entity-Provider-Types", "value-path": "provider/externalType", @@ -540,8 +545,8 @@ "in": "path", "required": true, "type": "string", - "description": "The external id.", - "x-ms-summary": "External Id" + "description": "The business entity identifier.", + "x-ms-summary": "Business Entity Identifier" }, { "name": "view", @@ -619,8 +624,8 @@ "in": "path", "required": true, "type": "string", - "description": "The id of the content item.", - "x-ms-summary": "Id", + "description": "The identifier of the content item.", + "x-ms-summary": "Content Item Identifier", "x-ms-visibility": "important", "format": "" }, @@ -1131,8 +1136,22 @@ }, "requirementId": { "type": "integer", - "description": "The identifier that uniquely identifies the Content Entity Requirement.", - "title": "Content Entity Requirement" + "description": "The identifier that uniquely identifies the Content Item Requirement.", + "title": "Content Item Requirement Identifier", + "format": "int64", + "x-ms-visibility": "advanced" + }, + "templateId": { + "type": "integer", + "description": "The identifier that uniquely identifies the Content Item template.", + "title": "Content Item Template Identifier", + "format": "int64", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Templates", + "value-path": "id", + "value-title": "name" + } }, "connections": { "type": "object", @@ -1202,6 +1221,43 @@ ] } }, + "/api/contententitytemplates": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The identifier that uniquely identifies the Content Item template.", + "title": "Content Item Template Identifier" + }, + "name": { + "type": "string", + "description": "The name of the Content Item template.", + "title": "Name" + }, + "apiName": { + "type": "string", + "description": "The Api Name of the Content Item template.", + "title": "Api Name" + } + } + } + } + } + }, + "summary": "List Content Entity Templates", + "description": "Lists the templates for a content entity.", + "operationId": "List-Content-Entity-Templates", + "parameters": [] + } + }, "/api/contententitytemplategroups": { "get": { "responses": { @@ -1290,24 +1346,39 @@ "in": "path", "required": true, "type": "string", - "description": "The provider reference id.", - "x-ms-summary": "Provider Reference Id" + "description": "The business entity connector.", + "x-ms-summary": "Business Entity Connector", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } }, { "name": "externalType", "in": "path", "required": true, "type": "string", - "description": "The external type name.", - "x-ms-summary": "External Type" + "description": "The business entity type.", + "x-ms-summary": "Business Entity Type", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" + } + } + } }, { "name": "externalId", "in": "path", "required": true, "type": "string", - "description": "The external id of the business entity.", - "x-ms-summary": "External Id" + "description": "The business entity identifier.", + "x-ms-summary": "Business Entity Identifier" } ] }, @@ -1327,16 +1398,31 @@ "in": "path", "required": true, "type": "string", - "description": "The provider reference id.", - "x-ms-summary": "Provider Reference Id" + "description": "The business entity connector.", + "x-ms-summary": "Business Entity Connector", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } }, { "name": "externalType", "in": "path", "required": true, "type": "string", - "description": "The external type name.", - "x-ms-summary": "External Type" + "description": "The business entity type.", + "x-ms-summary": "Business Entity Type", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" + } + } + } }, { "name": "externalId", @@ -1344,7 +1430,7 @@ "required": true, "type": "string", "description": "The external identifier of the business entity.", - "x-ms-summary": "External Id" + "x-ms-summary": "Business Entity Identifier" }, { "name": "body", @@ -1356,14 +1442,24 @@ "ContentEntityTemplateId": { "type": "integer", "format": "int64", - "description": "ContentEntityTemplateId", - "title": "ContentEntityTemplateId" + "description": "The content entity template.", + "title": "Content Entity Template", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Templates", + "value-path": "id", + "value-title": "name" + } }, "ContentEntityTemplateGroupId": { "type": "integer", "format": "int64", - "description": "ContentEntityTemplateGroupId", - "title": "ContentEntityTemplateGroupId" + "description": "The content entity template group to base the requirements on.", + "title": "Content Entity Template Group", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Template-Groups", + "value-path": "id", + "value-title": "name" + } } } } @@ -1396,8 +1492,8 @@ "in": "path", "required": true, "type": "string", - "description": "The content entity identifier.", - "x-ms-summary": "Content Entity Id" + "description": "The content item identifier.", + "x-ms-summary": "Content Item Identifier" } ] } @@ -1498,5 +1594,18 @@ "propertyValue": "Content and Files;Productivity" } ], - "securityDefinitions": {} + "securityDefinitions": { + "undefined": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://login.windows.net/common/oauth2/authorize", + "scopes": {} + } + }, + "security": [ + { + "undefined": [] + } + ] } \ No newline at end of file From 437db1b0aed073fdff6f6eb3b53511b1cd2d2129 Mon Sep 17 00:00:00 2001 From: Marc Date: Wed, 6 Oct 2021 01:51:38 +0200 Subject: [PATCH 037/219] timeghost: Bug fixes (#1156) * Add groups and private projects Add groups and private projects * Set private as required Set private as required * Remove x-functions-key Remove x-functions-key * Removed required fields Removed required fields * timeghost image added * delete image * Definition for Project Update * Time Update definition * better format * New task update definition * update client update definition * group update defintition added * timetag update definition added * Custom Event update definintion added * project hourly rate added * color added to client * timezone amount and cost added to time response * new response properties * times response for client and project times * Get current user and workspace public * times response fix label * fix project user property * role return fix * fix defaultvalue in users array * role is required in project users --- .../timeghost/apiDefinition.swagger.json | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/certified-connectors/timeghost/apiDefinition.swagger.json b/certified-connectors/timeghost/apiDefinition.swagger.json index 818ee2de6e..5a4e54657c 100644 --- a/certified-connectors/timeghost/apiDefinition.swagger.json +++ b/certified-connectors/timeghost/apiDefinition.swagger.json @@ -2732,15 +2732,15 @@ "description": "Unique ID of the user of this project" }, "role": { - "type": "string", + "type": "number", "x-ms-summary": "Users' role", "description": "Users' role" }, "billable_rate": { "type": "number", "format": "double", - "x-ms-summary": "Hourly Rate", - "description": "Hourly rate of this user in this project" + "x-ms-summary": "Billable Rate", + "description": "Billable rate of this user in this project" } } } @@ -2895,7 +2895,6 @@ }, "role": { "type": "number", - "default": 0, "x-ms-summary": "Role in project", "description": "Role in project", "title": "Role", @@ -2914,15 +2913,15 @@ } ] }, - "hourly_rate": { + "billable_rate": { "type": "number", "format": "double", - "description": "The hourly rate of this user in this project", - "x-ms-summary": "Hourly Rate" + "description": "The billable rate of this user in this project", + "x-ms-summary": "Billable Rate" } }, "required": [ - "id" + "id", "role" ] } } @@ -3057,7 +3056,6 @@ }, "role": { "type": "number", - "default": 0, "x-ms-summary": "Role in project", "description": "Role in project", "title": "Role", @@ -3076,15 +3074,15 @@ } ] }, - "hourly_rate": { + "billable_rate": { "type": "number", "format": "double", - "description": "The hourly rate of this user in this project", - "x-ms-summary": "Hourly Rate" + "description": "The billable rate of this user in this project", + "x-ms-summary": "Billable Rate" } }, "required": [ - "id" + "id", "role" ] } } From e6ec8fcfc666f1a7dacf47d2940fe5ed995ec9fe Mon Sep 17 00:00:00 2001 From: Isak Hassbring Date: Wed, 6 Oct 2021 01:51:57 +0200 Subject: [PATCH 038/219] typo fix and readme extension. (#1157) Co-authored-by: Isak Hassbring --- certified-connectors/Peltarion/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/certified-connectors/Peltarion/README.md b/certified-connectors/Peltarion/README.md index 1b8283abe4..fc742bf418 100644 --- a/certified-connectors/Peltarion/README.md +++ b/certified-connectors/Peltarion/README.md @@ -16,7 +16,7 @@ The Peltarion connector can let you build AI-powered apps that: 3. Add the Peltarion connector to your app. Enter the URL and token for your build model (see image below) -Peltarion's Power Platform connector currently 2 operations: +Peltarion's Power Platform connector currently supports 2 operations: 1. *callapi* (used to call conventional models) and 2. *calltextsim* (used to call text similarity models). @@ -35,6 +35,12 @@ The *ClearCollect* method creates an array assigned to the variable *dd*. The * - *val* is the probability of the class. - *errorMessage* holds the error message, if any. +As for the `.calltextsim()` command you can call it with the same snippet as above by simply changing the operation from callapi to calltextsim. The response variable *res* is an object with three entries: + +- *first* is the first or closest similarity found within the data. *first* holds *text* and *distance* +- *all* returns a *collection* of 5 similarity results and all of the them hold *text* and *distance* +- *errorMessage* holds the error message, if any. + Your URL, token and input name is found on the Deployment view on the Peltarion Platform. See screenshot below. ![URL, token and input](screenshot.png) From fa07d950747830dd318408248a86293d9c91f014 Mon Sep 17 00:00:00 2001 From: Vincent Mejan <91658566+VincentMejan@users.noreply.github.com> Date: Wed, 6 Oct 2021 02:03:28 +0200 Subject: [PATCH 039/219] Added Spinpanel and connector files to the certified connectors folder to prepare for certification (#1145) * Added Spinpanel and connector files to the certified connectors folder * Update brand color to supported value * Fix is string should be boolean * Fix is string should be boolean #2 * Fix Swagger validation errors * Fix descriptions, emtpy response schema, remove clientId --- .../Spinpanel/apiDefinition.swagger.json | 2038 +++++++++++++++++ .../Spinpanel/apiProperties.json | 37 + certified-connectors/Spinpanel/readme.md | 39 + 3 files changed, 2114 insertions(+) create mode 100644 certified-connectors/Spinpanel/apiDefinition.swagger.json create mode 100644 certified-connectors/Spinpanel/apiProperties.json create mode 100644 certified-connectors/Spinpanel/readme.md diff --git a/certified-connectors/Spinpanel/apiDefinition.swagger.json b/certified-connectors/Spinpanel/apiDefinition.swagger.json new file mode 100644 index 0000000000..a4e60983ae --- /dev/null +++ b/certified-connectors/Spinpanel/apiDefinition.swagger.json @@ -0,0 +1,2038 @@ +{ + "swagger": "2.0", + "info": { + "title": "Spinpanel", + "description": "Spinpanel, allows you to sell, deploy, manage and automate Microsoft Cloud solutions", + "contact": { + "name": "Spinpanel Support", + "url": "https://help.spinpanel.com", + "email": "support@spinpanel.com" + }, + "version": "1.0" + }, + "host": "apis.spinpanel.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/directory/v1/locales": { + "get": { + "responses": { + "200": { + "description": "The request succeeded.", + "schema": { + "type": "object", + "properties": { + "@odata.context": { + "type": "string", + "description": "OData context.", + "title": "OData context" + }, + "@odata.count": { + "type": "integer", + "format": "int32", + "description": "OData count.", + "title": "Count" + }, + "@odata.nextLink": { + "type": "string", + "description": "OData nextlink.", + "title": "OData nextLink" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Locale identifier.", + "title": "Id" + }, + "localeCode": { + "type": "string", + "description": "ISO-639 Language Codes.", + "title": "Locale code" + }, + "countryCode": { + "type": "string", + "description": "ISO-3166 Country Codes.", + "title": "Country code" + }, + "countryName": { + "type": "string", + "description": "Country name.", + "title": "Country name" + } + } + }, + "description": "Value." + } + } + } + } + }, + "summary": "Get locales", + "description": "Get locales.", + "operationId": "GetLocales", + "parameters": [ + { + "name": "provider", + "in": "query", + "required": true, + "type": "string", + "default": "spinpanel.platform", + "x-ms-visibility": "internal" + } + ], + "x-ms-visibility": "advanced" + } + }, + "/directory/v1/users": { + "get": { + "responses": { + "200": { + "description": "The request succeeded.", + "schema": { + "type": "object", + "properties": { + "@odata.count": { + "type": "integer", + "format": "int32", + "description": "OData count.", + "title": "OData count" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "description": "Spinpanel organization identifier.", + "title": "Organization id" + }, + "microsoftObjectIdentifier": { + "type": "string", + "description": "Microsoft object identifier of the user.", + "title": "Microsoft object identifier" + }, + "upn": { + "type": "string", + "description": "User principal name of the user.", + "title": "User principal name" + }, + "firstName": { + "type": "string", + "description": "First name of the user.", + "title": "First name" + }, + "lastName": { + "type": "string", + "description": "Last name of the user.", + "title": "Last name" + }, + "displayName": { + "type": "string", + "description": "Display name of the user.", + "title": "Display name" + }, + "language": { + "type": "string", + "description": "Language of the user.", + "title": "Language" + }, + "usageLocation": { + "type": "string", + "description": "Usage location of the user.", + "title": "Usage location" + }, + "id": { + "type": "string", + "description": "Spinpanel identifier of the user.", + "title": "Id" + }, + "createdOn": { + "type": "string", + "description": "Created On.", + "title": "Created On" + }, + "modifiedOn": { + "type": "string", + "description": "Modified on.", + "title": "Modified on" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "$filter", + "in": "query", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "description": "Filter on users in an organization. Use: organizationId in ('{organizationId}').", + "x-ms-summary": "Filter users." + }, + { + "name": "provider", + "in": "query", + "required": true, + "type": "string", + "default": "spinpanel.users", + "x-ms-visibility": "internal" + } + ], + "summary": "Get users", + "description": "Retrieve a list of user objects.", + "operationId": "GetUsers" + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/users/{microsoftObjectId}": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "accountEnabled": { + "type": "boolean", + "description": "Account enabled true or false.", + "title": "Account enabled", + "enum": [ + true, + false + ] + }, + "employeeId": { + "type": "string", + "description": "Employee identifier of the user.", + "title": "Employee id" + }, + "displayName": { + "type": "string", + "description": "Display name of the user.", + "title": "Display name" + }, + "givenName": { + "type": "string", + "description": "Given name of the user.", + "title": "Given name" + }, + "surname": { + "type": "string", + "description": "Surname of the user.", + "title": "Surname" + }, + "userPrincipalName": { + "type": "string", + "description": "User principal name of the user.", + "title": "User principal name" + }, + "jobTitle": { + "type": "string", + "description": "Job title of the user.", + "title": "Job title" + }, + "department": { + "type": "string", + "description": "Department of the user.", + "title": "Department" + }, + "companyName": { + "type": "string", + "description": "Company name of the user.", + "title": "Company name" + }, + "usageLocation": { + "type": "string", + "description": "Usage location of the user.", + "title": "Usagelocation" + }, + "streetAddress": { + "type": "string", + "description": "Street address of the user.", + "title": "Street address" + }, + "city": { + "type": "string", + "description": "City of the user.", + "title": "City" + }, + "state": { + "type": "string", + "description": "State of the user.", + "title": "State" + }, + "postalCode": { + "type": "string", + "description": "Postal code of the user.", + "title": "Postal code" + }, + "country": { + "type": "string", + "description": "Country of the user.", + "title": "Country" + } + } + } + } + }, + "summary": "Get user details", + "description": "Get a user by Microsoft object identifier.", + "operationId": "GetGraphUser", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + } + ] + }, + "delete": { + "responses": { + "204": { + "description": "No Content." + } + }, + "summary": "Delete user", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + } + ], + "operationId": "DeleteGraphUser", + "description": "Delete a user. When deleted, user resources are moved to a temporary container and can be restored within 30 days. After that time, they are permanently deleted." + }, + "patch": { + "responses": { + "204": { + "description": "No Content." + } + }, + "summary": "User change password", + "description": "Update the password profile of a user to reset their password.", + "operationId": "PatchGraphUserPassword", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "passwordProfile": { + "type": "object", + "properties": { + "forceChangePasswordNextSignIn": { + "type": "boolean", + "description": "Force the user to change the password at next signin.", + "title": "Force password change at signin", + "enum": [ + true, + false + ] + }, + "password": { + "type": "string", + "description": "New password to set.", + "title": "Password" + } + }, + "description": "Password profile." + } + } + } + } + ] + } + }, + "/directory/v1/organizations": { + "get": { + "responses": { + "200": { + "description": "The request succeeded.", + "schema": { + "type": "object", + "properties": { + "@odata.count": { + "type": "integer", + "format": "int32", + "description": "OData count.", + "title": "OData count" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the Azure AD organization.", + "title": "Name" + }, + "microsoftTenantId": { + "type": "string", + "description": "Microsoft tenant identifier of the organization.", + "title": "Microsoft tenantId" + }, + "createdOn": { + "type": "string", + "description": "Created on.", + "title": "Created on" + }, + "modifiedOn": { + "type": "string", + "description": "Modified on.", + "title": "Modified on" + }, + "id": { + "type": "string", + "description": "Spinpanel identifier.", + "title": "Id" + } + } + }, + "description": "Value." + } + } + } + } + }, + "summary": "Get organizations", + "parameters": [ + { + "name": "provider", + "in": "query", + "required": true, + "type": "string", + "default": "spinpanel.users", + "x-ms-visibility": "internal" + } + ], + "operationId": "GetOrganizations", + "description": "Get all organizations you are authorized to view." + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/users": { + "post": { + "responses": { + "201": { + "description": "Created.", + "schema": { + "type": "object", + "properties": { + "@odata.context": { + "type": "string", + "description": "OData context.", + "title": "OData context" + }, + "id": { + "type": "string", + "description": "Spinpanel Identifier.", + "title": "Id" + }, + "businessPhones": { + "type": "array", + "items": { + "description": "The telephone numbers for the user. NOTE: Although this is a string collection, only one number can be set for this property.", + "title": "Business phones", + "type": "string" + }, + "description": "Business phones of the user." + }, + "displayName": { + "type": "string", + "description": "Display name of the user.", + "title": "Display name" + }, + "givenName": { + "type": "string", + "description": "Given name.", + "title": "Given name" + }, + "jobTitle": { + "type": "string", + "description": "Job title of the user.", + "title": "Job title" + }, + "mail": { + "type": "string", + "description": "E-mail address of the user.", + "title": "Mail" + }, + "mobilePhone": { + "type": "string", + "description": "Mobile phonenumber of the user.", + "title": "Mobile phone" + }, + "officeLocation": { + "type": "string", + "description": "Office location of the user.", + "title": "Office location" + }, + "preferredLanguage": { + "type": "string", + "description": "Preferred language as configured in Azure AD.", + "title": "Preferred language" + }, + "surname": { + "type": "string", + "description": "Surname of the user.", + "title": "Surname" + }, + "userPrincipalName": { + "type": "string", + "description": "User principal name of the user.", + "title": "User Principal Name" + } + } + } + } + }, + "summary": "Create user", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "accountEnabled": { + "type": "boolean", + "description": "Account enabled true or false.", + "title": "Account enabled", + "enum": [ + true, + false + ] + }, + "displayName": { + "type": "string", + "description": "Display name of the user.", + "title": "Display name" + }, + "mailNickname": { + "type": "string", + "description": "Mail nickname of the user.", + "title": "Mail nickname" + }, + "userPrincipalName": { + "type": "string", + "description": "User principal name of the user.", + "title": "User principal name" + }, + "passwordProfile": { + "type": "object", + "properties": { + "forceChangePasswordNextSignIn": { + "type": "boolean", + "description": "Force the user to change the password at next sign in.", + "title": "Force change password next signin", + "enum": [ + true, + false + ] + }, + "password": { + "type": "string", + "description": "New password for the user.", + "title": "Password" + } + }, + "description": "Password profile." + } + } + } + } + ], + "operationId": "PostGraphUser", + "description": "The request body contains the user to create. At a minimum, you must specify the required properties for the user. You can optionally specify any other writable properties." + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/users/{microsoftObjectId}/licenseDetails": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the user's license.", + "title": "Id" + }, + "skuId": { + "type": "string", + "description": "Sku identifier of the Microsoft license.", + "title": "Sku id" + }, + "skuPartNumber": { + "type": "string", + "description": "Sku partnumber of the Microsoft license.", + "title": "Sku partnumber" + }, + "servicePlans": { + "type": "array", + "items": { + "type": "object", + "properties": { + "servicePlanId": { + "type": "string", + "description": "Serviceplan identifier." + }, + "servicePlanName": { + "type": "string", + "description": "Serviceplan name." + }, + "provisioningStatus": { + "type": "string", + "description": "Provisioning status." + }, + "appliesTo": { + "type": "string", + "description": "Applies to." + } + } + }, + "description": "Service plans." + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + } + ], + "summary": "Get user license details", + "description": "Retrieve a list of license details objects for enterprise users.", + "operationId": "GetUserLicenseDetails" + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/subscribedSkus": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "capabilityStatus": { + "type": "string", + "description": "Capability status of the Microsoft sku.", + "title": "Capability status" + }, + "consumedUnits": { + "type": "integer", + "format": "int32", + "description": "Consumed units for this sku.", + "title": "Consumed units" + }, + "id": { + "type": "string", + "description": "Identifier of the subscribed sku object.", + "title": "Id" + }, + "skuId": { + "type": "string", + "description": "Sku identifier of the Microsoft license.", + "title": "Sku id" + }, + "skuPartNumber": { + "type": "string", + "description": "Sku partnumber of the Microsoft license.", + "title": "Sku partnumber" + }, + "appliesTo": { + "type": "string", + "description": "Applies to user or organization.", + "title": "Applies to" + }, + "prepaidUnits": { + "type": "object", + "properties": { + "enabled": { + "type": "integer", + "format": "int32", + "description": "Enabled subscribed skus.", + "title": "Enabled" + }, + "suspended": { + "type": "integer", + "format": "int32", + "description": "Suspended subscribed skus.", + "title": "Suspended" + }, + "warning": { + "type": "integer", + "format": "int32", + "description": "Subscribed skus with warning.", + "title": "Warning" + } + }, + "description": "Prepaid units." + }, + "servicePlans": { + "type": "array", + "items": { + "type": "object", + "properties": { + "servicePlanId": { + "type": "string", + "description": "Serviceplan identifier." + }, + "servicePlanName": { + "type": "string", + "description": "Serviceplan name." + }, + "provisioningStatus": { + "type": "string", + "description": "Provisioning status." + }, + "appliesTo": { + "type": "string", + "description": "Applies to." + } + } + }, + "description": "Serviceplans." + } + } + }, + "description": "Value." + } + } + } + } + }, + "summary": "Get organization subscribed SKUs", + "description": "Get the list of commercial subscriptions that an organization has acquired.", + "operationId": "GetsubscribedSkus", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + } + ] + } + }, + "/graph/v1.0/users/{microsoftObjectId}/assignlicense": { + "post": { + "responses": { + "201": { + "description": "Created.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the license object.", + "title": "Id" + }, + "skuId": { + "type": "string", + "description": "Microsoft sku identifier.", + "title": "Sku id" + }, + "skuPartNumber": { + "type": "string", + "description": "Microsoft Sku partnumber.", + "title": "Sku partnumber" + }, + "servicePlans": { + "type": "array", + "items": { + "type": "object", + "properties": { + "servicePlanId": { + "type": "string", + "description": "Serviceplan identifier." + }, + "servicePlanName": { + "type": "string", + "description": "Serviceplan name." + }, + "provisioningStatus": { + "type": "string", + "description": "Provisioning status." + }, + "appliesTo": { + "type": "string", + "description": "Applies to." + } + } + }, + "description": "Serviceplans." + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "addLicenses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "disabledPlans": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Disabled plans." + }, + "skuId": { + "type": "string", + "description": "Sku identifier of the Microsoft license.", + "title": "Sku id" + } + } + }, + "description": "Add licenses." + }, + "removeLicenses": { + "type": "array", + "items": { + "type": "string", + "description": "A collection of GUIDs that identify the licenses to remove.", + "title": "Remove licenses" + }, + "description": "Remove licenses." + } + } + } + } + ], + "description": "Add or remove licenses for the user. You can also enable and disable specific plans associated with a license.", + "operationId": "PostUserLicense", + "summary": "Assign a license to a user" + } + }, + "/directory/v1/usergroups": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "@odata.count": { + "type": "integer", + "format": "int32", + "description": "OData count.", + "title": "Count" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "description": "Spinpanel organization identifier.", + "title": "Organization Id" + }, + "name": { + "type": "string", + "description": "Name of the group.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Description for the group.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "Identifier of the group.", + "title": "Id" + }, + "createdOn": { + "type": "string", + "description": "Created on.", + "title": "Created on" + }, + "modifiedOn": { + "type": "string", + "description": "Modified on.", + "title": "Modified on" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "provider", + "in": "query", + "required": true, + "type": "string", + "default": "spinpanel.groups", + "x-ms-visibility": "internal" + } + ], + "summary": "Get spinpanel user groups", + "description": "Get a list of groups of all organizations you are authorized to view.", + "operationId": "GetGroups" + } + }, + "/directory/v1/organizations/{organizationId}/usergroups/{userGroupId}/members": { + "get": { + "responses": { + "200": { + "description": "The request succeeded.", + "schema": { + "type": "object", + "properties": { + "@odata.count": { + "type": "integer", + "format": "int32", + "description": "OData count.", + "title": "Count" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "upn": { + "type": "string", + "description": "User principal name of the group.", + "title": "User principal name" + }, + "id": { + "type": "string", + "description": "Identifier of the group member object.", + "title": "Id" + }, + "groupId": { + "type": "string", + "description": "Spinpanel identifier of the group.", + "title": "Group id" + }, + "createdOn": { + "type": "string", + "description": "Created on.", + "title": "Created on" + }, + "modifiedOn": { + "type": "string", + "description": "Modified on.", + "title": "Modified on" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userGroupId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel identifier of the group.", + "x-ms-summary": "Spinpanel identifier of the group.", + "x-ms-url-encoding" : "single" + }, + { + "name": "provider", + "in": "query", + "required": true, + "type": "string", + "default": "spinpanel.groups", + "x-ms-visibility": "internal" + } + ], + "summary": "Get a list of Spinpanel user group members", + "description": "Get a list of user group members of a specific group.", + "operationId": "UserGroupMembers" + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/groups": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "createdDateTime": { + "type": "string", + "description": "Created on.", + "title": "Created on" + }, + "displayName": { + "type": "string", + "description": "Display name.", + "title": "Displayname" + }, + "groupTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Group types." + }, + "id": { + "type": "string", + "description": "Microsoft object identifier of the group.", + "title": "Id" + }, + "securityEnabled": { + "type": "boolean", + "description": "Indicates if the group is security enabled.", + "title": "Security enabled", + "enum": [ + true, + false + ] + }, + "mail": { + "type": "string", + "description": "E-mail address of the group.", + "title": "Mail" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "$select", + "in": "query", + "required": true, + "type": "string", + "default": "createdDateTime,displayName,groupTypes,id,securityEnabled", + "x-ms-visibility": "internal" + } + ], + "operationId": "GetADSecurityGroups", + "summary": "Get Azure AD security groups", + "description": "Get a list of Azure AD security groups of all organizations you are authorized to view." + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/domains": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "authenticationType": { + "type": "string", + "description": "Authentication type of the domain.", + "title": "Authentication type" + }, + "availabilityStatus": { + "type": "string", + "description": "Availability status of the domain.", + "title": "Availability status" + }, + "id": { + "type": "string", + "description": "Identifier of the domain.", + "title": "Id" + }, + "isAdminManaged": { + "type": "boolean", + "description": "Indicates if the domain is admin managed.", + "title": "Admin managed", + "enum": [ + true, + false + ] + }, + "isDefault": { + "type": "boolean", + "description": "Indicates if this is the default domain.", + "title": "Default", + "enum": [ + true, + false + ] + }, + "isInitial": { + "type": "boolean", + "description": "Indicates if this is the initial domain.", + "title": "Initial", + "enum": [ + true, + false + ] + }, + "isRoot": { + "type": "boolean", + "description": "Indicates if this is the root domain.", + "title": "Root", + "enum": [ + true, + false + ] + }, + "isVerified": { + "type": "boolean", + "description": "Indicates if the domain is verified.", + "title": "Verified", + "enum": [ + true, + false + ] + }, + "supportedServices": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Supported services." + }, + "passwordValidityPeriodInDays": { + "type": "integer", + "format": "int32", + "description": "Indicates the password validity in days.", + "title": "Password validity" + }, + "passwordNotificationWindowInDays": { + "type": "integer", + "format": "int32", + "description": "Indicates the password notifcation window in days.", + "title": "Password notification windows" + }, + "state": { + "type": "string", + "description": "State of the domain.", + "title": "State" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + } + ], + "operationId": "GetGraphDomains", + "description": "Retrieve a list of domain objects.", + "summary": "List organization domains" + } + }, + "/graph/v1/organizations/{organizationId}v1.0/groups": { + "post": { + "responses": { + "201": { + "description": "Created.", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the group.", + "title": "Id" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted on.", + "title": "Deleted on" + }, + "classification": { + "type": "string", + "description": "Classification of the group.", + "title": "Classification" + }, + "createdDateTime": { + "type": "string", + "description": "Created on.", + "title": "Created on" + }, + "creationOptions": { + "type": "array", + "items": { + "description": "Created options of the group.", + "title": "Created options", + "type": "string" + }, + "description": "Creation options." + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "displayName": { + "type": "string", + "description": "Display name.", + "title": "Display name" + }, + "groupTypes": { + "type": "array", + "items": { + "type": "string", + "description": "Group types for the group.", + "title": "Group types" + }, + "description": "groupTypes" + }, + "mail": { + "type": "string", + "description": "E-mail address of the group.", + "title": "Mail" + }, + "mailEnabled": { + "type": "boolean", + "description": "Indicates the group is mail enabled.", + "title": "Mail enabled", + "enum": [ + true, + false + ] + }, + "mailNickname": { + "type": "string", + "description": "Mail nickname of the group.", + "title": "Mail nickname" + }, + "onPremisesLastSyncDateTime": { + "type": "string", + "description": "Indicates when the group was synced to on premise.", + "title": "On premise last sync" + }, + "onPremisesSecurityIdentifier": { + "type": "string", + "description": "On premise security identifier of the group.", + "title": "On premise security identifier" + }, + "onPremisesSyncEnabled": { + "type": "string", + "description": "Indicates if on premise sync is enabled.", + "title": "On premise sync enabled" + }, + "preferredDataLocation": { + "type": "string", + "description": "Preferred data location of the group.", + "title": "Preferred data location" + }, + "proxyAddresses": { + "type": "array", + "items": { + "type": "string", + "description": "Proxy addresses of the group.", + "title": "Proxy addresses" + }, + "description": "Proxy addresses." + }, + "renewedDateTime": { + "type": "string", + "description": "Renewed date time of the group.", + "title": "Renewed" + }, + "resourceBehaviorOptions": { + "type": "array", + "items": { + "description": "Resource behavior options of the group.", + "title": "Resource behaviour options", + "type": "string" + }, + "description": "Resource behavior options." + }, + "resourceProvisioningOptions": { + "type": "array", + "items": { + "description": "Resource provisioning options of the group.", + "title": "Resource provisioning options", + "type": "string" + }, + "description": "Resource provsioning options." + }, + "securityEnabled": { + "type": "boolean", + "description": "Indicates if the group is security enabled.", + "title": "Security enabled", + "enum": [ + true, + false + ] + }, + "visibility": { + "type": "string", + "description": "Visibility of the group.", + "title": "Visbility" + }, + "onPremisesProvisioningErrors": { + "type": "array", + "items": { + "description": "On premise provisioning errors of the group.", + "title": "On premise provisioning errors", + "type": "string" + }, + "description": "On premise provisioning errors." + } + } + } + } + }, + "summary": "Create Azure AD group", + "operationId": "PostGraphGroup", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Description of the group.", + "title": "Description" + }, + "displayName": { + "type": "string", + "description": "Display name of the group.", + "title": "Display name" + }, + "groupTypes": { + "type": "array", + "items": { + "type": "string", + "description": "Group types for the group.", + "title": "Group types" + }, + "description": "Group types." + }, + "mailEnabled": { + "type": "boolean", + "description": "Indicates if the group is mail enabled.", + "title": "Mail enabled", + "enum": [ + true, + false + ] + }, + "mailNickname": { + "type": "string", + "description": "Mail nickname of the group.", + "title": "Mail nickname" + }, + "securityEnabled": { + "type": "boolean", + "description": "Indicates if the group is security enabled.", + "title": "Security enabled", + "enum": [ + true, + false + ] + } + } + } + } + ], + "description": "Create azure AD group." + } + }, + "/directory/v1/organizations/{organizationId}/usergroups/{userGroupId}": { + "delete": { + "responses": { + "204": { + "description": "Spinpanel usergroup removed." + } + }, + "summary": "Delete Spinpanel user group", + "description": "Delete a user group.", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userGroupId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel identifier for the user group.", + "x-ms-summary": "Spinpanel identifier for the user group.", + "x-ms-url-encoding" : "single" + } + ], + "operationId": "DeleteUserGroup" + } + }, + "/directory/v1/organizations/{organizationId}/usergroups/{userGroupId}/members/{userId}": { + "delete": { + "responses": { + "204": { + "description": "Member removed from group." + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userGroupId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel user group identifier.", + "x-ms-summary": "Spinpanel user group id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel user identifier.", + "x-ms-summary": "Spinpanel user id.", + "x-ms-url-encoding" : "single" + } + ], + "summary": "Remove a member from a user group", + "description": "Remove a member to a user group.", + "operationId": "DeleteUserGroupMember" + }, + "post": { + "responses": { + "204": { + "description": "Member added to group." + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userGroupId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel user group identifier.", + "x-ms-summary": "Spinpanel user group id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel user identifier.", + "x-ms-summary": "Spinpanel user id.", + "x-ms-url-encoding" : "single" + } + ], + "description": "Add a member to a user group, the member should belong to the same organization as the group.", + "summary": "Add a member to a user group", + "operationId": "PostUserGroupMember" + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/groups/{microsoftObjectId}/members/$ref": { + "post": { + "responses": { + "201": { + "description": "Created." + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "microsoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the group.", + "x-ms-summary": "Microsoft object id of the group.", + "x-ms-url-encoding" : "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "@odata.id": { + "type": "string", + "description": "JSON representation of a directoryObject, user, group, or organizational contact object to be added.", + "title": "Member" + } + }, + "required": [ + "@odata.id" + ] + } + } + ], + "summary": "Add a member to a group", + "description": "Add a member to a Microsoft 365 group or a security group through the members navigation property.", + "operationId": "AddGraphGroupMember" + } + }, + "/graph/v1/organizations/{organizationId}/v1.0/groups/{groupMicrosoftObjectId}/members/{userMicrosoftObjectId}/$ref": { + "delete": { + "responses": { + "204": { + "description": "No content." + } + }, + "summary": "Remove member", + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "groupMicrosoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the group.", + "x-ms-summary": "Microsoft object id of the group.", + "x-ms-url-encoding" : "single" + }, + { + "name": "userMicrosoftObjectId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft object identifier of the user.", + "x-ms-summary": "Microsoft object id of the user.", + "x-ms-url-encoding" : "single" + } + ], + "description": "Remove a member from a group via the members navigation property.", + "operationId": "RemoveGraphGroupMember" + } + }, + "/partnercenter/v1/partners/{partnerId}/organizations/{customerId}/v1.0/customers/{tenantId}/subscriptions": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "totalCount": { + "type": "integer", + "format": "int32", + "description": "Total count of the subscription object.", + "title": "Total count" + }, + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier of the subscription.", + "title": "Id" + }, + "entitlementId": { + "type": "string", + "description": "Entitlement identifier of the subscription.", + "title": "Entitlement id" + }, + "friendlyName": { + "type": "string", + "description": "Friendly name of the subscription.", + "title": "Friendly name" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of the subscription.", + "title": "Quantity" + }, + "unitType": { + "type": "string", + "description": "Unit type of the subscription.", + "title": "Unit type" + }, + "creationDate": { + "type": "string", + "description": "Created on date of the subscription.", + "title": "Created on" + }, + "effectiveStartDate": { + "type": "string", + "description": "Effective start date of the subscription.", + "title": "Effective start date" + }, + "commitmentEndDate": { + "type": "string", + "description": "Commitment end date of the subscription.", + "title": "Commitment end date" + }, + "status": { + "type": "string", + "description": "Status of the subscription.", + "title": "Status" + }, + "autoRenewEnabled": { + "type": "boolean", + "description": "Indicates if auto renew is enabled for the subscription.", + "title": "Auto renew", + "enum": [ + true, + false + ] + }, + "billingType": { + "type": "string", + "description": "Billing type of the subscription.", + "title": "Billing type" + }, + "contractType": { + "type": "string", + "description": "Contract type of the subscription.", + "title": "Contract type" + }, + "links": { + "type": "object", + "properties": { + "offer": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "Uri of the subscription.", + "title": "Uri" + }, + "method": { + "type": "string", + "description": "Method of the subscription.", + "title": "Method" + }, + "headers": { + "type": "array", + "items": {}, + "description": "Headers." + } + }, + "description": "Offer." + }, + "self": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "Uri of the subscription.", + "title": "Uri" + }, + "method": { + "type": "string", + "description": "Method of the subscription.", + "title": "Method" + }, + "headers": { + "type": "array", + "items": {}, + "description": "Headers." + } + }, + "description": "Self." + } + }, + "description": "Links." + }, + "orderId": { + "type": "string", + "description": "Order identifier of the subscription.", + "title": "Order id" + }, + "attributes": { + "type": "object", + "properties": { + "etag": { + "type": "string", + "description": "Etag of the subscription.", + "title": "Etag" + }, + "objectType": { + "type": "string", + "description": "Object type of the subscription.", + "title": "Object type" + } + }, + "description": "Attributes." + } + } + }, + "description": "Items." + }, + "attributes": { + "type": "object", + "properties": { + "objectType": { + "type": "string", + "description": "Object type of the subscription.", + "title": "Object type" + } + }, + "description": "Attributes." + } + } + } + } + }, + "summary": "Get subscriptions", + "description": "Retrieves all subscriptions for the customer of a partner by their active directory tenant identifier.", + "parameters": [ + { + "name": "partnerId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel partner identifier.", + "x-ms-summary": "Spinpanel partner identifier.", + "x-ms-url-encoding" : "single" + }, + { + "name": "customerId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel customer identifier.", + "x-ms-summary": "Spinpanel customer identifier.", + "x-ms-url-encoding" : "single" + }, + { + "name": "tenantId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft tenant identifier of the customer.", + "x-ms-summary": "Microsoft tenant Id of the customer.", + "x-ms-url-encoding" : "single" + } + ], + "operationId": "GetSubscriptions" + }, + "patch": { + "responses": { + "200": { + "description": "Ok." + } + }, + "summary": "Update subscription quantity", + "parameters": [ + { + "name": "partnerId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel partner identifier.", + "x-ms-summary": "Spinpanel partner id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "customerId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel customer identifier.", + "x-ms-summary": "Spinpanel customer id.", + "x-ms-url-encoding" : "single" + }, + { + "name": "tenantId", + "in": "path", + "required": true, + "type": "string", + "description": "Microsoft tenant identifier of the customer.", + "x-ms-summary": "Microsoft tenant id of the customer.", + "x-ms-url-encoding" : "single" + }, + { + "name": "quantityOnly", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity of the susbscription.", + "title": "Quantity" + } + } + } + } + ], + "operationId": "PatchSubscriptionQuantity", + "description": "Update the quantity of a subscription." + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.spinpanel.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://knowledge.spinpanel.com/en/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management;IT Operations" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize", + "tokenUrl": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token", + "scopes": { + "api://apis.spinpanel.com/sp_apis": "api://apis.spinpanel.com/sp_apis" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "api://apis.spinpanel.com/sp_apis" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Spinpanel/apiProperties.json b/certified-connectors/Spinpanel/apiProperties.json new file mode 100644 index 0000000000..a167ed61b7 --- /dev/null +++ b/certified-connectors/Spinpanel/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[DUMMY]]", + "scopes": [ + "api://apis.spinpanel.com/sp_apis" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize" + }, + "tokenUrl": { + "value": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token" + }, + "refreshUrl": { + "value": "https://login.microsoftonline.com/organizations/oauth2/v2.0/token" + } + } + } + } + }, + "iconBrandColor": "#FBFBFB", + "capabilities": [], + "publisher": "Spinpanel B.V.", + "stackOwner": "Spinpanel B.V." + } +} \ No newline at end of file diff --git a/certified-connectors/Spinpanel/readme.md b/certified-connectors/Spinpanel/readme.md new file mode 100644 index 0000000000..fcf6ba65dd --- /dev/null +++ b/certified-connectors/Spinpanel/readme.md @@ -0,0 +1,39 @@ +## Spinpanel connector +Spinpanel connector allows you to integrate the powerful multi-tier and multi-tenant Microsoft Cloud automation capabilities of Spinpanel as operations in Microsoft Power Automate and Power Apps. + +## Prerequisites +You will need the following to proceed: +* A Spinpanel Cloud Essentials, Cloud Business or Cloud Enterprise subscription +* Configured solutions in Spinpanel for the specific operations you intend to use +* Configured roles in Spinpanel for the specific operations you intend to use + +## How to get credentials +You can login with any account that is configured to access Spinpanel. For automation scenarios we advise you to use a dedicated service account. + +## Supported Operations +The connector supports the following operations: +* `Get locales`: Get a list of locales +* `Get users`: Retrieve a list of user objects from Spinpanel +* `Get user details`: Get user by Microsoft object identifier +* `Delete user`: Delete a user. When deleted, user resources are moved to a temporary container and can be restored within 30 days +* `User change password`: Update the passwordProfile of a user to reset their password +* `Get organizations`: Get all organizations you are authorized to view +* `Create user`: The request body contains the user to create. At a minimum, you must specify the required properties for the user +* `Get user license details`: Retrieve a list of license details objects for enterprise users +* `Get organization subscribed SKUs`: Get the list of commercial subscriptions that an organization has acquired +* `Assign a license to a user`: Add or remove licenses for the user. You can also enable and disable specific plans associated with a license +* `Get spinpanel user groups`: Get a list of groups of all organizations you are authorized to view +* `Get a list of Spinpanel user group members`: Get a list of user group members of a specific group +* `Get Azure AD security groups`: Get a list of Azure AD security groups of all organizations you are authorized to view +* `List organization domains`: Retrieve a list of domain objects +* `Create Azure AD group`: Create an Azure AD group +* `Delete Spinpanel user group`: Delete a Spinpanel user group +* `Remove a member from a user group`: Remove a member from a Spinpanel user group +* `Add a member to a user group`: Add a member to a Spinpanel user group, the member should belong to the same organization as the group +* `Add a member to a group`: Add a member to a Microsoft 365 group or a security group through the members navigation property +* `Remove member`: Remove a member from a Microsoft group via the members navigation property +* `Get subscriptions`: Retrieves all subscriptions for the customer of a partner by their active directory tenant identifier +* `Update subscription quantity`: Update the quantity of a subscription + + + From b9554c71ce9c95665bfe88e032e9df12c337c2d1 Mon Sep 17 00:00:00 2001 From: thomasBeckSecib <89579197+thomasBeckSecib@users.noreply.github.com> Date: Wed, 6 Oct 2021 04:03:10 +0200 Subject: [PATCH 040/219] Initial commit (#1141) * Initial commit * Updating artifacts to match with certification requirements * Updating OAuth Scopes and dummy text --- certified-connectors/Secib/README.md | 59 + .../Secib/apiDefinition.swagger.json | 1237 +++++++++++++++++ certified-connectors/Secib/apiProperties.json | 55 + 3 files changed, 1351 insertions(+) create mode 100644 certified-connectors/Secib/README.md create mode 100644 certified-connectors/Secib/apiDefinition.swagger.json create mode 100644 certified-connectors/Secib/apiProperties.json diff --git a/certified-connectors/Secib/README.md b/certified-connectors/Secib/README.md new file mode 100644 index 0000000000..3a99b81ba7 --- /dev/null +++ b/certified-connectors/Secib/README.md @@ -0,0 +1,59 @@ +# SECIB +SECIB provides a REST API which can be used to manage your SECIB's data (such as your case files, your calendar, your documents, etc). + +The SECIB connector uses that REST API to allow SECIB's users to automate their workflow. For instance, you can trigger a worklflow when a new case file is created in SECIB neo and then process this case file before sending an email notification with the case file's information to other SECIB's users. + +## Prerequisites +You will need the following to proceed : + +- A Microsoft Power Apps or Microsoft Power Automate plan enabling the use of Premium connectors +- A SECIB neo/air or a Gestisoft licence. Please go to https://www.secib.fr/ for further information. + +## Supported Triggers + +The connector supports the following triggers : + +#### Case File + +- `DossierCreated`: Triggers a flow when a case file is created in SECIB neo/air or in Gestisoft. + +## Supported Operations +The connector supports the following operations : + +#### Case File + +- `GetDossierById`: allows the recovery of a case file which is corresponding to an identifier specified in parameter. + +#### Law firm + +- `GetCabinets`: Retrieving each accessible firm for the current user. + +#### View + +- `GetViewByViewName`: Retrieve data from a view in the SECIB database. +- `GetViewDynamicSchema`: Retrieve the schema of a view in the SECIB database (operation used within GetViewByName to retrieve the dynamic schema of the operation's response). + +#### Webhook + +- `DeleteWebhook`: Operation used to delete a webhook subscription. + + +## Obtaining Credentials +Required. Explain the authentication method and how to get the credentials.​ + +The connector needs authentication with an Azure Active Directory account and your tenant must be granted with access to our web API. You can contact us at **support.flow@secib.fr** for more information. + +## Known Issues and Limitations +Version 1.0 **doesn't support user authentication**. To put it another way, when you are using the SECIB connector this is **on behalf of a whole law firm**. + +## Frequently Asked Questions +This section is empty. You can submit your questions to **support.flow@secib.fr**. + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Flow and PowerApps + +Connect with SECIB Support to request Client Id and Client Secret for authorization + +## Support + +For any questions please contact SECIB Support [here](https://support.secib.fr/) or send us a mail at **support.flow@secib.fr**. diff --git a/certified-connectors/Secib/apiDefinition.swagger.json b/certified-connectors/Secib/apiDefinition.swagger.json new file mode 100644 index 0000000000..c832ffe14d --- /dev/null +++ b/certified-connectors/Secib/apiDefinition.swagger.json @@ -0,0 +1,1237 @@ +{ + "swagger": "2.0", + "info": { + "version": "v1", + "title": "SECIB", + "description": "The SECIB connector allows SECIB users to automate their workflow. For instance, you can trigger a worklflow when a new case file is created in SECIB neo.", + "contact": { + "name": "SECIB Support", + "url": "https://support.secib.fr/", + "email": "support.flow@secib.fr" + } + }, + "host": "secibconnecteurflow.azurewebsites.net", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/v1/secib/Dossiers/{id}": { + "get": { + "description": "allows the recovery of a case file wich is corresponding to an identifier specified in parameter.", + "summary": "Retrieving a case file", + "tags": [ + "Dossiers" + ], + "operationId": "GetDossierById", + "deprecated": false, + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "description": "An integer used as an identifier for the case file.", + "x-ms-summary": "Identifier of the case file", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "Cabinet", + "in": "query", + "required": false, + "type": "string", + "description": "Firm to work with.", + "x-ms-summary": "Firm to work with", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCabinets", + "value-path": "id", + "value-collection": "result/items", + "value-title": "nom" + } + } + ], + "responses": { + "200": { + "description": "Success.", + "schema": { + "type": "object", + "properties": { + "result": { + "type": "object", + "properties": { + "dossierId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the case file.", + "title": "Identifier" + }, + "code": { + "type": "string", + "description": "Number of the case file.", + "title": "Case file number", + "x-ms-visibility": "important" + }, + "nom": { + "type": "string", + "description": "Name of the case file.", + "title": "Case file name", + "x-ms-visibility": "important" + }, + "dateCreation": { + "type": "string", + "description": "Creation date of the case file.", + "title": "Creation date" + }, + "dateModification": { + "type": "string", + "description": "Last modification date of the case file.", + "title": "Modification date" + }, + "dossierHypertextLink": { + "type": "string", + "description": "Hypertext link of the case file.", + "title": "Hypertext link", + "x-ms-visibility": "important" + }, + "responsable": { + "type": "object", + "properties": { + "utilisateurId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the lead attorney on the case file.", + "title": "Lead attorney's identifier" + }, + "siteId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the lead attorney's site.", + "title": "Site's identifier" + }, + "nom": { + "type": "string", + "description": "Lastname of the case file's lead attorney.", + "title": "Lead attorney's lastname", + "x-ms-visibility": "important" + }, + "prenom": { + "type": "string", + "description": "Firstname of the case file's lead attorney.", + "title": "Lead attorney's firstname", + "x-ms-visibility": "important" + }, + "nomComplet": { + "type": "string", + "description": "Fullname of the case file's lead attorney.", + "title": "Lead attorney's fullname" + }, + "actif": { + "type": "boolean", + "description": "Is the lead attorney active ?", + "title": "Active state", + "enum": [true, false] + }, + "email": { + "type": "string", + "description": "Email of the case file's lead attorney.", + "title": "Lead attorney's email", + "x-ms-visibility": "important" + }, + "login": { + "type": "string", + "description": "Login of the case file's lead attorney.", + "title": "Lead attorney's login" + } + }, + "description": "Lead attorney of the case file." + } + }, + "description": "Response result." + } + } + } + }, + "310": { + "description": "Too Many Redirects.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "400": { + "description": "Bad Request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "404": { + "description": "Not Found.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "x-ms-visibility": "internal" + } + }, + "/api/v1/secib/Dossiers/events/created": { + "x-ms-notification-content": { + "schema": { + "type": "object", + "properties": { + "result": { + "type": "object", + "properties": { + "dossierId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the case file.", + "title": "Identifier" + }, + "code": { + "type": "string", + "description": "Number of the case file.", + "title": "Case file number", + "x-ms-visibility": "important" + }, + "nom": { + "type": "string", + "description": "Name of the case file.", + "title": "Case file name", + "x-ms-visibility": "important" + }, + "dateCreation": { + "type": "string", + "description": "Creation date of the case file.", + "title": "Creation date" + }, + "dateModification": { + "type": "string", + "description": "Last modification date of the case file.", + "title": "Modification date" + }, + "dossierHypertextLink": { + "type": "string", + "description": "Hypertext link of the case file.", + "title": "Hypertext link", + "x-ms-visibility": "important" + }, + "responsable": { + "type": "object", + "properties": { + "utilisateurId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the lead attorney on the case file.", + "title": "Lead attorney's identifier" + }, + "siteId": { + "type": "integer", + "format": "int32", + "description": "Identifier of the lead attorney's site.", + "title": "Site's identifier" + }, + "nom": { + "type": "string", + "description": "Lastname of the case file's lead attorney.", + "title": "Lead attorney's lastname", + "x-ms-visibility": "important" + }, + "prenom": { + "type": "string", + "description": "Firstname of the case file's lead attorney.", + "title": "Lead attorney's firstname", + "x-ms-visibility": "important" + }, + "nomComplet": { + "type": "string", + "description": "Fullname of the case file's lead attorney.", + "title": "Lead attorney's fullname" + }, + "actif": { + "type": "boolean", + "description": "Is the lead attorney active ?", + "title": "Active state", + "enum": [true, false] + }, + "email": { + "type": "string", + "description": "Email of the case file's lead attorney.", + "title": "Lead attorney's email", + "x-ms-visibility": "important" + }, + "login": { + "type": "string", + "description": "Login of the case file's lead attorney.", + "title": "Lead attorney's login" + } + }, + "description": "Lead attorney of the case file." + } + }, + "description": "Response result." + } + } + }, + "description": "Webhook response that is sent when a case file is created." + }, + "post": { + "responses": { + "200": { + "description": "Success.", + "schema": { + "title": "result", + "type": "object", + "properties": { + "secret": { + "type": "string" + } + } + } + }, + "400": { + "description": "Bad Request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "summary": "When a case file is created", + "tags": [ + "Dossiers" + ], + "description": "Triggers a flow when a case file is created in SECIB neo, SECIB air or in Gestisoft.", + "operationId": "DossierCreated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "CabinetId": { + "type": "string", + "description": "Firm to work with.", + "title": "Firm", + "x-ms-visibility": "important", + "x-ms-summary": "Firm to work with", + "x-ms-dynamic-values": { + "operationId": "GetCabinets", + "value-path": "id", + "value-collection": "result/items", + "value-title": "nom" + } + }, + "webhookUri": { + "type": "string", + "description": "The url where the webhook has to be sent when the event occures.", + "title": "Callback uri", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + }, + "required": [ + "webhookUri" + ] + } + } + ] + } + }, + "/api/v1/secib/events/{id}": { + "delete": { + "responses": { + "200": { + "description": "default.", + "schema": { + "type": "object", + "properties": {} + } + }, + "400": { + "description": "Bad Request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "404": { + "description": "Not Found.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "summary": "Deleting a webhook subscription", + "tags": [ + "Webhooks" + ], + "description": "Operation used to delete a webhook subscription.", + "operationId": "DeleteWebhook", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Identifier of the webhook subscription.", + "x-ms-summary": "Webhook subscription's identifier", + "x-ms-url-encoding": "single" + } + ] + } + }, + "/api/v1/secib/Cabinets": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "result": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "nom": { + "type": "string", + "description": "Name of a firm.", + "title": "Firm's name" + }, + "id": { + "type": "string", + "description": "Identifier of a firm.", + "title": "Firm's identifier" + } + } + }, + "description": "List of cabinet." + }, + "totalCount": { + "type": "integer", + "format": "int32", + "description": "Total number of accessible firms.", + "title": "Firms count" + }, + "defaultCabinet": { + "type": "object", + "properties": { + "nom": { + "type": "string", + "description": "Name of the default firm.", + "title": "Default firm's name" + }, + "id": { + "type": "string", + "description": "Identifier of the default firm.", + "title": "Default firm's identifier" + } + }, + "description": "Default firm." + } + }, + "description": "Response result." + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "summary": "Retrieving firms", + "tags": [ + "Cabinets" + ], + "description": "Retrieving each accessible firm for the current user.", + "operationId": "GetCabinets", + "x-ms-visibility": "important", + "parameters": [] + } + }, + "/api/v1/secib/Views/{name}": { + "get": { + "responses": { + "200": { + "description": "OK.", + "schema": { + "type": "object", + "properties": {}, + "x-ms-dynamic-schema": { + "operationId": "GetViewDynamicSchema", + "parameters": { + "name": { + "parameter": "name" + }, + "cabinet": { + "parameter": "cabinet" + } + }, + "value-path": "schema" + } + } + }, + "400": { + "description": "Bad Request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "404": { + "description": "Not Found.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "summary": "Retrieving view's data", + "tags": [ + "Views" + ], + "description": "Retrieve data from a view in the SECIB database.", + "operationId": "GetViewByViewName", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the view in the SECIB database.", + "x-ms-summary": "View's name", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "cabinet", + "in": "query", + "required": false, + "type": "string", + "description": "Identifier of the firm to work with.", + "x-ms-summary": "Firm's identifier", + "x-ms-dynamic-values": { + "operationId": "GetCabinets", + "value-path": "id", + "value-collection": "result/items", + "value-title": "nom" + } + } + ] + } + }, + "/api/v1/secib/Views/{name}/dynamic-schema": { + "get": { + "responses": { + "200": { + "description": "OK.", + "schema": { + "type": "object", + "properties": { + "schema": { + "type": "object" + } + } + } + }, + "400": { + "description": "Bad Request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "401": { + "description": "Unauthorized request.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + }, + "headers": { + "WWW-Authenticate": { + "description": "WWW-Authenticate", + "type": "string" + } + } + }, + "403": { + "description": "Forbidden.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "404": { + "description": "Not Found.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "500": { + "description": "Internal Server Error.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + }, + "503": { + "description": "Service Unavailable.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Error message.", + "title": "message" + }, + "statusCode": { + "type": "integer", + "description": "Http status code of the request.", + "title": "HttpStatusCode" + } + } + } + } + }, + "summary": "Retrieving view's schema", + "tags": [ + "Views" + ], + "operationId": "GetViewDynamicSchema", + "description": "Retrieve the dynamic schema of the GetView operation's response.", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the view.", + "x-ms-summary": "View's name", + "x-ms-url-encoding": "single" + }, + { + "name": "cabinet", + "in": "query", + "type": "string", + "description": "Identifier of the firm to work with.", + "x-ms-summary": "Firm's identifier" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://login.windows.net/common/oauth2/authorize", + "scopes": { + "User.Read": "User.Read", + "User.ReadBasic.All": "User.ReadBasic.All", + "create": "create", + "delete": "delete", + "update": "update", + "read": "read" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "User.Read", + "User.ReadBasic.All", + "create", + "delete", + "update", + "read" + ] + } + ], + "tags": [ + { + "name": "Dossiers" + }, + { + "name": "Views" + }, + { + "name": "Webhooks" + }, + { + "name": "Cabinets" + } + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.secib.fr" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.secib.fr/conditions-generales-dutilisation.htm" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management;Productivity" + } + ] +} \ No newline at end of file diff --git a/certified-connectors/Secib/apiProperties.json b/certified-connectors/Secib/apiProperties.json new file mode 100644 index 0000000000..b05b6d82fd --- /dev/null +++ b/certified-connectors/Secib/apiProperties.json @@ -0,0 +1,55 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "aad", + "clientId": "[[DUMMY]]", + "scopes": [ + "User.Read", + "User.ReadBasic.All", + "create", + "delete", + "update", + "read" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "AzureActiveDirectoryResourceId": "[[DUMMY]]", + "IsOnbehalfofLoginSupported": true + }, + "customParameters": { + "loginUri": { + "value": "https://login.windows.net" + }, + "tenantId": { + "value": "common" + }, + "resourceUri": { + "value": "[[DUMMY]]" + } + } + } + }, + "token:TenantId": { + "type": "string", + "metadata": { + "sourceType": "AzureActiveDirectoryTenant" + }, + "uiDefinition": { + "constraints": { + "required": "false", + "hidden": "true" + } + } + } + }, + "iconBrandColor": "#91d0d5", + "capabilities": [], + "publisher": "SECIB", + "stackOwner": "SECIB" + } +} \ No newline at end of file From 4e8ae05753e72867c4420814fd538be6dcf49431 Mon Sep 17 00:00:00 2001 From: Joshua Apple Date: Wed, 6 Oct 2021 13:38:23 -0500 Subject: [PATCH 041/219] DocJuris Connector v3.1 (#1163) Adds several new features- * New Endpoint to get available playbooks * New Trigger for turn mentions * Extend turn document endpoint with Option to download screening report * Extend contract create with playbook id and owning user email * Refinements to some data titles for clarity in the UI --- .../DocJuris/apiDefinition.swagger.json | 406 +++++++++++++++++- 1 file changed, 383 insertions(+), 23 deletions(-) diff --git a/certified-connectors/DocJuris/apiDefinition.swagger.json b/certified-connectors/DocJuris/apiDefinition.swagger.json index 3303626f34..89c6845edb 100644 --- a/certified-connectors/DocJuris/apiDefinition.swagger.json +++ b/certified-connectors/DocJuris/apiDefinition.swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "DocJuris", - "version": "v3", + "version": "v3.1", "description": "DocJuris is a contract negotiation workspace that empowers legal and business teams to close deals with speed and accuracy.", "contact": { "name": "DocJuris Support", @@ -158,7 +158,8 @@ "completedWithMarkup", "completedClean", "original", - "imported" + "imported", + "screeningReport" ] } ], @@ -220,7 +221,8 @@ "completedWithMarkup", "completedClean", "original", - "imported" + "imported", + "screeningReport" ] } ], @@ -369,6 +371,81 @@ } } }, + "/v1/playbooks": { + "get": { + "tags": [ + "Playbooks" + ], + "summary": "Get playbooks", + "description": "Get available playbooks.", + "operationId": "GetPlaybook", + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "skip", + "x-ms-summary": "Skip", + "description": "Skip N types. Default 0.", + "type": "integer", + "format": "int32" + }, + { + "in": "query", + "name": "take", + "x-ms-summary": "Take", + "description": "Take N types. Default 200.", + "type": "integer", + "format": "int32" + }, + { + "in": "query", + "name": "sortBy", + "x-ms-summary": "Sort Field", + "description": "Sort field.", + "type": "string" + }, + { + "in": "query", + "name": "filter", + "x-ms-summary": "Filter", + "description": "Filter to names including given string.", + "type": "string" + }, + { + "in": "query", + "name": "simpleResponse", + "description": "Return short version", + "type": "string", + "x-ms-visibility": "internal", + "default": "true", + "required": true + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/PlaybookListApiStandardResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/ApiStandardResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ApiStandardResponse" + } + } + } + } + }, "/v1/subscriptions/{id}": { "delete": { "description": "Deletes a subscription", @@ -409,9 +486,9 @@ }, "/v1/subscriptions/turnCompleted": { "x-ms-notification-content": { - "description": "TurnCreatedMessage", + "description": "TurnCompletedMessage", "schema": { - "$ref": "#/definitions/SubscriptionMessage" + "$ref": "#/definitions/TurnSubscriptionMessage" } }, "post": { @@ -473,7 +550,7 @@ "x-ms-notification-content": { "description": "TurnCreatedMessage", "schema": { - "$ref": "#/definitions/SubscriptionMessage" + "$ref": "#/definitions/TurnSubscriptionMessage" } }, "post": { @@ -535,7 +612,7 @@ "x-ms-notification-content": { "description": "TurnCreatedMessage", "schema": { - "$ref": "#/definitions/SubscriptionMessage" + "$ref": "#/definitions/TurnSubscriptionMessage" } }, "post": { @@ -593,6 +670,68 @@ ] } }, + "/v1/subscriptions/turnMention": { + "x-ms-notification-content": { + "description": "TurnMentionMessage", + "schema": { + "$ref": "#/definitions/TurnMentionSubscriptionMessage" + } + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SubscriptionApiStandardResponse" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/ApiStandardResponse" + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "$ref": "#/definitions/ApiStandardResponse" + } + } + }, + "summary": "Mention in Turn", + "description": "Mention in Turn", + "operationId": "TurnMentionTrigger", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "webhookUrl": { + "type": "string", + "description": "webhookUrl", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "" + } + }, + "required": [ + "webhookUrl" + ] + } + } + ] + } + }, "/v1/subscriptions/testmessages": { "get": { "tags": [ @@ -792,7 +931,8 @@ "completedWithMarkup", "completedClean", "original", - "imported" + "imported", + "screeningreport" ] } ], @@ -865,7 +1005,8 @@ "completedWithMarkup", "completedClean", "original", - "imported" + "imported", + "screeningreport" ] } ], @@ -920,37 +1061,55 @@ }, "Contract": { "type": "object", + "title": "Contract", "properties": { "description": { + "title": "Description", "type": "string" }, "id": { + "title": "Id", "format": "uuid", - "type": "string" + "type": "string", + "x-ms-visibility": "important" }, "latestTurnId": { + "title": "Latest Turn Id", "format": "uuid", "type": "string" }, "lastModified": { + "title": "Last Modified Date", "format": "date-time", "type": "string" }, "name": { + "title": "Name", "type": "string" }, "type": { - "$ref": "#/definitions/ContractType" + "title": "Type", + "type": "object", + "properties": { + "id": { + "title": "ID", + "format": "int32", + "type": "integer" + }, + "name": { + "title": "Name", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } + } }, "counterParty": { + "title": "Counterparty", "$ref": "#/definitions/CounterParty" }, - "turns": { - "type": "array", - "items": { - "$ref": "#/definitions/Turn" - } - }, "extendedData": { "$ref": "#/definitions/ExtendedData" }, @@ -989,6 +1148,28 @@ "operationId": "GetContractType", "value-path": "id", "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "GetContractType", + "itemValuePath": "id", + "itemTitlePath": "name" + } + }, + "playbookId": { + "title": "Playbook", + "format": "int32", + "description": "Playbook for contract", + "type": "integer", + "x-ms-summary": "Playbook form", + "x-ms-dynamic-values": { + "operationId": "GetPlaybook", + "value-path": "id", + "value-title": "title" + }, + "x-ms-dynamic-list": { + "operationId": "GetPlaybook", + "itemValuePath": "id", + "itemTitlePath": "title" } }, "counterPartyName": { @@ -1010,12 +1191,17 @@ "title": "Contract file name", "maxLength": 300, "type": "string" + }, + "owningUserEmail": { + "title": "Owning User's Email Address", + "type": "string", + "maxLength": 300 } } }, "ContractType": { "type": "object", - "title": "Contract type", + "title": "Contract Type", "properties": { "id": { "title": "ID", @@ -1187,6 +1373,64 @@ } } }, + "Playbook": { + "type": "object", + "title": "Playbook", + "properties": { + "id": { + "title": "ID", + "format": "int32", + "type": "integer" + }, + "name": { + "title": "Title", + "type": "string" + }, + "contractType": { + "$ref": "#/definitions/ContractType" + } + } + }, + "PlaybookListApiStandardResponse": { + "type": "object", + "properties": { + "meta": { + "$ref": "#/definitions/ApiStandardResponseMeta" + }, + "response": { + "$ref": "#/definitions/PlaybookList" + } + } + }, + "PlaybookList": { + "type": "object", + "properties": { + "totalCount": { + "format": "int32", + "type": "integer" + }, + "skip": { + "format": "int32", + "type": "integer" + }, + "take": { + "format": "int32", + "type": "integer" + }, + "filter": { + "type": "string" + }, + "sortBy": { + "type": "string" + }, + "playbooks": { + "type": "array", + "items": { + "$ref": "#/definitions/Playbook" + } + } + } + }, "StagedImport": { "type": "object", "properties": { @@ -1280,7 +1524,7 @@ } } }, - "SubscriptionMessage": { + "TurnSubscriptionMessage": { "type": "object", "properties": { "messageId": { @@ -1304,7 +1548,7 @@ "description": "type" }, "url": { - "title": "DocJuris URL", + "title": "URL to DocJuris", "type": "string", "description": "url" }, @@ -1334,6 +1578,122 @@ } } }, + "TurnMentionSubscriptionMessage": { + "type": "object", + "properties": { + "messageId": { + "title": "Message ID", + "type": "string", + "description": "id" + }, + "turnId": { + "title": "Turn ID", + "type": "string", + "description": "id" + }, + "contractId": { + "title": "Contract ID", + "type": "string", + "description": "contractId" + }, + "type": { + "title": "Event type", + "type": "string", + "description": "type" + }, + "url": { + "title": "URL to DocJuris", + "type": "string", + "description": "url" + }, + "tags": { + "type": "array", + "title": "Tags", + "items": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "string", + "description": "id" + }, + "name": { + "title": "Name", + "type": "string", + "description": "name" + }, + "description": { + "title": "Description", + "type": "string", + "description": "description" + } + } + } + }, + "mention": { + "type": "object", + "properties": { + "text": { + "title": "Text", + "type": "string", + "description": "text" + }, + "mentioningUser": { + "title": "Mentioning User", + "type": "object", + "properties": { + "firstName": { + "title": "First Name", + "type": "string", + "description": "firstName" + }, + "lastName": { + "title": "Last Name", + "type": "string", + "description": "lastName" + }, + "userName": { + "title": "Username", + "type": "string", + "description": "userName" + } + } + }, + "mentionedUser": { + "title": "Mentioned User", + "type": "object", + "properties": { + "firstName": { + "title": "First Name", + "type": "string", + "description": "firstName" + }, + "lastName": { + "title": "Last Name", + "type": "string", + "description": "lastName" + }, + "userName": { + "title": "Username", + "type": "string", + "description": "userName" + } + } + }, + "commentId": { + "title": "Commend ID", + "type": "string", + "description": "commentId" + }, + "url": { + "title": "Link to comment in DocJuris", + "type": "string", + "description": "url" + } + } + } + } + }, "Turn": { "type": "object", "properties": { @@ -1402,7 +1762,7 @@ "type": "object", "properties": { "source": { - "description": "A string that describes who this turn is from (i.e. internal dept., outside counsel, etc.). If this turn is from the counter party leave this blank.", + "description": "A string that describes who this turn is from (i.e. internal dept., outside counsel, etc.). If this turn is from the counterparty leave this blank.", "type": "string" }, "description": { @@ -1446,10 +1806,10 @@ }, "Urls": { "type": "object", - "title": "Urls", + "title": "Url", "properties": { "app": { - "title": "(Docjuris App)", + "title": "to DocJuris", "type": "string" } } From 53c0307ee171db749a54de1bcb172010c195aec8 Mon Sep 17 00:00:00 2001 From: Emil Bech Madsen <46725931+emilbm@users.noreply.github.com> Date: Thu, 7 Oct 2021 01:47:29 +0200 Subject: [PATCH 042/219] Lassox/v1.2 (Bugfix) (#1164) * LassoX: Initial Certification Commit * LassoX: Fixed validation errors * LassoX: Removed all Danish translations * - LassoX: Fixed missing comma in apiProperties.json causing submission process to fail. * LassoX: Added missing newline * - Added a new endpoint, RelatedProductionUnits, which returns a list of the object type found in "ProductionUnitInformation" - Changed description of cityName a little. - Changed version number to 1.2 * - Changed some descriptions and titles for phonenumber and faxnumber. * LassoX: Fixed issue with field being incorrectly string instead of int32. --- .../LassoX/apiDefinition.swagger.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/certified-connectors/LassoX/apiDefinition.swagger.json b/certified-connectors/LassoX/apiDefinition.swagger.json index 273ba3be3b..bb92432177 100644 --- a/certified-connectors/LassoX/apiDefinition.swagger.json +++ b/certified-connectors/LassoX/apiDefinition.swagger.json @@ -158,7 +158,8 @@ "title": "Housenumber From" }, "houseNumberTo": { - "type": "string", + "type": "integer", + "format": "int32", "description": "Housenumber To", "title": "Housenumber To" }, @@ -961,7 +962,8 @@ "title": "Housenumber From" }, "houseNumberTo": { - "type": "string", + "type": "integer", + "format": "int32", "description": "Housenumber To", "title": "Housenumber To" }, @@ -3265,7 +3267,8 @@ "title": "Housenumber From" }, "houseNumberTo": { - "type": "string", + "type": "integer", + "format": "int32", "description": "Housenumber To", "title": "Housenumber To" }, @@ -3581,7 +3584,8 @@ "title": "Housenumber From" }, "houseNumberTo": { - "type": "string", + "type": "integer", + "format": "int32", "description": "Housenumber To", "title": "Housenumber To" }, From 79f6312440e1c080bceb87d87ebcb361f6ae0b2f Mon Sep 17 00:00:00 2001 From: johannesh-recordedfuture <58779625+johannesh-recordedfuture@users.noreply.github.com> Date: Thu, 7 Oct 2021 04:02:53 +0200 Subject: [PATCH 043/219] Recorded Future New Connector (#1117) * Add a new RecordedFuture connector * Make changes according to paconn validate * Add to README * Fix indentation * Remove image * Rename connector from New to V2 * Remove empty definitions * Remove camel-case descriptions * Set json to 2-space tab * Remove extension endpoints due to missing response schema * Rename connector folder to match new title * Add response schema for /fusion/files, /alert/lookup and /alert/search --- .../RecordedFutureV2/README.md | 28 + .../apiDefinition.swagger.json | 1559 +++++++++++++++++ .../RecordedFutureV2/apiProperties.json | 23 + 3 files changed, 1610 insertions(+) create mode 100644 certified-connectors/RecordedFutureV2/README.md create mode 100644 certified-connectors/RecordedFutureV2/apiDefinition.swagger.json create mode 100644 certified-connectors/RecordedFutureV2/apiProperties.json diff --git a/certified-connectors/RecordedFutureV2/README.md b/certified-connectors/RecordedFutureV2/README.md new file mode 100644 index 0000000000..7fb94b7264 --- /dev/null +++ b/certified-connectors/RecordedFutureV2/README.md @@ -0,0 +1,28 @@ +The Recorded Future integration allows real-time security intelligence to be integrated into popular Microsoft services like Sentinel, Defender ATP, and others. This empowers our clients to maximize their existing security investments, ensuring they have real-time intelligence to secure their cloud environments and reduce risk to the organization. The Recorded Future connector for Microsoft Azure enables access to dedicated actions for pulling Recorded Future indicators (IP, Domain, URL, Hash, Vulnerabilities), associated context (Risk Score, Risk Rules, High Confidence Links, and an Intelligence Card Link), and Recorded Future alerts. + +## Whats new? + +This new version of the connector improves the enrichment actions by replacing the Related Entity section with High Confidence Evidence Based Links. (More details on links can be found here: https://support.recordedfuture.com/hc/en-us/articles/1500006698521-Links). + +## Why a new connector? + +This connector uses a new underlying API specifically built to serve the connector. The new API requires different API tokens for authentication and we do not want to break usage for existing clients. + +## Prerequisites + +To enable the Recorded Future for Microsoft Azure integration, users must be provisioned a Recorded Future API token. Please reach to your account manager to obtain the necessary API token. + +## How to get credentials + +Prior to use of the Recorded Future integration for Microsoft Azure, users must provision an API token from their account manager or from within the Recorded Future portal necessary for the integration. + +1. Login to the Recorded Future Portal (https://app.recordedfuture.com). Click on the menu in the upper right and choose “User Settings”. + +2. On the User Settings menu, choose the “API Access” section and click the “Generate New API Token” link. + +3. Provide a name for your token, select a “Description” of “Microsoft Azure”, and then click the “Create” button. Save the API token that is generated, since you will configure it within the Microsoft Azure connector for the integration. + + +## Known issues and limitations + +N/A diff --git a/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json new file mode 100644 index 0000000000..92b7bdbf40 --- /dev/null +++ b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json @@ -0,0 +1,1559 @@ +{ + "swagger":"2.0", + "info":{ + "title":"Recorded Future V2", + "description":"Recorded Future Connector enables access to the Recorded Future Intelligence. The connector has dedicated actions for pulling Recorded Future indicators (IP, Domain, URL, Hash) and associated context (Risk Score, Risk Rules, Intelligence Card Link and High Confidence Evidence Based Links), Vulnerabilities, Recorded Future Alerts and enables access to Recorded Future SOAR API and Fusion Files", + "contact":{ + "name":"Recorded Future Support", + "url":"https://support.recordedfuture.com", + "email":"support@recordedfuture.com" + }, + "version":"1.0" + }, + "host":"api.recordedfuture.com", + "basePath":"/gw/azure", + "schemes":[ + "https" + ], + "paths":{ + "/lookup/ip/{ip}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "intelCard":{ + "type":"string", + "description":"Recorded Future Intelligence Card Link", + "title":"intelCard", + "x-ms-visibility":"important" + }, + "risk":{ + "type":"object", + "properties":{ + "criticalityLabel":{ + "type":"string", + "description":"Recorded Future Indicator Criticality Level", + "title":"criticalityLabel", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "format":"int32", + "description":"Recorded Future Indicator Risk Score", + "title":"score", + "x-ms-visibility":"important" + }, + "evidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "mitigationString":{ + "type":"string", + "description":"Mitigating string", + "x-ms-visibility":"internal" + }, + "timestamp":{ + "type":"string", + "description":"Timestamp", + "x-ms-visibility":"internal" + }, + "criticalityLabel":{ + "type":"string", + "description":"Criticality label", + "x-ms-visibility":"internal" + }, + "evidenceString":{ + "type":"string", + "description":"Recorded Future Risk Rules Evidence Details", + "title":"evidenceString", + "x-ms-visibility":"advanced" + }, + "rule":{ + "type":"string", + "description":"Recorded Future Indicator Risk Rules", + "title":"rule", + "x-ms-visibility":"important" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + } + } + }, + "description":"Evidence details" + }, + "riskString":{ + "type":"string", + "description":"Risk string", + "x-ms-visibility":"internal" + }, + "rules":{ + "type":"integer", + "format":"int32", + "description":"Rules", + "x-ms-visibility":"internal" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + }, + "riskSummary":{ + "type":"string", + "description":"Recorded Future Risk Rules Summary", + "title":"riskSummary", + "x-ms-visibility":"advanced" + } + }, + "description":"Risk" + }, + "links":{ + "$ref":"#/definitions/Links" + } + }, + "description":"Data" + } + } + } + } + }, + "summary":"IP Enrichment", + "description":"IP Enrichment with Recorded Future data", + "operationId":"IP_E", + "x-ms-visibility":"important", + "parameters":[ + { + "name":"ip", + "in":"path", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "description":"The IP address to lookup. Must be a single IP address", + "x-ms-summary":"IP input", + "x-ms-url-encoding":"single" + }, + { + "name":"fields", + "in":"query", + "required":true, + "type":"string", + "default":"intelCard,risk,links", + "x-ms-visibility":"internal" + } + ] + } + }, + "/lookup/domain/{domain}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "intelCard":{ + "type":"string", + "description":"Recorded Future Intelligence Card Link", + "title":"intelCard", + "x-ms-visibility":"important" + }, + "risk":{ + "type":"object", + "properties":{ + "criticalityLabel":{ + "type":"string", + "description":"Recorded Future Indicator Criticality Level", + "title":"criticalityLabel", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "format":"int32", + "description":"Recorded Future Indicator Risk Score", + "title":"score", + "x-ms-visibility":"important" + }, + "evidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "mitigationString":{ + "type":"string", + "description":"Mitigating string", + "x-ms-visibility":"internal" + }, + "timestamp":{ + "type":"string", + "description":"Timestamp", + "x-ms-visibility":"internal" + }, + "criticalityLabel":{ + "type":"string", + "description":"Criticality label", + "x-ms-visibility":"internal" + }, + "evidenceString":{ + "type":"string", + "description":"Recorded Future Risk Rules Evidence Details", + "title":"evidenceString", + "x-ms-visibility":"advanced" + }, + "rule":{ + "type":"string", + "description":"Recorded Future Indicator Risk Rules", + "title":"rule", + "x-ms-visibility":"advanced" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + } + } + }, + "description":"Evidence details" + }, + "riskString":{ + "type":"string", + "description":"Risk string", + "x-ms-visibility":"internal" + }, + "rules":{ + "type":"integer", + "format":"int32", + "description":"Rules", + "x-ms-visibility":"internal" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + }, + "riskSummary":{ + "type":"string", + "description":"Recorded Future Risk Rules Summary", + "title":"riskSummary", + "x-ms-visibility":"advanced" + } + }, + "description":"Risk" + }, + "links":{ + "$ref":"#/definitions/Links" + } + }, + "description":"Data" + } + } + } + } + }, + "summary":"Domain Enrichment", + "description":"Domain Enrichment with Recorded Future data", + "operationId":"D_E", + "x-ms-visibility":"important", + "parameters":[ + { + "name":"domain", + "in":"path", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "description":"The domain to lookup. Must be a single domain", + "x-ms-summary":"Domain input", + "x-ms-url-encoding":"single" + }, + { + "name":"fields", + "in":"query", + "required":true, + "type":"string", + "default":"intelCard,risk,links", + "x-ms-visibility":"internal" + } + ] + } + }, + "/lookup/url/{url}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "risk":{ + "type":"object", + "properties":{ + "criticalityLabel":{ + "type":"string", + "description":"Recorded Future Indicator Criticality Level", + "title":"criticalityLabel", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "format":"int32", + "description":"Recorded Future Indicator Risk Score", + "title":"score", + "x-ms-visibility":"important" + }, + "evidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "mitigationString":{ + "type":"string", + "description":"Mitigating string", + "x-ms-visibility":"internal" + }, + "timestamp":{ + "type":"string", + "description":"Timestamp", + "x-ms-visibility":"internal" + }, + "criticalityLabel":{ + "type":"string", + "description":"Criticality label", + "x-ms-visibility":"internal" + }, + "evidenceString":{ + "type":"string", + "description":"Recorded Future Risk Rules Evidence Details", + "title":"evidenceString", + "x-ms-visibility":"advanced" + }, + "rule":{ + "type":"string", + "description":"Recorded Future Indicator Risk Rules", + "title":"rule", + "x-ms-visibility":"important" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + } + } + }, + "description":"Evidence details" + }, + "riskString":{ + "type":"string", + "description":"Risk string", + "x-ms-visibility":"internal" + }, + "rules":{ + "type":"integer", + "format":"int32", + "description":"Rules", + "x-ms-visibility":"internal" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + }, + "riskSummary":{ + "type":"string", + "description":"Recorded Future Risk Rules Summary", + "title":"riskSummary", + "x-ms-visibility":"advanced" + } + }, + "description":"Risk" + }, + "links":{ + "$ref":"#/definitions/Links" + } + }, + "description":"Data" + } + } + } + } + }, + "summary":"URL Enrichment", + "description":"URL Enrichment with Recorded Future data", + "operationId":"U_E", + "x-ms-visibility":"important", + "parameters":[ + { + "name":"url", + "in":"path", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "description":"The URL to lookup. Must be a single URL", + "x-ms-summary":"URL input", + "x-ms-url-encoding":"single" + }, + { + "name":"fields", + "in":"query", + "required":true, + "type":"string", + "default":"intelCard,risk,links", + "x-ms-visibility":"internal" + } + ] + } + }, + "/lookup/hash/{hash}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "intelCard":{ + "type":"string", + "description":"Recorded Future Intelligence Card Link", + "title":"intelCard", + "x-ms-visibility":"important" + }, + "risk":{ + "type":"object", + "properties":{ + "criticalityLabel":{ + "type":"string", + "description":"Recorded Future Indicator Criticality Level", + "title":"criticalityLabel", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "format":"int32", + "description":"Recorded Future Indicator Risk Score", + "title":"score", + "x-ms-visibility":"important" + }, + "evidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "mitigationString":{ + "type":"string", + "description":"Mitigating string", + "x-ms-visibility":"internal" + }, + "timestamp":{ + "type":"string", + "description":"Timestamp", + "x-ms-visibility":"internal" + }, + "criticalityLabel":{ + "type":"string", + "description":"Criticality label", + "x-ms-visibility":"internal" + }, + "evidenceString":{ + "type":"string", + "description":"Recorded Future Risk Rules Evidence Details", + "title":"evidenceString", + "x-ms-visibility":"advanced" + }, + "rule":{ + "type":"string", + "description":"Recorded Future Indicator Risk Rules", + "title":"rule", + "x-ms-visibility":"important" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + } + } + }, + "description":"Evidence details" + }, + "riskString":{ + "type":"string", + "description":"Risk string", + "x-ms-visibility":"internal" + }, + "rules":{ + "type":"integer", + "format":"int32", + "description":"Rules", + "x-ms-visibility":"internal" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + }, + "riskSummary":{ + "type":"string", + "description":"Recorded Future Risk Rules Summary", + "title":"riskSummary", + "x-ms-visibility":"advanced" + } + }, + "description":"Risk" + }, + "links":{ + "$ref":"#/definitions/Links" + } + }, + "description":"Data" + } + } + } + } + }, + "summary":"Hash Enrichment", + "description":"Hash Enrichment with Recorded Future data", + "operationId":"H_E", + "x-ms-visibility":"important", + "parameters":[ + { + "name":"hash", + "in":"path", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "description":"The HASH to lookup. Must be a single HASH", + "x-ms-summary":"HASH input", + "x-ms-url-encoding":"single" + }, + { + "name":"fields", + "in":"query", + "required":true, + "type":"string", + "default":"intelCard,risk,links", + "x-ms-visibility":"internal" + } + ] + } + }, + "/lookup/vulnerability/{id}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "intelCard":{ + "type":"string", + "description":"Recorded Future Intelligence Card Link", + "title":"intelCard", + "x-ms-visibility":"important" + }, + "risk":{ + "type":"object", + "properties":{ + "criticalityLabel":{ + "type":"string", + "description":"Recorded Future Vulnerability Criticality Level", + "title":"criticalityLabel", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "format":"int32", + "description":"Recorded Future Vulnerability Risk Score", + "title":"score", + "x-ms-visibility":"important" + }, + "evidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "mitigationString":{ + "type":"string", + "description":"Mitigating string", + "x-ms-visibility":"internal" + }, + "timestamp":{ + "type":"string", + "description":"Timestamp", + "x-ms-visibility":"internal" + }, + "criticalityLabel":{ + "type":"string", + "description":"Criticality label", + "x-ms-visibility":"internal" + }, + "evidenceString":{ + "type":"string", + "description":"Recorded Future Risk Rules Evidence Details", + "title":"evidenceString", + "x-ms-visibility":"advanced" + }, + "rule":{ + "type":"string", + "description":"Recorded Future Vulnerability Risk Rules", + "title":"rule", + "x-ms-visibility":"important" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + } + } + }, + "description":"Evidence details" + }, + "riskString":{ + "type":"string", + "description":"Risk string", + "x-ms-visibility":"internal" + }, + "rules":{ + "type":"integer", + "format":"int32", + "description":"Rules", + "x-ms-visibility":"internal" + }, + "criticality":{ + "type":"integer", + "format":"int32", + "description":"Criticality", + "x-ms-visibility":"internal" + }, + "riskSummary":{ + "type":"string", + "description":"Recorded Future Risk Rules Summary", + "title":"riskSummary", + "x-ms-visibility":"advanced" + } + }, + "description":"Risk" + }, + "links":{ + "$ref":"#/definitions/Links" + } + }, + "description":"Data" + } + } + } + } + }, + "summary":"Vulnerability Enrichment", + "description":"Vulnerability Enrichment with Recorded Future data", + "parameters":[ + { + "name":"id", + "in":"path", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "description":"The Vulnerability ID (CVE, name) to lookup. Must be a single Vulnerability ID (CVE, name)", + "x-ms-summary":"Vulnerability ID (CVE, name) input", + "x-ms-url-encoding":"single" + }, + { + "name":"fields", + "in":"query", + "required":true, + "type":"string", + "default":"intelCard,risk,links", + "x-ms-visibility":"internal" + } + ], + "operationId":"Vuln_E", + "x-ms-visibility":"advanced" + } + }, + "/alert/rules":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "title":{ + "type":"string", + "description":"Title", + "title":"Alert Rule Title", + "x-ms-visibility":"advanced" + }, + "id":{ + "type":"string", + "description":"Id", + "title":"Alert Rule ID", + "x-ms-visibility":"important" + } + } + }, + "description":"Results" + } + }, + "description":"Data" + }, + "counts":{ + "type":"object", + "properties":{ + "returned":{ + "type":"integer", + "format":"int32", + "description":"Returned", + "title":"Returned Number of Alert Rules", + "x-ms-visibility":"advanced" + }, + "total":{ + "type":"integer", + "format":"int32", + "description":"Total", + "title":"Total Number of Alert Rules", + "x-ms-visibility":"advanced" + } + }, + "description":"Counts" + } + } + } + } + }, + "summary":"Search Alert Rules", + "description":"Search Recorded Future UI Alert Rules", + "operationId":"Alert_Rules_Search", + "x-ms-visibility":"advanced", + "parameters":[ + { + "name":"freetext", + "in":"query", + "required":false, + "type":"string", + "description":"Freetext search for Alert Rule Name", + "x-ms-visibility":"advanced", + "x-ms-summary":"Freetext search" + }, + { + "name":"limit", + "in":"query", + "required":false, + "type":"integer", + "default":10, + "x-ms-visibility":"advanced", + "description":"Maximum number of records", + "x-ms-summary":"Maximum number of records" + } + ] + } + }, + "/alert/search":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "$ref":"#/definitions/AlertSearch" + } + } + }, + "summary":"Search Alert Notifications", + "operationId":"Alert_Not_Search", + "x-ms-visibility":"advanced", + "parameters":[ + { + "name":"triggered", + "in":"query", + "required":false, + "type":"string", + "description":"All Elasticsearch compatible date formats are valid.", + "x-ms-summary":"Triggered", + "x-ms-visibility":"advanced" + }, + { + "name":"alertRule", + "in":"query", + "required":true, + "type":"string", + "description":"Alert Rule ID", + "x-ms-visibility":"important", + "x-ms-summary":"Alert Rule ID" + }, + { + "name":"limit", + "in":"query", + "required":false, + "type":"integer", + "default":10, + "x-ms-visibility":"advanced", + "description":"Maximum number of records", + "x-ms-summary":"Maximum number of records" + }, + { + "name":"from", + "in":"query", + "required":false, + "type":"integer", + "description":"Records from offset", + "x-ms-visibility":"advanced", + "x-ms-summary":"Records from offset" + } + ], + "description":"Search Alert Notifications" + } + }, + "/alert/{id}":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "$ref":"#/definitions/AlertLookup" + } + } + }, + "summary":"Lookup Alert Notification", + "description":"Lookup Alert Notification", + "operationId":"Alert_Not_Lookup", + "parameters":[ + { + "name":"id", + "in":"path", + "required":true, + "type":"string", + "description":"Alert Notification ID", + "x-ms-visibility":"important", + "x-ms-summary":"Alert Notification ID", + "x-ms-url-encoding":"single" + } + ], + "x-ms-visibility":"advanced" + } + }, + "/fusion/files":{ + "get":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "Name":{ + "type":"string" + }, + "Risk":{ + "type":"string" + }, + "RiskString":{ + "type":"string" + }, + "EvidenceDetails":{ + "type":"object", + "properties":{ + "EvidenceDetails":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "Rule":{ + "type":"string" + }, + "EvidenceString":{ + "type":"string" + }, + "CriticalityLabel":{ + "type":"string" + }, + "Timestamp":{ + "type":"string" + }, + "MitigationString":{ + "type":"string" + }, + "Criticality":{ + "type":"integer" + } + } + } + } + } + } + } + } + } + } + }, + "summary":"Recorded Future RiskLists and SCF Download", + "description":"Recorded Future RiskList & Security Control Feeds Download", + "operationId":"R_List_D", + "x-ms-visibility":"important", + "parameters":[ + { + "name":"path", + "in":"query", + "required":true, + "type":"string", + "x-ms-visibility":"important", + "enum":[ + "/public/MicrosoftAzure/ip_default.json", + "/public/MicrosoftAzure/ip_gt_90.json", + "/public/MicrosoftAzure/ip_active_c2.json", + "/public/MicrosoftAzure/ip_current_c2.json", + "/public/MicrosoftAzure/ip_botnet.json", + "/public/MicrosoftAzure/ip_insikt.json", + "/public/MicrosoftAzure/ip_phishing.json", + "/public/MicrosoftAzure/domain_default.json", + "/public/MicrosoftAzure/domain_gt_90.json", + "/public/MicrosoftAzure/domain_c2_dns.json", + "/public/MicrosoftAzure/domain_ransomware_payment.json", + "/public/MicrosoftAzure/domain_recent_weaponized.json", + "/public/MicrosoftAzure/domain_insikt.json", + "/public/MicrosoftAzure/domain_covid_lure.json", + "/public/MicrosoftAzure/domain_phishing.json", + "/public/MicrosoftAzure/url_gt_90.json", + "/public/MicrosoftAzure/url_c2.json", + "/public/MicrosoftAzure/url_ransomware_distribution.json", + "/public/MicrosoftAzure/url_compromised.json", + "/public/MicrosoftAzure/url_insikt.json", + "/public/MicrosoftAzure/url_malware_verdict.json", + "/public/MicrosoftAzure/hash_targeting_vulns.json", + "/public/MicrosoftAzure/hash_observed_testing.json", + "/public/MicrosoftAzure/hash_malware_ssl.json", + "/public/MicrosoftAzure/vuln_default.json", + "/public/MicrosoftAzure/vuln_gt_90.json", + "/public/MicrosoftAzure/vuln_recent_active_malware.json", + "/public/MicrosoftAzure/vuln_recent_exploit_kit.json", + "/public/MicrosoftAzure/vuln_recent_ransomware.json", + "/public/MicrosoftAzure/vuln_recent_rat.json", + "/public/MicrosoftAzure/vuln_recent_poc_remote.json", + "/public/MicrosoftAzure/vuln_recent_exploit_dev_itw.json", + "/public/MicrosoftAzure/vuln_exploited_itw_malware.json", + "/public/MicrosoftAzure/vuln_critical_cyber_signal.json", + "/public/prevent/c2_communicating_ips.json", + "/public/prevent/weaponized_domains.json", + "/public/prevent/weaponized_urls.json" + ], + "x-ms-editor-options":{ + "items":[ + { + "title":"IP - Default RiskList", + "value":"/public/MicrosoftAzure/ip_default.json" + }, + { + "title":"IP - 90+ (Very Malicious) RiskList", + "value":"/public/MicrosoftAzure/ip_gt_90.json" + }, + { + "title":"IP - Actively Communicating C&C Server", + "value":"/public/MicrosoftAzure/ip_active_c2.json" + }, + { + "title":"IP - Current C&C Server", + "value":"/public/MicrosoftAzure/ip_current_c2.json" + }, + { + "title":"IP - Recent Botnet Traffic", + "value":"/public/MicrosoftAzure/ip_botnet.json" + }, + { + "title":"IP - Recently Reported by Insikt Group", + "value":"/public/MicrosoftAzure/ip_insikt.json" + }, + { + "title":"IP - Phishing Host", + "value":"/public/MicrosoftAzure/ip_phishing.json" + }, + { + "title":"DOMAIN - Default RiskList", + "value":"/public/MicrosoftAzure/domain_default.json" + }, + { + "title":"DOMAIN - 90+ (Very Malicious) RiskList", + "value":"/public/MicrosoftAzure/domain_gt_90.json" + }, + { + "title":"DOMAIN - C&C DNS Name", + "value":"/public/MicrosoftAzure/domain_c2_dns.json" + }, + { + "title":"DOMAIN - Ransomware Payment DNS Name", + "value":"/public/MicrosoftAzure/domain_ransomware_payment.json" + }, + { + "title":"DOMAIN - Recently Active Weaponized Domain", + "value":"/public/MicrosoftAzure/domain_recent_weaponized.json" + }, + { + "title":"DOMAIN - Recently Reported by Insikt Group", + "value":"/public/MicrosoftAzure/domain_insikt.json" + }, + { + "title":"DOMAIN - Recent COVID-19-Related Domain Lure: Malicious", + "value":"/public/MicrosoftAzure/domain_covid_lure.json" + }, + { + "title":"DOMAIN - Recent Phishing Lure: Malicious", + "value":"/public/MicrosoftAzure/domain_phishing.json" + }, + { + "title":"URL - 90+ (Very Malicious) RiskList", + "value":"/public/MicrosoftAzure/url_gt_90.json" + }, + { + "title":"URL - C&C URL", + "value":"/public/MicrosoftAzure/url_c2.json" + }, + { + "title":"URL - Ransomware Distribution URL", + "value":"/public/MicrosoftAzure/url_ransomware_distribution.json" + }, + { + "title":"URL - Compromised URL", + "value":"/public/MicrosoftAzure/url_compromised.json" + }, + { + "title":"URL - Recently Reported by Insikt Group", + "value":"/public/MicrosoftAzure/url_insikt.json" + }, + { + "title":"URL - Positive Malware Verdict", + "value":"/public/MicrosoftAzure/url_malware_verdict.json" + }, + { + "title":"HASH - Recently Active Targeting Vulnerabilities in the Wild", + "value":"/public/MicrosoftAzure/hash_targeting_vulns.json" + }, + { + "title":"HASH - Observed in Underground Virus Testing Sites ", + "value":"/public/MicrosoftAzure/hash_observed_testing.json" + }, + { + "title":"HASH - Malware SSL Certificate Fingerprint", + "value":"/public/MicrosoftAzure/hash_malware_ssl.json" + }, + { + "title":"(SCF) Security Control Feed: Command and Control IPs", + "value":"/public/prevent/c2_communicating_ips.json" + }, + { + "title":"(SCF) Security Control Feed: Weaponized Domains", + "value":"/public/prevent/weaponized_domains.json" + }, + { + "title":"(SCF) Security Control Feed: Weaponized URLs", + "value":"/public/prevent/weaponized_urls.json" + }, + { + "title":"VULNERABILITY - Default RiskList", + "value":"/public/MicrosoftAzure/vuln_default.json" + }, + { + "title":"VULNERABILITY - 90+ (Very Malicious) RiskList", + "value":"/public/MicrosoftAzure/vuln_gt_90.json" + }, + { + "title":"VULNERABILITY - Exploited in the Wild by Recently Active Malware", + "value":"/public/MicrosoftAzure/vuln_recent_active_malware.json" + }, + { + "title":"VULNERABILITY - Recently Linked to Exploit Kit", + "value":"/public/MicrosoftAzure/vuln_recent_exploit_kit.json" + }, + { + "title":"VULNERABILITY - Recently Linked to Ransomware", + "value":"/public/MicrosoftAzure/vuln_recent_ransomware.json" + }, + { + "title":"VULNERABILITY - Recently Linked to Remote Access Trojan", + "value":"/public/MicrosoftAzure/vuln_recent_rat.json" + }, + { + "title":"VULNERABILITY - Recent Verified Proof of Concept Available Using Remote Execution", + "value":"/public/MicrosoftAzure/vuln_recent_poc_remote.json" + }, + { + "title":"VULNERABILITY - Recently Observed Exploit/Tool Development in the Wild", + "value":"/public/MicrosoftAzure/vuln_recent_exploit_dev_itw.json" + }, + { + "title":"VULNERABILITY - Exploited in the Wild by Malware", + "value":"/public/MicrosoftAzure/vuln_exploited_itw_malware.json" + }, + { + "title":"VULNERABILITY - Cyber Exploit Signal: Critical", + "value":"/public/MicrosoftAzure/vuln_critical_cyber_signal.json" + } + ] + }, + "description":"Path to file", + "x-ms-summary":"Path to file" + } + ] + } + }, + "/soar/lookup":{ + "post":{ + "responses":{ + "200":{ + "description":"Default", + "schema":{ + "type":"string" + } + } + }, + "summary":"SOAR API - Look up multiple entities", + "description":"SOAR API - Look up multiple entities (Specific Access is Required)", + "operationId":"Soar_Bulk_Lookup", + "x-ms-visibility":"important", + "consumes":[ + "application/json" + ], + "parameters":[ + { + "name":"body", + "in":"body", + "required":false, + "schema":{ + "type":"object", + "properties":{ + "ip":{ + "type":"array", + "items":{ + "type":"string", + "description":"An IP or array of IPs: array[string]", + "title":"IP", + "x-ms-visibility":"important" + }, + "description":"Ip" + }, + "url":{ + "type":"array", + "items":{ + "type":"string", + "description":"An URL or array of URLs: array[string]", + "title":"URL", + "x-ms-visibility":"important" + }, + "description":"Url" + }, + "domain":{ + "type":"array", + "items":{ + "type":"string", + "description":"A domain or array of domains: array[string]", + "title":"Domain", + "x-ms-visibility":"important" + }, + "description":"Domain" + }, + "hash":{ + "type":"array", + "items":{ + "type":"string", + "description":"A hash or array of hashes: array[string]", + "title":"HASH", + "x-ms-visibility":"advanced" + }, + "description":"Hash" + }, + "vulnerability":{ + "type":"array", + "items":{ + "type":"string", + "description":"A vulnerability ID or an array of vulnerability IDs: array[string]", + "title":"Vulnerability", + "x-ms-visibility":"advanced" + }, + "description":"Vulnerability" + } + } + } + } + ] + } + } + }, + "x-ms-connector-metadata":[ + { + "propertyName":"Website", + "propertyValue":"https://www.recordedfuture.com" + }, + { + "propertyName":"Privacy Policy", + "propertyValue":"https://www.recordedfuture.com/privacy-policy/" + }, + { + "propertyName":"Categories", + "propertyValue":"AI;Data" + } + ], + "definitions":{ + "Links":{ + "type":"object", + "title":"links", + "description":"High Confidence Evidence Based Links", + "x-ms-visibility":"important", + "properties":{ + "technical":{ + "type":"object", + "title":"technical", + "description":"Technical links generated through network traffic analysis, malware analysis, infrastructure analysis and more", + "x-ms-visibility":"important", + "properties":{ + "start_date":{ + "type":"string", + "title":"startDate", + "description":"Link start date", + "x-ms-visibility":"important" + }, + "stop_date":{ + "type":"string", + "title":"stopDate", + "description":"Link stop date", + "x-ms-visibility":"important" + }, + "entities":{ + "type":"array", + "title":"entities", + "description":"Related entities", + "x-ms-visibility":"important", + "items":{ + "$ref":"#/definitions/LinkEntities" + } + } + } + }, + "research":{ + "type":"object", + "title":"research", + "description":"Research links discovered by Insikt Group", + "x-ms-visibility":"important", + "properties":{ + "start_date":{ + "type":"string", + "title":"startDate", + "description":"Link start date", + "x-ms-visibility":"important" + }, + "stop_date":{ + "type":"string", + "title":"stopDate", + "description":"Link stop date", + "x-ms-visibility":"important" + }, + "entities":{ + "type":"array", + "title":"entities", + "description":"Related entities", + "x-ms-visibility":"important", + "items":{ + "$ref":"#/definitions/LinkEntities" + } + } + } + } + } + }, + "LinkEntities":{ + "type":"object", + "properties":{ + "type":{ + "type":"string", + "title":"type", + "description":"Enitity type", + "x-ms-visibility":"important" + }, + "name":{ + "type":"string", + "title":"name", + "description":"Entity name", + "x-ms-visibility":"important" + }, + "score":{ + "type":"integer", + "title":"score", + "description":"Risk score", + "x-ms-visibility":"important" + }, + "category":{ + "type":"string", + "title":"category", + "description":"Entity category", + "x-ms-visibility":"important" + } + } + }, + "AlertSearch":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "review":{ + "$ref":"#/definitions/AlertReview" + }, + "url":{ + "$ref":"#/definitions/AlertURL" + }, + "rule":{ + "$ref":"#/definitions/AlertRule" + }, + "triggered":{ + "$ref":"#/definitions/AlertTriggered" + }, + "id":{ + "$ref":"#/definitions/AlertID" + }, + "title":{ + "$ref":"#/definitions/AlertTitle" + }, + "type":{ + "$ref":"#/definitions/AlertType" + } + } + } + } + } + }, + "counts":{ + "type":"object", + "properties":{ + "returned":{ + "type":"integer" + }, + "total":{ + "type":"integer" + } + } + } + } + }, + "AlertLookup":{ + "type":"object", + "properties":{ + "data":{ + "type":"object", + "properties":{ + "review":{ + "$ref":"#/definitions/AlertReview" + }, + "entities":{ + "$ref":"#/definitions/AlertEntities" + }, + "url":{ + "$ref":"#/definitions/AlertURL" + }, + "rule":{ + "$ref":"#/definitions/AlertRule" + }, + "triggered":{ + "$ref":"#/definitions/AlertTriggered" + }, + "id":{ + "$ref":"#/definitions/AlertID" + }, + "counts":{ + "type":"object", + "properties":{ + "references":{ + "type":"integer" + }, + "entities":{ + "type":"integer" + }, + "documents":{ + "type":"integer" + } + } + }, + "title":{ + "$ref":"#/definitions/AlertTitle" + }, + "type":{ + "$ref":"#/definitions/AlertType" + } + } + } + } + }, + "AlertReview":{ + "type":"object", + "properties":{ + "assignee":{ + "type":"string" + }, + "status":{ + "type":"string" + }, + "noteDate":{ + "type":"string" + }, + "noteAuthor":{ + "type":"string" + }, + "note":{ + "type":"string" + } + } + }, + "AlertEntities":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "trend":{ + "type":"object", + "additionalProperties":true + }, + "documents":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "references":{ + "type":"object", + "properties":{ + "fragment":{ + "type":"string" + }, + "entities":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "id":{ + "type":"string" + }, + "name":{ + "type":"string" + }, + "type":{ + "type":"string" + } + } + } + }, + "language":{ + "type":"string" + } + } + }, + "source":{ + "type":"object", + "properties":{ + "id":{ + "type":"string" + }, + "name":{ + "type":"string" + }, + "type":{ + "type":"string" + } + } + }, + "title":{ + "type":"string" + }, + "url":{ + "type":"string" + } + } + } + }, + "risk":{ + "type":"object", + "additionalProperties":true + }, + "entity":{ + "type":"string" + } + } + } + }, + "AlertURL":{ + "type":"string" + }, + "AlertRule":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + }, + "id":{ + "type":"string" + }, + "url":{ + "type":"string" + } + } + }, + "AlertTriggered":{ + "type":"string" + }, + "AlertID":{ + "type":"string" + }, + "AlertTitle":{ + "type":"string" + }, + "AlertType":{ + "type":"string" + } + }, + "securityDefinitions":{ + "API Key":{ + "type":"apiKey", + "in":"header", + "name":"X-RFToken" + } + }, + "security":[ + { + "API Key":[ + + ] + } + ] +} \ No newline at end of file diff --git a/certified-connectors/RecordedFutureV2/apiProperties.json b/certified-connectors/RecordedFutureV2/apiProperties.json new file mode 100644 index 0000000000..138dda0dd3 --- /dev/null +++ b/certified-connectors/RecordedFutureV2/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties":{ + "connectionParameters":{ + "api_key":{ + "type":"securestring", + "uiDefinition":{ + "displayName":"API Key", + "description":"The API Key for this api", + "tooltip":"Provide your API Key", + "constraints":{ + "tabIndex":2, + "clearText":false, + "required":"true" + } + } + } + }, + "iconBrandColor":"#0071CE", + "capabilities":[], + "publisher":"Recorded Future", + "stackOwner":"Recorded Future" + } +} From 1d70d581fb9e9e821a158f56e83d8fae5c93f8e7 Mon Sep 17 00:00:00 2001 From: nriyanicrest <77059817+nriyanicrest@users.noreply.github.com> Date: Thu, 7 Oct 2021 22:50:27 +0530 Subject: [PATCH 044/219] Removed the register symbol (#1166) Co-authored-by: himanshumotiramani_crest --- .../RiskIQPassiveTotal/apiDefinition.swagger.json | 2 +- certified-connectors/RiskIQPassiveTotal/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json b/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json index 01a6986425..deddf95c94 100644 --- a/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json +++ b/certified-connectors/RiskIQPassiveTotal/apiDefinition.swagger.json @@ -7,7 +7,7 @@ "url": "https://www.riskiq.com/contact-us/", "email": "support@riskiq.com" }, - "description": "RiskIQ Illuminate® reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place.", + "description": "RiskIQ Illuminate reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place.", "version": "1.1" }, "host": "api.riskiq.net", diff --git a/certified-connectors/RiskIQPassiveTotal/readme.md b/certified-connectors/RiskIQPassiveTotal/readme.md index 451e723d73..c13f34a9ce 100644 --- a/certified-connectors/RiskIQPassiveTotal/readme.md +++ b/certified-connectors/RiskIQPassiveTotal/readme.md @@ -1,6 +1,6 @@ # RiskIQ Illuminate -RiskIQ Illuminate® reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place. +RiskIQ Illuminate reveals cyber threats relevant to your critical assets through connected digital relationships. It is the only security intelligence solution with tailored attack surface intelligence to uncover exposures, risks, and threats against your unique digital footprint, pinpointing what’s relevant to you—all in one place. ## Pre-requisites From 37561f1b3253cf3e29eef9f8dd94e618c095280a Mon Sep 17 00:00:00 2001 From: Marc Date: Thu, 7 Oct 2021 20:43:19 +0200 Subject: [PATCH 045/219] timeghost: new feature (#1161) * Add groups and private projects Add groups and private projects * Set private as required Set private as required * Remove x-functions-key Remove x-functions-key * Removed required fields Removed required fields * timeghost image added * delete image * Definition for Project Update * Time Update definition * better format * New task update definition * update client update definition * group update defintition added * timetag update definition added * Custom Event update definintion added * project hourly rate added * color added to client * timezone amount and cost added to time response * new response properties * times response for client and project times * Get current user and workspace public * times response fix label * fix project user property * role return fix * fix defaultvalue in users array * role is required in project users * externalId added * uppercase ID --- .../timeghost/apiDefinition.swagger.json | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/certified-connectors/timeghost/apiDefinition.swagger.json b/certified-connectors/timeghost/apiDefinition.swagger.json index 5a4e54657c..d08d3c86a4 100644 --- a/certified-connectors/timeghost/apiDefinition.swagger.json +++ b/certified-connectors/timeghost/apiDefinition.swagger.json @@ -2764,6 +2764,11 @@ } } } + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -2924,6 +2929,13 @@ "id", "role" ] } + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -3085,6 +3097,13 @@ "id", "role" ] } + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } } }, @@ -3132,6 +3151,11 @@ "type": "string", "x-ms-summary": "Color", "description": "The color of the client" + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -3154,6 +3178,13 @@ "type": "string", "x-ms-summary": "Color", "description": "Color of the project. eg '#0000FF'" + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -3179,6 +3210,13 @@ "type": "string", "x-ms-summary": "Color", "description": "Color of the project. eg '#0000FF'" + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } } }, @@ -3334,6 +3372,11 @@ "format": "double", "description": "The labor cost of the time entry", "x-ms-summary": "Cost" + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -3501,6 +3544,13 @@ "required": [ "id" ] + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -3675,6 +3725,13 @@ "required": [ "id" ] + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } } }, @@ -3768,6 +3825,11 @@ "format": "double", "description": "The estimated budget of the task", "x-ms-summary": "Estimation" + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -3852,6 +3914,13 @@ "description": "The estimated budget of the task", "x-ms-summary": "Estimation (hours)", "default": 0 + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -3940,6 +4009,13 @@ "format": "double", "description": "The estimated budget of the task", "x-ms-summary": "Estimation (hours)" + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } } }, @@ -4135,6 +4211,11 @@ "type": "string", "x-ms-summary": "Name", "description": "Tags' name" + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -4157,6 +4238,13 @@ "enum": [ 1 ] + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -4183,6 +4271,13 @@ "enum": [ 1 ] + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -4270,6 +4365,13 @@ "type": "string", "x-ms-summary": "Category", "description": "Use a value that can be filtered later in the interface. For example 'Planner'." + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } }, "required": [ @@ -4360,6 +4462,13 @@ "type": "string", "x-ms-summary": "Category", "description": "Use a value that can be filtered later in the interface. For example 'Planner'." + }, + "externalId": { + "x-ms-visibility": "advanced", + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping.", + "title": "External ID" } } }, @@ -4429,6 +4538,11 @@ "type": "string", "x-ms-summary": "Category", "description": "This value can be used to filter the feeds in the interface." + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } }, @@ -4631,6 +4745,11 @@ } } } + }, + "externalId": { + "type": "string", + "x-ms-summary": "External ID", + "description": "This value can be used to store an ID from another system. To have a simple mapping." } } } From 3208e642ad30b4337918dff353267e157ec1d733 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 7 Oct 2021 20:36:41 -0400 Subject: [PATCH 046/219] Update readme.md's to include #da3b01 (#1167) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices --- README.md | 2 +- independent-publisher-connectors/readme.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6320b8b185..7ef049bb69 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ More information on the each of the properties are given below: * `connectionParameters`: Defines the connection parameter for the service. -* `iconBrandColor`: The icon brand color in HTML hex code for the custom connector. +* `iconBrandColor`: The icon brand color in HTML hex code for the custom connector. Independent Publisher connectors must set the color to "#da3b01". * `capabilities`: Describes the capabilities for the connector, e.g. cloud only, on-prem gateway etc. diff --git a/independent-publisher-connectors/readme.md b/independent-publisher-connectors/readme.md index b824342539..61339122e2 100644 --- a/independent-publisher-connectors/readme.md +++ b/independent-publisher-connectors/readme.md @@ -15,6 +15,7 @@ If you're considering building and publishing a connector to a Microsoft first p - You can only submit one connector per PR. This ensures that our validation process runs smoothly. - The PR for your connector should follow the pattern "Connector Name (Independent Publisher)" - Please add an email to the support email section. This is in case we need to reach out to you! +- All Independent Publisher connectors must set iconBrandColor to "#da3b01". - Please make sure to fill in the privacy policy parameter with the privacy policy for the end service. - Please make sure that your operation descriptions are detailed. This ensures that the user can understand your operation. - If your connector uses OAuth, please make sure you provide detailed steps on how to create an app in the readme.md. Otherwise, our team will have to pause certification. From 6fd097bdaaaff917d315535f967dbf1e57fa5b6a Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Fri, 8 Oct 2021 17:04:37 -0400 Subject: [PATCH 047/219] Rename readme file and add templates for Independent Publisher (#1170) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP --- .../apiDefinition.swagger.json | 39 +++++++++++++++++++ .../Independent Publisher/apiProperties.json | 9 +++++ templates/{README.template.md => readme.md} | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 templates/Independent Publisher/apiDefinition.swagger.json create mode 100644 templates/Independent Publisher/apiProperties.json rename templates/{README.template.md => readme.md} (98%) diff --git a/templates/Independent Publisher/apiDefinition.swagger.json b/templates/Independent Publisher/apiDefinition.swagger.json new file mode 100644 index 0000000000..d6f3146a4f --- /dev/null +++ b/templates/Independent Publisher/apiDefinition.swagger.json @@ -0,0 +1,39 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Name of connector. Title cannot include words 'API', 'Connector', or a Power Platform product name.", + "description": "Short description of the connecting service, between 30 and 500 characters.", + "contact": { + "name": "Full name", + "url": "Contact URL", + "email": "Contact email address" + } + }, + "host": "The hostname of the API, e.g. github.com", + "basePath": "/", + "schemes": [], + "consumes": [], + "produces": [], + "paths": {}, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "" + }, + { + "propertyName": "Categories", + "propertyValue": "" + } + ] +} \ No newline at end of file diff --git a/templates/Independent Publisher/apiProperties.json b/templates/Independent Publisher/apiProperties.json new file mode 100644 index 0000000000..03abfd8274 --- /dev/null +++ b/templates/Independent Publisher/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Full name or name of company or organization.", + "stackOwner": "Name of company or organization that connector is connecting to." + } +} \ No newline at end of file diff --git a/templates/README.template.md b/templates/readme.md similarity index 98% rename from templates/README.template.md rename to templates/readme.md index a7259dd803..c27de0a337 100644 --- a/templates/README.template.md +++ b/templates/readme.md @@ -33,4 +33,4 @@ Answer to question 1 Answer to question 2 ## Deployment Instructions -Required. Add instructions on how to deploy this connector as custom connector. \ No newline at end of file +Required. Add instructions on how to deploy this connector as custom connector. From 49e155db9454bdc82889cf2bfad28628ac27f9ef Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 11 Oct 2021 20:11:30 -0400 Subject: [PATCH 048/219] EONET by NASA (Independent Publisher) (#1107) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Add files via upload * Added stackOwner * Remove unicode and HTML tags * Removed additional unicodes --- .../EONET by NASA/apiDefinition.swagger.json | 977 ++++++++++++++++++ .../EONET by NASA/apiProperties.json | 23 + .../EONET by NASA/readme.md | 36 + 3 files changed, 1036 insertions(+) create mode 100644 independent-publisher-connectors/EONET by NASA/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/EONET by NASA/apiProperties.json create mode 100644 independent-publisher-connectors/EONET by NASA/readme.md diff --git a/independent-publisher-connectors/EONET by NASA/apiDefinition.swagger.json b/independent-publisher-connectors/EONET by NASA/apiDefinition.swagger.json new file mode 100644 index 0000000000..763f37f729 --- /dev/null +++ b/independent-publisher-connectors/EONET by NASA/apiDefinition.swagger.json @@ -0,0 +1,977 @@ +{ + "swagger": "2.0", + "info": { + "title": "EONET by NASA", + "description": "The Earth Observatory Natural Event Tracker (EONET) is a prototype web service from NASA with the goal of providing a curated source of continuously updated natural event metadata and providing a service that links those natural events to thematically-related web service-enabled image sources (e.g., via WMS, WMTS, etc.).", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "eonet.sci.gsfc.nasa.gov", + "basePath": "/api/v3/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/events": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the API endpoint.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description of the response.", + "title": "Response Description" + }, + "link": { + "type": "string", + "description": "The full link to the API endpoint.", + "title": "Endpoint Link" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique ID for this event.", + "title": "ID" + }, + "title": { + "type": "string", + "description": "The title of the event.", + "title": "Event Title" + }, + "description": { + "type": "string", + "description": "Optional longer description of the event.", + "title": "Description" + }, + "link": { + "type": "string", + "description": "The full link to this specific event.", + "title": "Event Link" + }, + "closed": { + "type": "string", + "description": "An event is deemed closed when it has ended. The closed field will include a date/time when the event has ended. Depending upon the nature of the event, the closed value may or may not accurately represent the absolute ending of the event. If the event is open, this will show null.", + "title": "Closed" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique ID for this category.", + "title": "Category ID" + }, + "title": { + "type": "string", + "description": "Unique ID for this category.", + "title": "Category Title" + } + } + }, + "description": "One or more categories assigned to the event.", + "title": "Categories" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The source ID.", + "title": "Source ID" + }, + "url": { + "type": "string", + "description": "The source URL.", + "title": "Source URL" + } + } + }, + "description": "One or more categories assigned to the event.", + "title": "Sources" + }, + "geometry": { + "type": "array", + "items": { + "type": "object", + "properties": { + "magnitudeValue": { + "type": "number", + "format": "float", + "description": "The magnitude value.", + "title": "Magnitude Value" + }, + "magnitudeUnit": { + "type": "string", + "description": "The magnitude unit.", + "title": "Magnitude Unit" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "date" + }, + "type": { + "type": "string", + "description": "The geometry type.", + "title": "type" + }, + "coordinates": { + "type": "array", + "items": { + "type": "number", + "format": "float", + "description": "The geometry coordinates.", + "title": "Coordinate value" + }, + "description": "The geometry coordinates.", + "title": "Coordinates" + } + } + }, + "description": "One or more event geometries are the pairing of a specific date/time with a location. The date/time will most likely be 00:00Z unless the source provided a particular time. The geometry will be a GeoJSON object of either type point or polygon.", + "title": "Geometry" + } + } + }, + "description": "The event object returned from the Events API." + } + } + } + } + }, + "summary": "Get events", + "description": "Retrieves event imagery.", + "operationId": "Events", + "parameters": [ + { + "name": "source", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Source", + "description": "Filter the returned events by the Source. Multiple sources can be included in the parameter: comma separated, operates as a boolean OR." + }, + { + "name": "category", + "in": "query", + "required": false, + "type": "string", + "description": "Filter the returned events by the Category. Multiple sources can be included in the parameter: comma separated, operates as a boolean OR.", + "x-ms-summary": "Category" + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "string", + "default": "open", + "description": "Events that have ended are assigned a closed date and the existence of that date will allow you to filter for only-open or only-closed events. Omitting the status parameter will return only the currently open events (default). Using call will list open and closed values.", + "x-ms-summary": "Status", + "enum": [ + "open", + "closed", + "all" + ] + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "description": "Limits the number of events returned", + "x-ms-summary": "Limit" + }, + { + "name": "days", + "in": "query", + "required": false, + "type": "integer", + "description": "Limit the number of prior days (including today) from which events will be returned.", + "x-ms-summary": "Days" + }, + { + "name": "start", + "in": "query", + "required": false, + "type": "string", + "description": "The start date for the events in a YYYY-MM-DD format.", + "x-ms-summary": "Start" + }, + { + "name": "end", + "in": "query", + "required": false, + "type": "string", + "description": "The end date for the events in a YYYY-MM-DD format.", + "x-ms-summary": "End" + }, + { + "name": "magID", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude ID for the events.", + "x-ms-summary": "MagID" + }, + { + "name": "magMin", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude Minimum for the events.", + "x-ms-summary": "MagMin" + }, + { + "name": "magMax", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude Max for the events.", + "x-ms-summary": "MagMax" + }, + { + "name": "bbox", + "in": "query", + "required": false, + "type": "string", + "description": "Query using a bounding box for all events with datapoints that fall within. This uses two pairs of coordinates: the upper left hand corner (lon,lat) followed by the lower right hand corner (lon,lat).", + "x-ms-summary": "BBox" + } + ] + } + }, + "/events/geojson": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The response type.", + "title": "Response Type" + }, + "features": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of data object.", + "title": "Feature Type" + }, + "properties": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique ID for this event.", + "title": "ID" + }, + "title": { + "type": "string", + "description": "The title of the event.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "Optional longer description of the event.", + "title": "Event Description" + }, + "link": { + "type": "string", + "description": "The full link to the API endpoint for this specific event.", + "title": "Link" + }, + "closed": { + "type": "string", + "description": "An event is deemed closed when it has ended. The closed field will include a date/time when the event has ended. Depending upon the nature of the event the closed value may or may not accurately represent the absolute ending of the event. If the event is open this will show null.", + "title": "Closed" + }, + "date": { + "type": "string", + "description": "The date of the event.", + "title": "date" + }, + "magnitudeValue": { + "type": "number", + "format": "float", + "description": "Information regarding the event magnitude value.", + "title": "Magnitude Value" + }, + "magnitudeUnit": { + "type": "string", + "description": "Information regarding the event magnitude unit.", + "title": "Magnitude Unit" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The category ID.", + "title": "Category ID" + }, + "title": { + "type": "string", + "description": "The category title.", + "title": "Category Title" + } + } + }, + "description": "categories" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The source ID.", + "title": "Source ID" + }, + "url": { + "type": "string", + "description": "The source URL.", + "title": "Source URL" + } + } + }, + "description": "sources" + } + }, + "description": "properties" + }, + "geometry": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The geometry type.", + "title": "Geometry Type" + }, + "coordinates": { + "type": "array", + "items": { + "type": "number", + "format": "float", + "description": "A number of geometry coordinates.", + "title": "Coordinate" + }, + "description": "coordinates" + } + }, + "description": "geometry" + } + } + }, + "description": "features" + } + } + } + } + }, + "summary": "Get events in GeoJSON format", + "description": "Retrieves event imagery in the GeoJSON format.", + "operationId": "EventsGeoJSON", + "parameters": [ + { + "name": "source", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Source", + "description": "Filter the returned events by the Source. Multiple sources can be included in the parameter: comma separated, operates as a boolean OR." + }, + { + "name": "category", + "in": "query", + "required": false, + "type": "string", + "description": "Filter the returned events by the Category. Multiple sources can be included in the parameter: comma separated, operates as a boolean OR.", + "x-ms-summary": "Category" + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "string", + "default": "open", + "description": "Events that have ended are assigned a closed date and the existence of that date will allow you to filter for only-open or only-closed events. Omitting the status parameter will return only the currently open events (default). Using call will list open and closed values.", + "x-ms-summary": "Status", + "enum": [ + "open", + "closed", + "all" + ] + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "description": "Limits the number of events returned", + "x-ms-summary": "Limit" + }, + { + "name": "days", + "in": "query", + "required": false, + "type": "integer", + "description": "Limit the number of prior days (including today) from which events will be returned.", + "x-ms-summary": "Days" + }, + { + "name": "start", + "in": "query", + "required": false, + "type": "string", + "description": "The start date for the events in a YYYY-MM-DD format.", + "x-ms-summary": "Start" + }, + { + "name": "end", + "in": "query", + "required": false, + "type": "string", + "description": "The end date for the events in a YYYY-MM-DD format.", + "x-ms-summary": "End" + }, + { + "name": "magID", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude ID for the events.", + "x-ms-summary": "MagID" + }, + { + "name": "magMin", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude Minimum for the events.", + "x-ms-summary": "MagMin" + }, + { + "name": "magMax", + "in": "query", + "required": false, + "type": "string", + "description": "The Magnitude Max for the events.", + "x-ms-summary": "MagMax" + }, + { + "name": "bbox", + "in": "query", + "required": false, + "type": "string", + "description": "Query using a bounding box for all events with datapoints that fall within. This uses two pairs of coordinates: the upper left hand corner (lon,lat) followed by the lower right hand corner (lon,lat).", + "x-ms-summary": "BBox" + } + ] + } + }, + "/categories/{category}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The reponse title.", + "title": "Response title" + }, + "description": { + "type": "string", + "description": "The response description.", + "title": "Response description" + }, + "link": { + "type": "string", + "description": "The response link.", + "title": "Response link" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique id for this type.", + "title": "ID" + }, + "title": { + "type": "string", + "description": "The title of the category.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "Longer description of the category addressing the scope.", + "title": "Description" + }, + "link": { + "type": "string", + "description": "The full link to the API endpoint for this specific category which is the same as the Categories API endpoint filtered to return only events from this category.", + "title": "Link" + }, + "closed": { + "type": "string", + "description": "An event is deemed closed when it has ended. The closed field will include a date/time when the event has ended. Depending upon the nature of the event the closed value may or may not accurately represent the absolute ending of the event. If the event is open this will show null.", + "title": "Closed" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The category ID.", + "title": "Category ID" + }, + "title": { + "type": "string", + "description": "The category title.", + "title": "Category Title" + } + } + }, + "description": "categories" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The source ID.", + "title": "Source ID" + }, + "url": { + "type": "string", + "description": "The source URL.", + "title": "Source URL" + } + } + }, + "description": "sources" + }, + "geometry": { + "type": "array", + "items": { + "type": "object", + "properties": { + "magnitudeValue": { + "type": "number", + "format": "float", + "description": "The geometry magnitude value.", + "title": "Geometry Magnitude Value" + }, + "magnitudeUnit": { + "type": "string", + "description": "The geometry magnitude unit.", + "title": "Geometry Magnitude Unit" + }, + "date": { + "type": "string", + "description": "The geometry date.", + "title": "Geometry Date" + }, + "type": { + "type": "string", + "description": "The geometry type.", + "title": "Geometry Type" + }, + "coordinates": { + "type": "array", + "items": { + "type": "number", + "format": "float", + "description": "The geometry coordinate items.", + "title": "Geometry Coordinates" + }, + "description": "coordinates" + } + } + }, + "description": "geometry" + } + } + }, + "description": "events" + } + } + } + } + }, + "summary": "Get events by categories", + "description": "Retrieves a list of categories filtered by event.", + "operationId": "EventCategories", + "parameters": [ + { + "name": "category", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Category", + "description": "Filter the events by the category.", + "x-ms-url-encoding": "single" + }, + { + "name": "source", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Source", + "description": "Filter the topically-constrained events by the Source. Multiple sources can be included in the parameter; comma separated operates as a boolean OR." + }, + { + "name": "status", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Status", + "description": "Events that have ended are assigned a closed date and the existence of that date will allow you to filter for only-open or only-closed events. Omitting the status parameter will return only the currently open events.", + "enum": [ + "open", + "closed" + ] + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-summary": "Limit", + "description": "Limits the number of events returned." + }, + { + "name": "days", + "in": "query", + "required": false, + "type": "integer", + "x-ms-summary": "Days", + "description": "Limit the number of prior days (including today) from which events will be returned." + }, + { + "name": "start", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Start", + "description": "Select start date in a YYYY-MM-DD format." + }, + { + "name": "end", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "End", + "description": "Select end date in a YYYY-MM-DD format." + } + ] + } + }, + "/categories": { + "get": { + "responses": { + "200": { + "description": "default", + "headers": { + "Content-Type": { + "description": "application/rss+xml", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The reponse title.", + "title": "Response title" + }, + "description": { + "type": "string", + "description": "The response description.", + "title": "Response description" + }, + "link": { + "type": "string", + "description": "The response link.", + "title": "Response link" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique ID for this category.", + "title": "ID" + }, + "title": { + "type": "string", + "description": "The title of the category.", + "title": "Title" + }, + "link": { + "type": "string", + "description": "The full link to the API endpoint for this specific category which is the same as the Categories API endpoint filtered to return only events from this category.", + "title": "Link" + }, + "description": { + "type": "string", + "description": "Longer description of the category addressing the scope. Most likely only a sentence or two.", + "title": "Description" + }, + "layers": { + "type": "string", + "description": "A service endpoint that points to the Layers API endpoint filtered to return only layers from this category.", + "title": "Layers" + } + } + }, + "description": "categories" + } + } + } + } + }, + "summary": "Get categories", + "description": "Retrieves a list of categories.", + "operationId": "Categories", + "parameters": [] + } + }, + "/layers/{category}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The response title.", + "title": "Response Title" + }, + "description": { + "type": "string", + "description": "The response description.", + "title": "Response Description" + }, + "link": { + "type": "string", + "description": "The response link.", + "title": "Response Link" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "layers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the layer as specified by the source web service found at service URL.", + "title": "Name" + }, + "serviceUrl": { + "type": "string", + "description": "The base URL of the web service.", + "title": "Service URL" + }, + "serviceTypeId": { + "type": "string", + "description": "A string to indicate the type and version of the web service found at service URL.", + "title": "Service Type ID" + }, + "parameters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TILEMATRIXSET": { + "type": "string", + "description": "The parameter tile matrix set.", + "title": "Tile Matrix Set" + }, + "FORMAT": { + "type": "string", + "description": "The parameter format.", + "title": "Format" + } + } + }, + "description": "parameters" + } + } + }, + "description": "layers" + } + } + }, + "description": "categories" + } + } + } + } + }, + "summary": "Get layers", + "description": "Retrieves a list of layers.", + "operationId": "Layers", + "parameters": [ + { + "name": "category", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Category", + "description": "Filter the layers by the category.", + "x-ms-url-encoding": "single" + } + ] + } + }, + "/sources": { + "get": { + "responses": { + "200": { + "description": "default", + "headers": { + "Content-Type": { + "description": "application/rss+xml", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The reponse title.", + "title": "Response title" + }, + "description": { + "type": "string", + "description": "The response description.", + "title": "Response description" + }, + "link": { + "type": "string", + "description": "The response link.", + "title": "Response link" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique id for this type.", + "title": "ID" + }, + "title": { + "type": "string", + "description": "The title of this source.", + "title": "Title" + }, + "source": { + "type": "string", + "description": "The homepage URL for the source.", + "title": "Source" + }, + "link": { + "type": "string", + "description": "The full link to the API endpoint for this specific source which is the same as the Events API endpoint only filtered to return only events from this source.", + "title": "Link" + } + } + }, + "description": "sources" + } + } + } + } + }, + "summary": "Get sources", + "description": "Retrieves a list of sources.", + "operationId": "Sources", + "parameters": [] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "api_key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://eonet.sci.gsfc.nasa.gov/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.nasa.gov/about/highlights/HP_Privacy.html" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} diff --git a/independent-publisher-connectors/EONET by NASA/apiProperties.json b/independent-publisher-connectors/EONET by NASA/apiProperties.json new file mode 100644 index 0000000000..e399ff7504 --- /dev/null +++ b/independent-publisher-connectors/EONET by NASA/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#0B3D91", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "NASA" + } +} diff --git a/independent-publisher-connectors/EONET by NASA/readme.md b/independent-publisher-connectors/EONET by NASA/readme.md new file mode 100644 index 0000000000..6224a4bf65 --- /dev/null +++ b/independent-publisher-connectors/EONET by NASA/readme.md @@ -0,0 +1,36 @@ +# EONET by NASA +The Earth Observatory Natural Event Tracker (EONET) is a prototype web service from NASA with the goal of: + +- Providing a curated source of continuously updated natural event metadata. +- Providing a service that links those natural events to thematically-related web service-enabled image sources (e.g., via WMS, WMTS, etc.). + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You can read more about EONET at [EONET Documentation](https://eonet.sci.gsfc.nasa.gov/what-is-eonet). + +## Obtaining Credentials +To access any NASA and other Data.gov API, you must create an API key at [https://api.nasa.gov/#signUp](https://api.nasa.gov/#signUp). + +## Supported Operations + +### Get events +Retrieves event imagery. + +### Get events by categories +Retrieves a list of categories filtered by event. + +### Get events in GeoJSON format +Retrieves event imagery in the GeoJSON format. + +### Get categories +​Retrieves a list of categories. + +### Get layers +Retrieves a list of layers. + +### Get Sources +Retrieves a list of sources. + +## Known Issues and Limitations +There is an hourly rate limit of 1,000 requests per hour. If you exceed this limit, your key will be blocked for an hour. From 638cd360a685b7463234c0bd1303aec9f1406029 Mon Sep 17 00:00:00 2001 From: Vincent Mejan <91658566+VincentMejan@users.noreply.github.com> Date: Tue, 12 Oct 2021 21:22:05 +0200 Subject: [PATCH 049/219] Spinpanel, bugfixes, quality improvements (#1174) * Spinpanel, bugfixes, quality improvements * Syntax, cleanup --- .../Spinpanel/apiDefinition.swagger.json | 289 +++++++++--------- 1 file changed, 147 insertions(+), 142 deletions(-) diff --git a/certified-connectors/Spinpanel/apiDefinition.swagger.json b/certified-connectors/Spinpanel/apiDefinition.swagger.json index a4e60983ae..69160ff090 100644 --- a/certified-connectors/Spinpanel/apiDefinition.swagger.json +++ b/certified-connectors/Spinpanel/apiDefinition.swagger.json @@ -823,7 +823,7 @@ ] } }, - "/graph/v1.0/users/{microsoftObjectId}/assignlicense": { + "/graph/v1/organizations/{organizationId}/v1.0/users/{microsoftObjectId}/assignlicense": { "post": { "responses": { "201": { @@ -885,6 +885,15 @@ } }, "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + }, { "name": "microsoftObjectId", "in": "path", @@ -908,9 +917,7 @@ "properties": { "disabledPlans": { "type": "array", - "items": { - "type": "string" - }, + "items": {}, "description": "Disabled plans." }, "skuId": { @@ -924,12 +931,9 @@ }, "removeLicenses": { "type": "array", - "items": { - "type": "string", - "description": "A collection of GUIDs that identify the licenses to remove.", - "title": "Remove licenses" - }, - "description": "Remove licenses." + "items": {}, + "description": "A collection of GUIDs that identify the licenses to remove.", + "title": "Remove licenses" } } } @@ -1181,130 +1185,7 @@ "operationId": "GetADSecurityGroups", "summary": "Get Azure AD security groups", "description": "Get a list of Azure AD security groups of all organizations you are authorized to view." - } - }, - "/graph/v1/organizations/{organizationId}/v1.0/domains": { - "get": { - "responses": { - "200": { - "description": "Ok.", - "schema": { - "type": "object", - "properties": { - "value": { - "type": "array", - "items": { - "type": "object", - "properties": { - "authenticationType": { - "type": "string", - "description": "Authentication type of the domain.", - "title": "Authentication type" - }, - "availabilityStatus": { - "type": "string", - "description": "Availability status of the domain.", - "title": "Availability status" - }, - "id": { - "type": "string", - "description": "Identifier of the domain.", - "title": "Id" - }, - "isAdminManaged": { - "type": "boolean", - "description": "Indicates if the domain is admin managed.", - "title": "Admin managed", - "enum": [ - true, - false - ] - }, - "isDefault": { - "type": "boolean", - "description": "Indicates if this is the default domain.", - "title": "Default", - "enum": [ - true, - false - ] - }, - "isInitial": { - "type": "boolean", - "description": "Indicates if this is the initial domain.", - "title": "Initial", - "enum": [ - true, - false - ] - }, - "isRoot": { - "type": "boolean", - "description": "Indicates if this is the root domain.", - "title": "Root", - "enum": [ - true, - false - ] - }, - "isVerified": { - "type": "boolean", - "description": "Indicates if the domain is verified.", - "title": "Verified", - "enum": [ - true, - false - ] - }, - "supportedServices": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Supported services." - }, - "passwordValidityPeriodInDays": { - "type": "integer", - "format": "int32", - "description": "Indicates the password validity in days.", - "title": "Password validity" - }, - "passwordNotificationWindowInDays": { - "type": "integer", - "format": "int32", - "description": "Indicates the password notifcation window in days.", - "title": "Password notification windows" - }, - "state": { - "type": "string", - "description": "State of the domain.", - "title": "State" - } - } - }, - "description": "Value." - } - } - } - } - }, - "parameters": [ - { - "name": "organizationId", - "in": "path", - "required": true, - "type": "string", - "description": "Spinpanel organization identifier.", - "x-ms-summary": "Spinpanel organization id.", - "x-ms-url-encoding" : "single" - } - ], - "operationId": "GetGraphDomains", - "description": "Retrieve a list of domain objects.", - "summary": "List organization domains" - } - }, - "/graph/v1/organizations/{organizationId}v1.0/groups": { + }, "post": { "responses": { "201": { @@ -1526,6 +1407,127 @@ "description": "Create azure AD group." } }, + "/graph/v1/organizations/{organizationId}/v1.0/domains": { + "get": { + "responses": { + "200": { + "description": "Ok.", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "authenticationType": { + "type": "string", + "description": "Authentication type of the domain.", + "title": "Authentication type" + }, + "availabilityStatus": { + "type": "string", + "description": "Availability status of the domain.", + "title": "Availability status" + }, + "id": { + "type": "string", + "description": "Identifier of the domain.", + "title": "Id" + }, + "isAdminManaged": { + "type": "boolean", + "description": "Indicates if the domain is admin managed.", + "title": "Admin managed", + "enum": [ + true, + false + ] + }, + "isDefault": { + "type": "boolean", + "description": "Indicates if this is the default domain.", + "title": "Default", + "enum": [ + true, + false + ] + }, + "isInitial": { + "type": "boolean", + "description": "Indicates if this is the initial domain.", + "title": "Initial", + "enum": [ + true, + false + ] + }, + "isRoot": { + "type": "boolean", + "description": "Indicates if this is the root domain.", + "title": "Root", + "enum": [ + true, + false + ] + }, + "isVerified": { + "type": "boolean", + "description": "Indicates if the domain is verified.", + "title": "Verified", + "enum": [ + true, + false + ] + }, + "supportedServices": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Supported services." + }, + "passwordValidityPeriodInDays": { + "type": "integer", + "format": "int32", + "description": "Indicates the password validity in days.", + "title": "Password validity" + }, + "passwordNotificationWindowInDays": { + "type": "integer", + "format": "int32", + "description": "Indicates the password notifcation window in days.", + "title": "Password notification windows" + }, + "state": { + "type": "string", + "description": "State of the domain.", + "title": "State" + } + } + }, + "description": "Value." + } + } + } + } + }, + "parameters": [ + { + "name": "organizationId", + "in": "path", + "required": true, + "type": "string", + "description": "Spinpanel organization identifier.", + "x-ms-summary": "Spinpanel organization id.", + "x-ms-url-encoding" : "single" + } + ], + "operationId": "GetGraphDomains", + "description": "Retrieve a list of domain objects.", + "summary": "List organization domains" + } + }, "/directory/v1/organizations/{organizationId}/usergroups/{userGroupId}": { "delete": { "responses": { @@ -1673,7 +1675,7 @@ "properties": { "@odata.id": { "type": "string", - "description": "JSON representation of a directoryObject, user, group, or organizational contact object to be added.", + "description": "URI of the directory, user, group, or organizational contact object to be added.", "title": "Member" } }, @@ -1933,7 +1935,9 @@ } ], "operationId": "GetSubscriptions" - }, + } + }, + "/partnercenter/v1/partners/{partnerId}/organizations/{customerId}/v1.0/customers/{tenantId}/subscriptions/{subscriptionId}": { "patch": { "responses": { "200": { @@ -1970,12 +1974,13 @@ "x-ms-url-encoding" : "single" }, { - "name": "quantityOnly", - "in": "query", + "name": "subscriptionId", + "in": "path", "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" + "type": "string", + "description": "Subscription identifier of the customer.", + "x-ms-summary": "Subsription id.", + "x-ms-url-encoding" : "single" }, { "name": "body", @@ -1987,7 +1992,7 @@ "quantity": { "type": "integer", "format": "int32", - "description": "Quantity of the susbscription.", + "description": "Quantity of the subscription.", "title": "Quantity" } } From 8941375ebb98ec3dc5c9e6796939a969150868df Mon Sep 17 00:00:00 2001 From: Srikanth Yenagandhula <56276394+sriyen-msft@users.noreply.github.com> Date: Tue, 12 Oct 2021 14:00:09 -0700 Subject: [PATCH 050/219] Updated template URL for readme.md (#1175) Updated template URL for readme.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ef049bb69..5e0f4d6d45 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ More information on the each of the properties are given below: ### README.md -README.md file for your connector includes a description for your connector, any prerequisite a developer or contributor may need to build your connector. It includes instructions on how to use your connector and api, how to get credentials, supported operations, known issues and limitations, etc. This file is meant to be a standalone guide for deploying and using your connector by other users and developers. A [template](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/README.template.md) and a [sample](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/custom-connectors/AzureKeyVault/Readme.md) is included for reference. If you are submitting an Independent Publisher connector that requires OAuth, please make sure to explain how to create the OAuth app. The Microsoft Certification Team will use those instructions to create the app, so please make sure they are detailed and accurate. +README.md file for your connector includes a description for your connector, any prerequisite a developer or contributor may need to build your connector. It includes instructions on how to use your connector and api, how to get credentials, supported operations, known issues and limitations, etc. This file is meant to be a standalone guide for deploying and using your connector by other users and developers. A [template](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/readme.md) and a [sample](https://github.com/microsoft/PowerPlatformConnectors/blob/dev/custom-connectors/AzureKeyVault/Readme.md) is included for reference. If you are submitting an Independent Publisher connector that requires OAuth, please make sure to explain how to create the OAuth app. The Microsoft Certification Team will use those instructions to create the app, so please make sure they are detailed and accurate. ### Creating a Fork From 97d19d6dac7079425de82bf23e22bdf54911beb0 Mon Sep 17 00:00:00 2001 From: plmvas <52970040+plmvas@users.noreply.github.com> Date: Wed, 13 Oct 2021 18:05:14 -0500 Subject: [PATCH 051/219] DataMotion Secure Message Delivery connector initial commit (#1168) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Initial submission for DataMotion Secure Message Delivery custom connector * Fixed formatting and icon background color * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json * Update README.md Fixed bullet point formatting Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal Co-authored-by: Christopher Ly --- certified-connectors/DataMotion/README.md | 27 + .../DataMotion/apiDefinition.swagger.json | 538 ++++++++++++++++++ .../DataMotion/apiProperties.json | 9 + 3 files changed, 574 insertions(+) create mode 100644 certified-connectors/DataMotion/README.md create mode 100644 certified-connectors/DataMotion/apiDefinition.swagger.json create mode 100644 certified-connectors/DataMotion/apiProperties.json diff --git a/certified-connectors/DataMotion/README.md b/certified-connectors/DataMotion/README.md new file mode 100644 index 0000000000..6970aa6ec2 --- /dev/null +++ b/certified-connectors/DataMotion/README.md @@ -0,0 +1,27 @@ +# Secure Message Delivery Connector +DataMotion, Inc. specializes in secure data exchange APIs, providing companies the ability to integrate secure message and file exchange solutions into their existing workflows and automated processes. DataMotion’s secure message delivery connector enables seamless, one-way encrypted messaging, helping users protect their critical data and meet compliance regulations. + +# Prerequisites +You will need the following to proceed: +* A DataMotion trial or subscription account with secure message delivery API access. + +# Building the connector +In order to utilize the secure message delivery API functionality, we first need to set up a few things in order to properly authenticate. After that is completed, you can create and test the DataMotion connector. + +# Set up a DataMotion account and application +We first need to create a DataMotion account within the DataMotion self-service portal. From here we will need to create an API secret and key in order to authenticate and properly use the API in your automated workflows. You can read more about this here and follow the steps below: +1. Create a DataMotion trial or subscription account. This can be done using the DataMotion self-service portal (https://datamotion.com/portal), by following the steps here. +2. An API key and secret must be generated in order to authenticate each API request. The key and secret will be tied to an application for organizational purposes. (Note: You can create multiple applications to organize your users and environments.) + * Within the DataMotion site, sign in to your DataMotion account and navigate to the secure message delivery documentation, then select the Applications tab. + * Within the Applications tab, select the ‘Create Application’ button and give the application a name and description. + * Select ‘Other’ for the Application Type and provide a description. + * Select the ‘plus’ sign (+) in the center of the ‘API Keys’ section to the left of the ‘Application Details’ and copy the API secret that is provided in the pop up. + * Store this string somewhere safe as we will need it later on and you will not be able to access it again through the DataMotion site. + +At this point, we now have a valid secure message delivery application that can be used to authenticate your DataMotion account. + +# Supported Operations +The connector supports the following operations: +* Send a Secure Message: Sends a message in a secure manner ensuring the data is not corrupted. +* Retract a Secure Message: Retract a message that was previously sent. +* Track a Secure Message: Track a secure message to ensure the message is delivered and opened. diff --git a/certified-connectors/DataMotion/apiDefinition.swagger.json b/certified-connectors/DataMotion/apiDefinition.swagger.json new file mode 100644 index 0000000000..537fc17860 --- /dev/null +++ b/certified-connectors/DataMotion/apiDefinition.swagger.json @@ -0,0 +1,538 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Secure Message Delivery", + "description": "DataMotion, Inc. specializes in secure data exchange APIs, allowing companies to integrate secure message and file exchange solutions into their existing workflows and save development time. Following security protocol can be time-consuming, but DataMotion's secure message delivery connector enables seamless, one-way encrypted messaging, helping users remain compliant with industry regulations and your enterprise's security policies.", + "contact": { + "name": "DataMotion Support", + "url": "https://datamotion.com/support-request/", + "email": "support@datamotion.com" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://datamotion.com/secure-message-delivery-api/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://datamotion.com/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Communication;Security" + } + ], + "host": "api.datamotion.com", + "basePath": "/SecureMessageDelivery", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/v{v}/Email": { + "post": { + "tags": [ + "SecureMessageDelivery" + ], + "summary": "Send a Secure Message", + "operationId": "SendSecureMessageAsync", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "x-ms-summary": "Request", + "name": "request", + "in": "body", + "description": "Message request body.", + "required": false, + "schema": { + "$ref": "#/definitions/SendSecureMessageRequest" + } + }, + { + "x-ms-summary": "v", + "x-ms-url-encoding": "single", + "name": "v", + "in": "path", + "required": true, + "description": "The version of the API.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Key", + "name": "X-API-Key", + "in": "header", + "required": true, + "description": "A unique identifier used to identify the API Key object.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Secret", + "name": "X-API-Secret", + "in": "header", + "required": true, + "description": "A secret value tied to the API Key.", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SendSecureMessageResponse" + } + } + }, + "description": "Sends a message in a secure manner ensuring the data is not corrupted." + } + }, + "/v{v}/{transactionId}/Track": { + "get": { + "tags": [ + "SecureMessageDelivery" + ], + "summary": "Track a Secure Message", + "operationId": "TrackMessageAsync", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "x-ms-summary": "TransactionId", + "x-ms-url-encoding": "single", + "name": "transactionId", + "in": "path", + "description": "The Id of the secure message to be tracked.", + "required": true, + "type": "string", + "format": "uuid" + }, + { + "x-ms-summary": "v", + "x-ms-url-encoding": "single", + "name": "v", + "in": "path", + "required": true, + "description": "The version of the API.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Key", + "name": "X-API-Key", + "in": "header", + "required": true, + "description": "A unique identifier used to identify the API Key object.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Secret", + "name": "X-API-Secret", + "in": "header", + "required": true, + "description": "A secret value tied to the API Key.", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/TrackMessageResponse" + } + } + }, + "description": "Track a secure message to ensure the message is delivered and opened." + } + }, + "/v{v}/{transactionId}/Retract": { + "delete": { + "tags": [ + "SecureMessageDelivery" + ], + "summary": "Retract a Secure Message", + "operationId": "RetractMessageAsync", + "consumes": [], + "produces": [ + "application/json" + ], + "parameters": [ + { + "x-ms-summary": "TransactionId", + "x-ms-url-encoding": "single", + "name": "transactionId", + "in": "path", + "description": "The Id of the secure message to be retracted.", + "required": true, + "type": "string", + "format": "uuid" + }, + { + "x-ms-summary": "v", + "x-ms-url-encoding": "single", + "name": "v", + "in": "path", + "required": true, + "description": "The version of the API.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Key", + "name": "X-API-Key", + "in": "header", + "required": true, + "description": "A unique identifier used to identify the API Key object.", + "type": "string" + }, + { + "x-ms-summary": "X-API-Secret", + "name": "X-API-Secret", + "in": "header", + "required": true, + "description": "A secret value tied to the API Key.", + "type": "string" + } + ], + "responses": { + "204": { + "description": "Success" + } + }, + "description": "Retract a secure message that was previously sent." + } + } + }, + "definitions": { + "Attachment": { + "description": "Message attachment.", + "type": "object", + "properties": { + "AttachmentBase64": { + "description": "A Base64 encoded string of the attachment.", + "type": "string", + "title": "AttachmentBase64" + }, + "ContentType": { + "description": "The media type of the attachment.", + "type": "string", + "title": "ContentType" + }, + "FileName": { + "description": "The name of the attachment file.", + "type": "string", + "title": "FileName" + }, + "ContentId": { + "description": "The Content ID (only populated if the attachment is an inline image).", + "type": "string", + "title": "ContentId" + } + } + }, + "ErrorResponse": { + "description": "The ErrorResponse class", + "type": "object", + "properties": { + "StatusCode": { + "format": "int32", + "description": "An http status code.", + "type": "integer" + }, + "Error": { + "description": "A code that identifies the error that occurred.", + "type": "string" + }, + "ErrorMessage": { + "description": "The ErrorMessage property", + "type": "string" + } + } + }, + "SendSecureMessageRequest": { + "description": "Send Secure Message request body.", + "type": "object", + "properties": { + "From": { + "description": "The address of the user that will send the message.", + "type": "string" + }, + "To": { + "description": "An array of recipients of the secure message.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "Cc": { + "description": "An array of recipients, carbon copied on the secure message.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "Bcc": { + "description": "An array of recipients, blind carbon copied on the secure message.", + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + } + }, + "Subject": { + "description": "The subject of the secure message.", + "type": "string" + }, + "Attachments": { + "description": "Structure containing metadata.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Attachment" + } + }, + "HtmlBody": { + "description": "The HTML body of the email message.", + "type": "string" + }, + "TextBody": { + "description": "The text body of the email message.", + "type": "string" + } + } + }, + "SendSecureMessageResponse": { + "description": "Send secure message response model.", + "type": "object", + "properties": { + "TransactionId": { + "format": "uuid", + "description": "The Id of the transaction.", + "type": "string" + }, + "NumberOfRecipients": { + "format": "int32", + "description": "The total number of recipients.", + "type": "integer" + }, + "MessageSize": { + "format": "int64", + "description": "The size of the message in bytes.", + "type": "integer" + }, + "Expiration": { + "description": "The date time in which the message expires.", + "type": "string" + }, + "ProjectId": { + "format": "uuid", + "description": "The Id of the project.", + "type": "string" + }, + "ApplicationId": { + "format": "uuid", + "description": "The Id of the application", + "type": "string" + } + } + }, + "TrackMessageResponse": { + "description": "Message tracking object.", + "type": "object", + "properties": { + "Cost": { + "format": "double", + "description": "Total cost of the transaction.", + "type": "number" + }, + "Attachments": { + "description": "A complex type containing the Attachment Structure, the SecurityEnvelope Structure, and the Tracking Structure per attachment.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/AttachmentMetaData" + } + }, + "ExpirationDate": { + "description": "The Date/time for message expiration.", + "type": "string" + }, + "MessageId": { + "format": "int32", + "description": "The Id of the message.", + "type": "integer" + }, + "MessageSize": { + "format": "int32", + "description": "The message size in bytes.", + "type": "integer" + }, + "SecurityEnvelope": { + "description": "The message security envelope object.", + "type": "object" + }, + "Tracking": { + "description": "A list of message tracking objects.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tracking" + } + }, + "Subject": { + "description": "The message subject.", + "type": "string" + } + } + }, + "AttachmentMetaData": { + "description": "Message attachment object.", + "type": "object", + "properties": { + "AttachmentId": { + "format": "int32", + "description": "Attachment unique identifier.", + "type": "integer" + }, + "FileName": { + "description": "Attachment file name.", + "type": "string" + }, + "ContentId": { + "description": "Attachment content Id (only populated if the attachment is an inline image).", + "type": "object" + }, + "ContentType": { + "description": "The media type of the attachment.", + "type": "string" + }, + "SecurityEnvelope": { + "description": "Attachment security envelope.", + "type": "object" + }, + "Size": { + "$ref": "#/definitions/Size" + }, + "Tracking": { + "$ref": "#/definitions/AttachmentTracking" + } + } + }, + "Tracking": { + "description": "Message tracking information.", + "type": "object", + "properties": { + "DateOpened": { + "description": "The date/time string of when the message was opened. Note: If year = 1900, then there is no DateOpened associated with the current message status.", + "type": "string" + }, + "Email": { + "description": "The email address of the recipient.", + "type": "string" + }, + "MessageStatusDescription": { + "description": "Status represented as a string description.", + "type": "string" + }, + "MessageStatusId": { + "format": "int32", + "description": "Numeric indicator of the status of the individual recipient.", + "type": "integer" + }, + "ReceiverField": { + "description": "Indicates whether this recipient was the TO, CC, or BCC of the message.", + "type": "string" + } + } + }, + "Size": { + "description": "Attachment size object.", + "type": "object", + "properties": { + "StdString": { + "description": "A string value that contains the size of an attachment;", + "type": "string" + } + } + }, + "AttachmentTracking": { + "description": "Attachment tracking information.", + "type": "object", + "properties": { + "Recipients": { + "description": "Message recipient object.", + "uniqueItems": false, + "type": "array", + "items": { + "$ref": "#/definitions/Recipient" + } + }, + "DateOpened": { + "description": "The date/time string of when the message was opened. Note: If year = 1900, then there is no DateOpened associated with the current message status.", + "type": "string" + }, + "Email": { + "description": "The email address of the recipient.", + "type": "string" + }, + "MessageStatusDescription": { + "description": "Status represented as a string description.", + "type": "string" + }, + "MessageStatusId": { + "format": "int32", + "description": "Numeric indicator of the status of the individual recipient.", + "type": "integer" + }, + "ReceiverField": { + "description": "Indicates whether this recipient was the TO, CC, or BCC of the message.", + "type": "string" + } + } + }, + "Recipient": { + "description": "Message recipient object.", + "type": "object", + "properties": { + "ChecksumValidated": { + "format": "int32", + "description": "One of the following values: 0 (Invalid), 1 (Valid), or 2 (NotApplied).", + "type": "integer" + }, + "Delivered": { + "description": "Indicates whether or not the message has been delivered.", + "type": "boolean" + }, + "DeliveredDate": { + "description": "The DateTime string representing when the message was delivered.", + "type": "string" + }, + "Downloaded": { + "description": "Indicates whether or not the attachment has been downloaded.", + "type": "boolean" + }, + "DownloadedDate": { + "description": "The DateTime string representing when the attachment was downloaded.", + "type": "string" + }, + "Email": { + "description": "The email address of the recipient.", + "type": "string" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/DataMotion/apiProperties.json b/certified-connectors/DataMotion/apiProperties.json new file mode 100644 index 0000000000..8110d60a13 --- /dev/null +++ b/certified-connectors/DataMotion/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#F2F2F2", + "capabilities": [], + "publisher": "DataMotion, Inc.", + "stackOwner": "DataMotion, Inc." + } +} \ No newline at end of file From b60b96a9173a4011766fd44cfa75ad61b949baf9 Mon Sep 17 00:00:00 2001 From: rsantos00 Date: Thu, 14 Oct 2021 01:45:33 +0200 Subject: [PATCH 052/219] GoQR (Independent Publisher) (#1127) * GoQR (Independent Publisher) * Fixed the validate * Update apiDefinition.swagger.json The validator is giving an error, but to work correctly in PowerApps the schema needs to contains the binary format * Update apiDefinition.swagger.json Fix the default response * Update apiProperties.json Update stackOwner and icon color --- .../GoQR/apiDefinition.swagger.json | 78 +++++++++++++++++++ .../GoQR/apiProperties.json | 9 +++ .../GoQR/readme.md | 40 ++++++++++ 3 files changed, 127 insertions(+) create mode 100644 independent-publisher-connectors/GoQR/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/GoQR/apiProperties.json create mode 100644 independent-publisher-connectors/GoQR/readme.md diff --git a/independent-publisher-connectors/GoQR/apiDefinition.swagger.json b/independent-publisher-connectors/GoQR/apiDefinition.swagger.json new file mode 100644 index 0000000000..ba10570295 --- /dev/null +++ b/independent-publisher-connectors/GoQR/apiDefinition.swagger.json @@ -0,0 +1,78 @@ +{ + "swagger": "2.0", + "info": { + "title": "GoQR", + "description": "Generate QRCode in a easy way. The connector will return the QR Code image.", + "version": "1.0", + "contact": { + "name": "Rui Santos", + "email": "rsantos.mails@gmail.com" + } + }, + "host": "api.qrserver.com", + "basePath": "/v1/create-qr-code/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "title": "Image of qrcode", + "type": "string", + "format": "binary" + } + } + }, + "summary": "Create QRCode with a specific size", + "operationId": "Create", + "description":"Get the QR Code with specific size", + "parameters": [ + { + "name": "size", + "in": "query", + "required": true, + "type": "string", + "default": "150x150", + "description": "The size represent width and height of the QR code, expects a string. Example 150x150", + "x-ms-summary":"The size represent width and height " + }, + { + "name": "data", + "in": "query", + "required": true, + "type": "string", + "default": "https://www.linkedin.com/in/ruisantosnor/", + "description": "The data field represent the content of the QR code when is read. It can be text or urls.", + "x-ms-summary":"Content of the QR code" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://goqr.me/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://goqr.me/de/rechtliches/datenschutz-goqrme.html" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity" + } + ] +} diff --git a/independent-publisher-connectors/GoQR/apiProperties.json b/independent-publisher-connectors/GoQR/apiProperties.json new file mode 100644 index 0000000000..22b739da54 --- /dev/null +++ b/independent-publisher-connectors/GoQR/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Rui Santos", + "stackOwner":"GoQR" + } +} diff --git a/independent-publisher-connectors/GoQR/readme.md b/independent-publisher-connectors/GoQR/readme.md new file mode 100644 index 0000000000..b2a06edd85 --- /dev/null +++ b/independent-publisher-connectors/GoQR/readme.md @@ -0,0 +1,40 @@ +# GoQR +Generate QR Codes with specific content. You can create a QRCode with url link or text. You can use the connector in PowerApps and Power Automate to get the image bytes. + +## Publisher: Rui Santos +Rui Santos - https://www.linkedin.com/in/ruisantosnor + +## Prerequisites +No required prerequisites, but you should take a look at https://goqr.me/ for premium functionalities + +## Supported Operations +#### GET +##### Summary + +Create QRCode with a specific size. Returns the binary data of the QR Code image. + +##### Example + +Go the Data -> Add the Custom Connector. In PowerApps insert a Image component and in the Image property write GoQR.Create("150x150","https://www.linkedin.com/in/ruisantosnor/"). Thhis will generate a QR Code image 150x150 with the url https://www.linkedin.com/in/ruisantosnor/. + +# Version: 1.0 + +### / + +#### GET +##### Summary + +Create QRCode with a specific size + +##### Parameters + +| Name | Located in | Description | Required | Schema | +| ---- | ---------- | ----------- | -------- | ---- | +| size | query | The size represent with width and height of the QR code, expects a string. Example 150x150 | Yes | string | +| data | query | The data field represent the content of the QR code when is read. It can be text or urls. | Yes | string | + +##### Responses + +| Code | Description | Schema | +| ---- | ----------- | ------ | +| default | default | binary | From 888a126af6ad82918565df187a9c076c75c76ed6 Mon Sep 17 00:00:00 2001 From: Nirmal <897323+nk-gears@users.noreply.github.com> Date: Thu, 14 Oct 2021 05:17:03 +0530 Subject: [PATCH 053/219] FreeAgent (Independent Publisher) (#1178) * Added missinf files * added space to readme.md Co-authored-by: Nirmal --- .../FreeAgent/README.md | 70 + .../FreeAgent/apiDefinition.swagger.json | 1837 +++++++++++++++++ .../FreeAgent/apiProperties.json | 80 + 3 files changed, 1987 insertions(+) create mode 100644 independent-publisher-connectors/FreeAgent/README.md create mode 100644 independent-publisher-connectors/FreeAgent/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/FreeAgent/apiProperties.json diff --git a/independent-publisher-connectors/FreeAgent/README.md b/independent-publisher-connectors/FreeAgent/README.md new file mode 100644 index 0000000000..7893824c34 --- /dev/null +++ b/independent-publisher-connectors/FreeAgent/README.md @@ -0,0 +1,70 @@ +# FreeAgent + +FreeAgent is a cloud based accounting system. It brings everything together, from invoice and expense management to project management and sales tax. FreeAgent made specifically for freelancers, small business owners and their accountants. This Connector helps you to retrieve and update data in your FreeAgent Account. This connectors supports only core operations dealing with Invoice, Recurring Invoice and Contacts. + + +## Publisher: Nirmal + +## Prerequisites + +To use this connector, you need the following + +- A Microsoft Power Apps or Power Automate plan with custom connector feature +- You need to have an FreeAgent account. You can [sign up](https://signup.freeagent.com/signup) for free. +- A FreeAgent developer account with a configured OAuth 2.0 application. https://dev.freeagent.com/ + +## Obtaining Credentials +- Create a New Developer Account here : https://dev.freeagent.com/signup + +- Create a New App +- Update the App OAuth Redirect URI's to " +https://global.consent.azure-apim.net/redirect" +- Get the OAuth identifier (ClientID),OAuth secret (Client Secret) +- Deploy the connector using the oAuth Credentials. + + + +### Supported Operations +Freeagent API has more than 40 operations. Currentlt this connector the most important operations related to Invoice, Contact and Recurring Invoices. + +#### 1. Contact +- List all contacts : Retrieves list of Contacts +- Create Contact : Creates a New Contact +- Delete Contact : Delete a Contact based on Contact Url +- Update Contact : Update a Contact based on Contact Url +- Get a single contact : Retrieve a Contact by Contact Url. + + +#### 2. Invoice +- Create Invoice : Creates a New Invoice +- List Invoices : List all Invoices +- Delete Invoice : Delete a Invoice +- Show Invoice : Retrieve a Invoice based on Invoice Url +- Update Invoice : Update a Invoice based on Invoice Url + +#### 3. Invoice Flag + +- Mark invoice as sent : Update a Invoice with Status Sent +- Mark invoice as cancelled : Update a Invoice Status as Cancelled. +- Mark invoice as scheduled : Update a Invoice as Scheduled +- Mark invoice as draft : Update a Invoice as Draft + + +#### 4. Recurring Invoice +- List all recurring invoices : Retrieves the list of recurring invoices +- Show Recurring Invoice : Retrieve details about a recurring invoice + +Note : The API doesn't support creating/updating/deleting Recurring Invoices. + + + +## Known Issues and Limitations +There are no known issues at time of publishing. + +## Rate Limits +FreeAgent API has some usage rate limits. Please refer the "Rate Limits" Section in this page https://dev.freeagent.com/docs/introduction + + +## Deployment Instructions +Follow the instructions provided on the [Power Automate blog](https://flow.microsoft.com/en-us/blog/import-a-connector-from-github-as-a-custom-connector/). + diff --git a/independent-publisher-connectors/FreeAgent/apiDefinition.swagger.json b/independent-publisher-connectors/FreeAgent/apiDefinition.swagger.json new file mode 100644 index 0000000000..9d452ecbb6 --- /dev/null +++ b/independent-publisher-connectors/FreeAgent/apiDefinition.swagger.json @@ -0,0 +1,1837 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "FreeAgent", + "contact": { + "name": "Nirmal", + "url": "https://nkdews.me", + "email": "nirmalk.web@gmail.com" + }, + "description": "Freeagent Connector helps you to retrieve and update data in your FreeAgent Account. This connectors supports only core operations dealing with Invoice, Recurring Invoice and Contacts." + }, + "host": "api.freeagent.com", + "basePath": "/v2", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/contacts": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "id": { + "type": "string", + "x-ms-summary": "id", + "description": "id", + "x-ms-visibility": "internal" + }, + "first_name": { + "type": "string", + "x-ms-summary": "First Name", + "description": "First Name" + }, + "last_name": { + "type": "string", + "x-ms-summary": "Last Name", + "description": "Last Name" + }, + "organisation_name": { + "type": "string", + "x-ms-summary": "Organisation Name", + "description": "Organisation Name" + }, + "email": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email" + }, + "billing_email": { + "type": "string", + "x-ms-summary": "Billing Email", + "description": "Billing Email" + }, + "phone_number": { + "type": "string", + "x-ms-summary": "Phone Number", + "description": "Phone Number" + }, + "mobile": { + "type": "string", + "x-ms-summary": "Mobile", + "description": "Mobile" + }, + "address1": { + "type": "string", + "x-ms-summary": "Address1", + "description": "Address1" + }, + "address2": { + "type": "string", + "x-ms-summary": "Address2", + "description": "Address2" + }, + "address3": { + "type": "string", + "x-ms-summary": "Address3", + "description": "Address3" + }, + "town": { + "type": "string", + "x-ms-summary": "Town", + "description": "Town" + }, + "region": { + "type": "string", + "x-ms-summary": "Region", + "description": "Region" + }, + "postcode": { + "type": "string", + "x-ms-summary": "Postcode", + "description": "Postcode" + }, + "country": { + "type": "string", + "x-ms-summary": "Country", + "description": "Country" + }, + "contact_name_on_invoices": { + "type": "boolean", + "x-ms-summary": "Contact Name On Invoices", + "description": "Contact Name On Invoices" + }, + "default_payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Default Payment Terms In Days", + "description": "Default Payment Terms In Days" + }, + "locale": { + "type": "string", + "x-ms-summary": "Locale", + "description": "Locale" + }, + "account_balance": { + "type": "string", + "x-ms-summary": "Account Balance", + "description": "Account Balance" + }, + "uses_contact_invoice_sequence": { + "type": "boolean", + "x-ms-summary": "Uses Contact Invoice Sequence", + "description": "Uses Contact Invoice Sequence" + }, + "charge_sales_tax": { + "type": "string", + "x-ms-summary": "Charge Sales Tax", + "description": "Charge Sales Tax" + }, + "sales_tax_registration_number": { + "type": "string", + "x-ms-summary": "Sales Tax Registration Number", + "description": "Sales Tax Registration Number" + }, + "active_projects_count": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Active Projects Count", + "description": "Active Projects Count" + }, + "direct_debit_mandate_state": { + "type": "string", + "x-ms-summary": "Direct Debit Mandate State", + "description": "Direct Debit Mandate State" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + } + } + }, + "x-ms-summary": "Contacts", + "description": "Contacts" + } + } + } + } + }, + "summary": "List all contacts", + "x-ms-summary": "List all contacts", + "description": "List all contacts", + "operationId": "GetContacts", + "parameters": [] + }, + "post": { + "summary": "Create Contact", + "x-ms-summary": "Create Contact", + "description": "Create Contact", + "operationId": "CreateContact", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "contact": { + "type": "object", + "properties": { + "first_name": { + "type": "string", + "x-ms-summary": "First Name", + "description": "First Name" + }, + "last_name": { + "type": "string", + "x-ms-summary": "Last Name", + "description": "Last Name" + }, + "email": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email" + } + }, + "x-ms-summary": "Contact", + "description": "Contact" + } + } + }, + "required": true + } + ], + "responses": { + "201": { + "x-ms-summary": "201", + "description": "201", + "schema": { + "type": "object", + "properties": { + "contact": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "first_name": { + "type": "string", + "x-ms-summary": "First Name", + "description": "First Name" + }, + "last_name": { + "type": "string", + "x-ms-summary": "Last Name", + "description": "Last Name" + }, + "organisation_name": { + "type": "string", + "x-ms-summary": "Organisation Name", + "description": "Organisation Name" + }, + "email": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email" + }, + "billing_email": { + "type": "string", + "x-ms-summary": "Billing Email", + "description": "Billing Email" + }, + "phone_number": { + "type": "string", + "x-ms-summary": "Phone Number", + "description": "Phone Number" + }, + "mobile": { + "type": "string", + "x-ms-summary": "Mobile", + "description": "Mobile" + }, + "address1": { + "type": "string", + "x-ms-summary": "Address1", + "description": "Address1" + }, + "address2": { + "type": "string", + "x-ms-summary": "Address2", + "description": "Address2" + }, + "address3": { + "type": "string", + "x-ms-summary": "Address3", + "description": "Address3" + }, + "town": { + "type": "string", + "x-ms-summary": "Town", + "description": "Town" + }, + "region": { + "type": "string", + "x-ms-summary": "Region", + "description": "Region" + }, + "postcode": { + "type": "string", + "x-ms-summary": "Postcode", + "description": "Postcode" + }, + "country": { + "type": "string", + "x-ms-summary": "Country", + "description": "Country" + }, + "contact_name_on_invoices": { + "type": "boolean", + "x-ms-summary": "Contact Name On Invoices", + "description": "Contact Name On Invoices" + }, + "default_payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Default Payment Terms In Days", + "description": "Default Payment Terms In Days" + }, + "locale": { + "type": "string", + "x-ms-summary": "Locale", + "description": "Locale" + }, + "account_balance": { + "type": "string", + "x-ms-summary": "Account Balance", + "description": "Account Balance" + }, + "uses_contact_invoice_sequence": { + "type": "boolean", + "x-ms-summary": "Uses Contact Invoice Sequence", + "description": "Uses Contact Invoice Sequence" + }, + "charge_sales_tax": { + "type": "string", + "x-ms-summary": "Charge Sales Tax", + "description": "Charge Sales Tax" + }, + "sales_tax_registration_number": { + "type": "string", + "x-ms-summary": "Sales Tax Registration Number", + "description": "Sales Tax Registration Number" + }, + "active_projects_count": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Active Projects Count", + "description": "Active Projects Count" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + } + }, + "x-ms-summary": "Contact", + "description": "Contact" + } + } + } + } + } + } + }, + "/contacts/{contact_id}": { + "delete": { + "summary": "Delete Contact", + "x-ms-summary": "Delete Contact", + "description": "Delete Contact", + "operationId": "DeleteContact", + "parameters": [ + { + "name": "contact_id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact", + "required": true, + "x-ms-dynamic-values": { + "operationId": "GetContacts", + "value-collection": "contacts", + "value-path": "id", + "value-title": "organisation_name" + } + } + ], + "responses": { + "200": { + "description": "200" + } + } + }, + "put": { + "summary": "Update Contact", + "x-ms-summary": "Update Contact", + "description": "Update Contact", + "operationId": "UpdateContact", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "contact_id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact", + "x-ms-dynamic-values": { + "operationId": "GetContacts", + "value-collection": "contacts", + "value-path": "id", + "value-title": "organisation_name" + }, + "required": true + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "contact": { + "type": "object", + "properties": { + "contact_name_on_invoices": { + "type": "boolean", + "x-ms-summary": "Contact Name On Invoices", + "description": "Contact Name On Invoices" + }, + "default_payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Default Payment Terms In Days", + "description": "Default Payment Terms In Days" + }, + "locale": { + "type": "string", + "x-ms-summary": "Locale", + "description": "Locale" + }, + "country": { + "type": "string", + "x-ms-summary": "Country", + "description": "Country" + } + }, + "x-ms-summary": "Contact", + "description": "Contact" + } + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200" + } + } + }, + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "contact": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "first_name": { + "type": "string", + "x-ms-summary": "First Name", + "description": "First Name" + }, + "last_name": { + "type": "string", + "x-ms-summary": "Last Name", + "description": "Last Name" + }, + "organisation_name": { + "type": "string", + "x-ms-summary": "Organisation Name", + "description": "Organisation Name" + }, + "email": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email" + }, + "billing_email": { + "type": "string", + "x-ms-summary": "Billing Email", + "description": "Billing Email" + }, + "phone_number": { + "type": "string", + "x-ms-summary": "Phone Number", + "description": "Phone Number" + }, + "mobile": { + "type": "string", + "x-ms-summary": "Mobile", + "description": "Mobile" + }, + "address1": { + "type": "string", + "x-ms-summary": "Address1", + "description": "Address1" + }, + "address2": { + "type": "string", + "x-ms-summary": "Address2", + "description": "Address2" + }, + "address3": { + "type": "string", + "x-ms-summary": "Address3", + "description": "Address3" + }, + "town": { + "type": "string", + "x-ms-summary": "Town", + "description": "Town" + }, + "region": { + "type": "string", + "x-ms-summary": "Region", + "description": "Region" + }, + "postcode": { + "type": "string", + "x-ms-summary": "Postcode", + "description": "Postcode" + }, + "country": { + "type": "string", + "x-ms-summary": "Country", + "description": "Country" + }, + "contact_name_on_invoices": { + "type": "boolean", + "x-ms-summary": "Contact Name On Invoices", + "description": "Contact Name On Invoices" + }, + "default_payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Default Payment Terms In Days", + "description": "Default Payment Terms In Days" + }, + "locale": { + "type": "string", + "x-ms-summary": "Locale", + "description": "Locale" + }, + "account_balance": { + "type": "string", + "x-ms-summary": "Account Balance", + "description": "Account Balance" + }, + "uses_contact_invoice_sequence": { + "type": "boolean", + "x-ms-summary": "Uses Contact Invoice Sequence", + "description": "Uses Contact Invoice Sequence" + }, + "charge_sales_tax": { + "type": "string", + "x-ms-summary": "Charge Sales Tax", + "description": "Charge Sales Tax" + }, + "sales_tax_registration_number": { + "type": "string", + "x-ms-summary": "Sales Tax Registration Number", + "description": "Sales Tax Registration Number" + }, + "active_projects_count": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Active Projects Count", + "description": "Active Projects Count" + }, + "direct_debit_mandate_state": { + "type": "string", + "x-ms-summary": "Direct Debit Mandate State", + "description": "Direct Debit Mandate State" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + } + }, + "x-ms-summary": "Contact", + "description": "Contact" + } + } + } + } + }, + "summary": "Get a single contact", + "x-ms-summary": "Get a single contact", + "description": "Get a single contact", + "operationId": "GetContact", + "parameters": [ + { + "name": "contact_id", + "in": "path", + "x-ms-url-encoding": "single", + "x-ms-summary": "Contact", + "description": "Contact", + "required": true, + "x-ms-dynamic-values": { + "operationId": "GetContacts", + "value-collection": "contacts", + "value-path": "id", + "value-title": "organisation_name" + }, + "type": "string" + } + ] + } + }, + "/invoices/{id}/transitions/mark_as_sent": { + "put": { + "summary": "Mark invoice as sent", + "x-ms-summary": "Mark invoice as sent", + "description": "Mark invoice as sent", + "operationId": "MarkInvoiceAsSent", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200" + } + } + } + }, + "/invoices/{id}/transitions/mark_as_cancelled": { + "put": { + "summary": "Mark invoice as cancelled", + "x-ms-summary": "Mark invoice as cancelled", + "description": "Mark invoice as cancelled", + "operationId": "MarkInvoiceAsCancelled", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "required": true + } + ], + "responses": { + "200": { + "description": "200" + } + } + } + }, + "/invoices/{id}/transitions/mark_as_scheduled": { + "put": { + "summary": "Mark invoice as scheduled", + "x-ms-summary": "Mark invoice as scheduled", + "description": "Mark invoice as scheduled", + "operationId": "MarkInvoiceAsScheduled", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default" + } + } + } + }, + "/invoices/{id}/transitions/mark_as_draft": { + "put": { + "summary": "Mark invoice as draft", + "x-ms-summary": "Mark invoice as draft", + "description": "Mark invoice as draft", + "operationId": "MarkInvoiceAsDraft", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "required": true, + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + } + } + ], + "responses": { + "200": { + "description": "default" + } + } + } + }, + "/invoices": { + "post": { + "summary": "Create Invoice", + "x-ms-summary": "Create Invoice", + "description": "Create Invoice", + "operationId": "CreateInvoice", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact", + "x-ms-dynamic-values": { + "operationId": "GetContacts", + "value-collection": "contacts", + "value-path": "id", + "value-title": "organisation_name" + } + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "due_on": { + "type": "string", + "x-ms-summary": "Due On", + "description": "Due On" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + } + }, + "x-ms-summary": "Invoice", + "description": "Invoice" + } + } + }, + "required": true + } + ], + "responses": { + "201": { + "x-ms-summary": "Created", + "description": "Created", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact" + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "due_on": { + "type": "string", + "x-ms-summary": "Due On", + "description": "Due On" + }, + "reference": { + "type": "string", + "x-ms-summary": "Reference", + "description": "Reference" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "exchange_rate": { + "type": "string", + "x-ms-summary": "Exchange Rate", + "description": "Exchange Rate" + }, + "net_value": { + "type": "string", + "x-ms-summary": "Net Value", + "description": "Net Value" + }, + "total_value": { + "type": "string", + "x-ms-summary": "Total Value", + "description": "Total Value" + }, + "paid_value": { + "type": "string", + "x-ms-summary": "Paid Value", + "description": "Paid Value" + }, + "due_value": { + "type": "string", + "x-ms-summary": "Due Value", + "description": "Due Value" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "long_status": { + "type": "string", + "x-ms-summary": "Long Status", + "description": "Long Status" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "send_thank_you_emails": { + "type": "boolean", + "x-ms-summary": "Send Thank You Emails", + "description": "Send Thank You Emails" + }, + "send_reminder_emails": { + "type": "boolean", + "x-ms-summary": "Send Reminder Emails", + "description": "Send Reminder Emails" + }, + "send_new_invoice_emails": { + "type": "boolean", + "x-ms-summary": "Send New Invoice Emails", + "description": "Send New Invoice Emails" + }, + "bank_account": { + "type": "string", + "x-ms-summary": "Bank Account", + "description": "Bank Account" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + }, + "payment_methods": { + "type": "object", + "properties": { + "paypal": { + "type": "boolean", + "x-ms-summary": "Paypal", + "description": "Paypal" + }, + "stripe": { + "type": "boolean", + "x-ms-summary": "Stripe", + "description": "Stripe" + } + }, + "x-ms-summary": "Payment Methods", + "description": "Payment Methods" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + }, + "invoice_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "x-ms-summary": "description", + "description": "description" + }, + "item_type": { + "type": "string", + "x-ms-summary": "Item Type", + "description": "Item Type" + }, + "price": { + "type": "string", + "x-ms-summary": "Price", + "description": "Price" + }, + "quantity": { + "type": "string", + "x-ms-summary": "Quantity", + "description": "Quantity" + } + } + }, + "x-ms-summary": "Invoice Items", + "description": "Invoice Items" + } + }, + "x-ms-summary": "Invoice", + "description": "Invoice" + } + } + } + } + } + }, + "get": { + "summary": "List Invoices", + "x-ms-summary": "List Invoices", + "description": "List Invoices", + "operationId": "ListInvoices", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "id", + "description": "id", + "x-ms-visibility": "internal" + }, + "title": { + "type": "string", + "x-ms-summary": "title", + "description": "title", + "x-ms-visibility": "internal" + }, + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact" + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "due_on": { + "type": "string", + "x-ms-summary": "Due On", + "description": "Due On" + }, + "reference": { + "type": "string", + "x-ms-summary": "Reference", + "description": "Reference" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "exchange_rate": { + "type": "string", + "x-ms-summary": "Exchange Rate", + "description": "Exchange Rate" + }, + "net_value": { + "type": "string", + "x-ms-summary": "Net Value", + "description": "Net Value" + }, + "sales_tax_value": { + "type": "string", + "x-ms-summary": "Sales Tax Value", + "description": "Sales Tax Value" + }, + "total_value": { + "type": "string", + "x-ms-summary": "Total Value", + "description": "Total Value" + }, + "paid_value": { + "type": "string", + "x-ms-summary": "Paid Value", + "description": "Paid Value" + }, + "due_value": { + "type": "string", + "x-ms-summary": "Due Value", + "description": "Due Value" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "long_status": { + "type": "string", + "x-ms-summary": "Long Status", + "description": "Long Status" + }, + "comments": { + "type": "string", + "x-ms-summary": "Comments", + "description": "Comments" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "send_thank_you_emails": { + "type": "boolean", + "x-ms-summary": "Send Thank You Emails", + "description": "Send Thank You Emails" + }, + "send_reminder_emails": { + "type": "boolean", + "x-ms-summary": "Send Reminder Emails", + "description": "Send Reminder Emails" + }, + "send_new_invoice_emails": { + "type": "boolean", + "x-ms-summary": "Send New Invoice Emails", + "description": "Send New Invoice Emails" + }, + "bank_account": { + "type": "string", + "x-ms-summary": "Bank Account", + "description": "Bank Account" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + }, + "ec_status": { + "type": "string", + "x-ms-summary": "Ec Status", + "description": "Ec Status" + }, + "payment_methods": { + "type": "object", + "properties": { + "paypal": { + "type": "boolean", + "x-ms-summary": "Paypal", + "description": "Paypal" + }, + "stripe": { + "type": "boolean", + "x-ms-summary": "Stripe", + "description": "Stripe" + } + }, + "x-ms-summary": "Payment Methods", + "description": "Payment Methods" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + } + } + }, + "x-ms-summary": "Invoices", + "description": "Invoices" + } + } + } + } + } + } + }, + "/invoices/{id}": { + "delete": { + "summary": "Delete Invoice", + "x-ms-summary": "Delete Invoice", + "description": "Delete Invoice", + "operationId": "DeleteInvoice", + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default" + } + } + }, + "get": { + "summary": "Show Invoice", + "x-ms-summary": "Show Invoice", + "description": "Show Invoice", + "operationId": "ShowInvoice", + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact" + }, + "project": { + "type": "string", + "x-ms-summary": "Project", + "description": "Project" + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "due_on": { + "type": "string", + "x-ms-summary": "Due On", + "description": "Due On" + }, + "reference": { + "type": "string", + "x-ms-summary": "Reference", + "description": "Reference" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "exchange_rate": { + "type": "string", + "x-ms-summary": "Exchange Rate", + "description": "Exchange Rate" + }, + "net_value": { + "type": "string", + "x-ms-summary": "Net Value", + "description": "Net Value" + }, + "total_value": { + "type": "string", + "x-ms-summary": "Total Value", + "description": "Total Value" + }, + "paid_value": { + "type": "string", + "x-ms-summary": "Paid Value", + "description": "Paid Value" + }, + "due_value": { + "type": "string", + "x-ms-summary": "Due Value", + "description": "Due Value" + }, + "status": { + "type": "string", + "x-ms-summary": "Status", + "description": "Status" + }, + "long_status": { + "type": "string", + "x-ms-summary": "Long Status", + "description": "Long Status" + }, + "comments": { + "type": "string", + "x-ms-summary": "Comments", + "description": "Comments" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "send_thank_you_emails": { + "type": "boolean", + "x-ms-summary": "Send Thank You Emails", + "description": "Send Thank You Emails" + }, + "send_reminder_emails": { + "type": "boolean", + "x-ms-summary": "Send Reminder Emails", + "description": "Send Reminder Emails" + }, + "send_new_invoice_emails": { + "type": "boolean", + "x-ms-summary": "Send New Invoice Emails", + "description": "Send New Invoice Emails" + }, + "bank_account": { + "type": "string", + "x-ms-summary": "Bank Account", + "description": "Bank Account" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + }, + "ec_status": { + "type": "string", + "x-ms-summary": "Ec Status", + "description": "Ec Status" + }, + "payment_methods": { + "type": "object", + "properties": { + "paypal": { + "type": "boolean", + "x-ms-summary": "Paypal", + "description": "Paypal" + }, + "stripe": { + "type": "boolean", + "x-ms-summary": "Stripe", + "description": "Stripe" + } + }, + "x-ms-summary": "Payment Methods", + "description": "Payment Methods" + }, + "created_at": { + "type": "string", + "x-ms-summary": "Created At", + "description": "Created At" + }, + "updated_at": { + "type": "string", + "x-ms-summary": "Updated At", + "description": "Updated At" + }, + "invoice_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string", + "x-ms-summary": "description", + "description": "description" + }, + "item_type": { + "type": "string", + "x-ms-summary": "Item Type", + "description": "Item Type" + }, + "price": { + "type": "string", + "x-ms-summary": "Price", + "description": "Price" + }, + "quantity": { + "type": "string", + "x-ms-summary": "Quantity", + "description": "Quantity" + } + } + }, + "x-ms-summary": "Invoice Items", + "description": "Invoice Items" + } + }, + "x-ms-summary": "Invoice", + "description": "Invoice" + } + } + } + } + } + }, + "put": { + "summary": "Update Invoice", + "x-ms-summary": "Update Invoice", + "description": "Update Invoice", + "operationId": "UpdateInvoice", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-summary": "Invoice Id", + "description": "Invoice Id", + "x-ms-dynamic-values": { + "operationId": "ListInvoices", + "value-collection": "invoices", + "value-path": "id", + "value-title": "title" + }, + "required": true + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "notes": { + "type": "string", + "x-ms-summary": "Notes", + "description": "Notes" + } + }, + "x-ms-summary": "Invoice", + "description": "Invoice" + } + }, + "default": { + "invoice": { + "notes": "An example of some additional text." + } + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "Ok" + } + } + } + }, + "/recurring_invoices": { + "get": { + "summary": "List all recurring invoices", + "x-ms-summary": "List all recurring invoices", + "description": "List all recurring invoices", + "operationId": "ListAllRecurringInvoices", + "parameters": [], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "recurring_invoices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact" + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "frequency": { + "type": "string", + "x-ms-summary": "Frequency", + "description": "Frequency" + }, + "next_recurs_on": { + "type": "string", + "x-ms-summary": "Next Recurs On", + "description": "Next Recurs On" + }, + "recurring_end_date": { + "type": "string", + "x-ms-summary": "Recurring End Date", + "description": "Recurring End Date" + }, + "recurring_status": { + "type": "string", + "x-ms-summary": "Recurring Status", + "description": "Recurring Status" + }, + "reference": { + "type": "string", + "x-ms-summary": "Reference", + "description": "Reference" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "exchange_rate": { + "type": "string", + "x-ms-summary": "Exchange Rate", + "description": "Exchange Rate" + }, + "net_value": { + "type": "string", + "x-ms-summary": "Net Value", + "description": "Net Value" + }, + "sales_tax_value": { + "type": "string", + "x-ms-summary": "Sales Tax Value", + "description": "Sales Tax Value" + }, + "total_value": { + "type": "string", + "x-ms-summary": "Total Value", + "description": "Total Value" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + } + } + }, + "x-ms-summary": "Recurring Invoices", + "description": "Recurring Invoices" + } + } + } + } + } + } + }, + "/recurring_invoices/{id}": { + "get": { + "summary": "Show Recurring Invoice", + "x-ms-summary": "Show Recurring Invoice", + "description": "Show Recurring Invoice", + "operationId": "ShowRecurringInvoice", + "parameters": [ + { + "name": "id", + "default": "", + "in": "path", + "x-ms-url-encoding": "single", + "x-ms-summary": "Recurring Invoice Id", + "description": "Recurring Invoice Id", + "type": "string", + "required": true + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "recurring_invoice": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "contact": { + "type": "string", + "x-ms-summary": "Contact", + "description": "Contact" + }, + "dated_on": { + "type": "string", + "x-ms-summary": "Dated On", + "description": "Dated On" + }, + "frequency": { + "type": "string", + "x-ms-summary": "Frequency", + "description": "Frequency" + }, + "next_recurs_on": { + "type": "string", + "x-ms-summary": "Next Recurs On", + "description": "Next Recurs On" + }, + "recurring_end_date": { + "type": "string", + "x-ms-summary": "Recurring End Date", + "description": "Recurring End Date" + }, + "recurring_status": { + "type": "string", + "x-ms-summary": "Recurring Status", + "description": "Recurring Status" + }, + "reference": { + "type": "string", + "x-ms-summary": "Reference", + "description": "Reference" + }, + "currency": { + "type": "string", + "x-ms-summary": "Currency", + "description": "Currency" + }, + "exchange_rate": { + "type": "string", + "x-ms-summary": "Exchange Rate", + "description": "Exchange Rate" + }, + "net_value": { + "type": "string", + "x-ms-summary": "Net Value", + "description": "Net Value" + }, + "sales_tax_value": { + "type": "string", + "x-ms-summary": "Sales Tax Value", + "description": "Sales Tax Value" + }, + "total_value": { + "type": "string", + "x-ms-summary": "Total Value", + "description": "Total Value" + }, + "omit_header": { + "type": "boolean", + "x-ms-summary": "Omit Header", + "description": "Omit Header" + }, + "always_show_bic_and_iban": { + "type": "boolean", + "x-ms-summary": "Always Show BIC And IBAN", + "description": "Always Show BIC And IBAN" + }, + "payment_terms_in_days": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Payment Terms In Days", + "description": "Payment Terms In Days" + }, + "invoice_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-summary": "Url", + "description": "Url" + }, + "position": { + "type": "integer", + "format": "int32", + "x-ms-summary": "Position", + "description": "Position" + }, + "description": { + "type": "string", + "x-ms-summary": "description", + "description": "description" + }, + "item_type": { + "type": "string", + "x-ms-summary": "Item Type", + "description": "Item Type" + }, + "price": { + "type": "string", + "x-ms-summary": "Price", + "description": "Price" + }, + "quantity": { + "type": "string", + "x-ms-summary": "Quantity", + "description": "Quantity" + }, + "sales_tax_rate": { + "type": "string", + "x-ms-summary": "Sales Tax Rate", + "description": "Sales Tax Rate" + }, + "sales_tax_status": { + "type": "string", + "x-ms-summary": "Sales Tax Status", + "description": "Sales Tax Status" + }, + "category": { + "type": "string", + "x-ms-summary": "Category", + "description": "Category" + } + } + }, + "x-ms-summary": "Invoice Items", + "description": "Invoice Items" + } + }, + "x-ms-summary": "Recurring Invoice", + "description": "Recurring Invoice" + } + } + } + } + } + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.freeagent.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.freeagent.com/website/privacy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Finance;Data" + } + ], + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://api.freeagent.com/v2/approve_app", + "tokenUrl": "https://api.freeagent.com/v2/token_endpoint", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/independent-publisher-connectors/FreeAgent/apiProperties.json b/independent-publisher-connectors/FreeAgent/apiProperties.json new file mode 100644 index 0000000000..eaae2ac4a4 --- /dev/null +++ b/independent-publisher-connectors/FreeAgent/apiProperties.json @@ -0,0 +1,80 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[CLIENT ID]]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://api.freeagent.com/v2/approve_app" + }, + "tokenUrl": { + "value": "https://api.freeagent.com/v2/token_endpoint" + }, + "refreshUrl": { + "value": "https://api.freeagent.com/v2/token_endpoint" + } + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "stringreplace", + "title": "Replace Invoice Url to ID", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListInvoices" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().invoices", + "x-ms-apimTemplateParameter.propertySubPath": "url", + "x-ms-apimTemplateParameter.sourceString": "https://api.freeagent.com/v2/invoices/", + "x-ms-apimTemplateParameter.replacementString": "", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().id", + "x-ms-apimTemplate-policySection": "Response" + } + }, + { + "templateId": "setproperty", + "title": "Set Title for Invoice", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListInvoices" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().invoices", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "title", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "'{@item()['id']}-{@item()['reference']}'", + "x-ms-apimTemplate-policySection": "Response" + } + }, + { + "templateId": "stringreplace", + "title": "Replace Contact Url to ID", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetContacts" + ], + "x-ms-apimTemplateParameter.propertyParentPath": "@body().contacts", + "x-ms-apimTemplateParameter.propertySubPath": "url", + "x-ms-apimTemplateParameter.sourceString": "https://api.freeagent.com/v2/contacts/", + "x-ms-apimTemplateParameter.replacementString": "", + "x-ms-apimTemplateParameter.newPropertyPath": "@item().id", + "x-ms-apimTemplate-policySection": "Response" + } + } + ], + "publisher": "Nirmal Kumar", + "stackOwner": "FreeAgent" + } +} \ No newline at end of file From 77b91c7a6fa43c3fa051f9bed97cfb684a6a15cd Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 14 Oct 2021 15:09:22 -0400 Subject: [PATCH 054/219] Fix typo in readme.md (#1181) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo --- templates/readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/templates/readme.md b/templates/readme.md index c27de0a337..16e1a7b52a 100644 --- a/templates/readme.md +++ b/templates/readme.md @@ -5,7 +5,7 @@ Required. One paragraph, two to three sentences about the service and the connec Required for Independent-Publisher-Connector and should be a first and last name of an individual or it can be a company name. ​If there is more than one publisher, please separate the names with a comma.​ ## Prerequisites -Required. Any plans or licenses, tools requried from the connector.​ +Required. Any plans or licenses, tools required from the connector.​ ## Supported Operations Required. Describe actions, triggers, and other endpoints.​ @@ -15,7 +15,6 @@ Description of operation 1. ### Operation 2 Description of operation 2. - ## Obtaining Credentials Required. Explain the authentication method and how to get the credentials.​ From df38a106dc5909112a8e35164751071fd5020692 Mon Sep 17 00:00:00 2001 From: HRCIntegrationsTeam <82642910+HRCIntegrationsTeam@users.noreply.github.com> Date: Thu, 14 Oct 2021 21:09:59 +0200 Subject: [PATCH 055/219] HR Cloud (Custom Connector) - Simple Updates (#1180) * HR Cloud Power Automate connector * Changes requested in comments - Removed Applicant action - Changed Summaries - Changed Descriptions - Fixed indentation * Line up apiProperties * Description changes Description text is made more readable for common user. * Update apiDefinition.swagger.json * Authentification updates * Simple type and description updates to apiDefinition.swagger.json Co-authored-by: Zrinka Fiamengo Lovric Co-authored-by: fkaracic --- .../HR Cloud/apiDefinition.swagger.json | 88 ++++++++++++++++--- 1 file changed, 78 insertions(+), 10 deletions(-) diff --git a/custom-connectors/HR Cloud/apiDefinition.swagger.json b/custom-connectors/HR Cloud/apiDefinition.swagger.json index 545dc46024..dcf98e3c4c 100644 --- a/custom-connectors/HR Cloud/apiDefinition.swagger.json +++ b/custom-connectors/HR Cloud/apiDefinition.swagger.json @@ -44,7 +44,7 @@ "type": "object", "properties": { "Amount": { - "type": "string", + "type": "number", "description": "Employees Bonus Amount" }, "Currency": { @@ -149,8 +149,22 @@ "description": "An information about employees Employment Status" }, "xEmploymentTypeLookup": { - "type": "string", - "description": "Employees Employment Type" + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "An Id of employees Employment Type" + }, + "xRecordStatus": { + "type": "string", + "description": "A Record Status of employees Employment Type" + }, + "xType": { + "type": "string", + "description": "A Type of employees Employment Type" + } + }, + "description": "An information about employees Employment Type" }, "xEthnicity": { "type": "string", @@ -203,8 +217,44 @@ "description": "An information about employees Location" }, "xManagerLookup": { - "type": "string", - "description": "Employees Manager" + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "An Id of employees Manager" + }, + "xFullName": { + "type": "string", + "description": "A Full Name of employees Manager" + }, + "xEmail": { + "type": "string", + "description": "An Email address of employees Manager" + }, + "xPictures": { + "type": "object", + "properties": { + "OriginalPictureResourceCropParameters": { + "type": "string", + "description": "Employees Managers Original Picture Resource Crop Parameters" + }, + "SmallResourceId": { + "type": "string", + "description": "Employees Managers Small Picture Resource" + }, + "OriginalResourceId": { + "type": "string", + "description": "Employees Managers Original Picture Resource" + }, + "MediumResourceId": { + "type": "string", + "description": "Employees Managers Medium Picture Resource" + } + }, + "description": "An information about employees Managers Pictures" + } + }, + "description": "An information about employees Manager" }, "xMiddleName": { "type": "string", @@ -215,7 +265,7 @@ "description": "Employees Nickname" }, "xNumberOfPoints": { - "type": "string", + "type": "number", "description": "Employees Number Of Kudos Points" }, "xOnboardingFinishedOn": { @@ -227,12 +277,30 @@ "description": "Employees Pay Frequency Type" }, "xPayRateLookup": { - "type": "string", - "description": "Empoyees Pay Rate" + "type": "object", + "properties": { + "Id": { + "type": "string", + "description": "An Id of employees Pay Rate" + }, + "xName": { + "type": "string", + "description": "Pay Rate Name" + }, + "xCode": { + "type": "string", + "description": "Pay Rate Code" + }, + "xRecordStatus": { + "type": "string", + "description": "A Record Status of employees Position" + } + }, + "description": "Employees Pay Rate" }, "xPersonalEmail": { "type": "string", - "description": "Empoyees Personal Email" + "description": "Employees Personal Email" }, "xPictures": { "type": "object", @@ -290,7 +358,7 @@ "type": "object", "properties": { "Amount": { - "type": "string", + "type": "number", "description": "Employees Salary Amount" }, "Currency": { From 7d090dfa2e154a129bbf50adfd86a1b7555c986c Mon Sep 17 00:00:00 2001 From: Nirmal <897323+nk-gears@users.noreply.github.com> Date: Fri, 15 Oct 2021 01:39:57 +0530 Subject: [PATCH 056/219] ITGlue (Independent Publisher) (#1130) * Initial files for FreeAgent * Updated changes based on Feedback-Round 1 * Removed Empty Schema * Initial files for ITGlue * Refactored OperationId Names * Fixed description and Brand Color * Fixed spaces * Added dynamic endpoint url * Added dynamic endpoint with dropdown selection * Removed other connector files Co-authored-by: Nirmal --- .../ITGlue/README.md | 127 + .../ITGlue/apiDefinition.swagger.json | 2946 +++++++++++++++++ .../ITGlue/apiProperties.json | 59 + 3 files changed, 3132 insertions(+) create mode 100644 independent-publisher-connectors/ITGlue/README.md create mode 100644 independent-publisher-connectors/ITGlue/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/ITGlue/apiProperties.json diff --git a/independent-publisher-connectors/ITGlue/README.md b/independent-publisher-connectors/ITGlue/README.md new file mode 100644 index 0000000000..49dc385938 --- /dev/null +++ b/independent-publisher-connectors/ITGlue/README.md @@ -0,0 +1,127 @@ +# ITGlue +IT Glue is an IT documentation software for MSPs, co-managed IT teams, as well as IT departments. This connector uses your ITGlue API Key to access various resources. + +## Publisher: Nirmal + +## Prerequisites +To use this connector, you need the following + +- API Key from ITGlue Portal +- Account Region base Url + +The base URL for all endpoints and methods is: + +``` +https://api.itglue.com +``` + +Partners with an account in the EU data center will use: + +``` +https://api.eu.itglue.com +``` + +Partners with an account in the Australia data center will use: + +``` +https://api.au.itglue.com +``` + + +## Obtaining Credentials +- All requests require an API key that will be linked to your IT Glue account. Trying to access the API with an incorrect key will result in an HTTP 403 error. + +To create one or more API keys, sign in to IT Glue with an Administrator role and generate your keys from Account > Settings > API Keys. Note that you can't view a key again after it has been generated, so store your keys as passwords in IT Glue or somewhere else safe. API keys do not expire, but they can be revoked anytime from Account > Settings > API Keys. + +For more details, Please visit https://api.itglue.com/developer/ + +### Supported Operations + +#### 1. List Organization Types + +- Returns a list of organization types in your account. + + #### 2. Create an Organization Type + +- Creates a new organization type in your account. Returns the created object if successful. + + #### 3. Get an Organization Type + +- Returns the details of an existing organization type. + + #### 4. Update an Organization Type + +- Updates an organization type in your account. Returns 422 Bad Request error if trying to update an externally synced record. + + #### 5. List Configuration Types + +- Returns a list of configuration types in your account. + + #### 6. Create a Configuration Type + +- Creates a new configuration type in your account. Returns the created object if successful. + + #### 7. Get a Configuration Type + +- Returns the details of an existing configuration type. + + #### 8. Update a Configuration Type + +- Updates a configuration type in your account. Returns 422 Bad Request error if trying to update an externally synced record. + + #### 9. List Configuration Statuses + +- Returns a list of configuration statuses in your account. + + #### 10. Create a Configuration Status + +- Creates a new configuration status in your account. Returns the created object if successful. + + #### 11. Get a Configuration Status + +- Returns the details of an existing configuration status. + + #### 12. Update a Configuration Status + +- Updates a configuration status in your account. Returns 422 Bad Request error if trying to update an externally synced record. - Success + + #### 13. List Countries + +- Returns a list of supported countries. + + #### 14. Get a Country + +- Returns the details of one of the supported countries." + + #### 15. List Flexible Asset Types + +- Returns a list of flexible asset types in your account. + + #### 16. Create a Flexible Asset Type + +- Creates a new flexible asset type in your account. + + #### 17. Get a Flexible Asset Type + +- Returns the details of an existing flexible asset type. + + #### 18. Update a Flexible Asset Type + +- Updates the details of an existing flexible asset type in your account + #### 19. List Domains + +- Returns a list of domains for all organizations or for a specified organization. + + #### 20. List Flexible Asset Fields + +- Returns a list of fields for the specified flexible asset type. + +## Known Issues and Limitations +There are no known issues at time of publishing. + +## Rate Limits +Rate limiting in the IT Glue API should be encountered only in rare circumstances. Currently, the limit is 10k requests per account per day and a variable limit of between 1 to 10 requests per second. A 429 Too Many Requests error code will be returned for rate limited requests. + +## Deployment Instructions +Follow the instructions provided on the [Power Automate blog](https://flow.microsoft.com/en-us/blog/import-a-connector-from-github-as-a-custom-connector/). + diff --git a/independent-publisher-connectors/ITGlue/apiDefinition.swagger.json b/independent-publisher-connectors/ITGlue/apiDefinition.swagger.json new file mode 100644 index 0000000000..dae9886621 --- /dev/null +++ b/independent-publisher-connectors/ITGlue/apiDefinition.swagger.json @@ -0,0 +1,2946 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "ITGlue", + "description": "ITGlue Connector can be used to create, retrieve, update, and delete data in your IT Glue account. This includes Configurations, Passwords and Flexible Assets", + "contact": { + "name": "Nirmal", + "url": "http://nkdews.com", + "email": "nirmalk.web@gmail.com" + }, + "termsOfService": "https://api.itglue.com/developer" + }, + "host": "api.itglue.com", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/organization_types": { + "get": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "data", + "items": { + "$ref": "#/definitions/organization-types-read" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "summary": "List Organization Types", + "description": "Returns a list of organization types in your account.", + "operationId": "List-Organization-Types", + "parameters": [ + { + "name": "filter[name]", + "in": "query", + "required": false, + "type": "string", + "description": "Filter by Name", + "x-ms-summary": "Filter by Name", + "x-ms-visibility": "advanced" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "name", + "id", + "created_at", + "updated_at", + "-name", + "-id", + "-created-at", + "-updated-at" + ], + "description": "Sort by Field Name. fieldname for ascending, -fieldname for descending.", + "x-ms-summary": "Sort", + "x-ms-visibility": "advanced" + }, + { + "$ref": "#/parameters/page-number" + }, + { + "$ref": "#/parameters/page-size" + } + ], + "tags": [ + "Organization Types" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/organization-types-read" + } + } + } + } + }, + "summary": "Create an Organization Type", + "description": "Creates a new organization type in your account. Returns the created object if successful.", + "operationId": "Post-Organization-Type", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/organization-types-create" + } + }, + "required": [ + "data" + ] + }, + "x-examples": { + "example-1": { + "data": { + "type": "organization-types", + "attributes": { + "name": "string" + } + } + } + } + }, + { + "$ref": "#/parameters/content-type" + } + ], + "tags": [ + "Organization Types" + ] + } + }, + "/organization_types/{object_id}": { + "get": { + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "type": { + "type": "string", + "description": "type" + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "created-at": { + "type": "string", + "description": "created-at" + }, + "updated-at": { + "type": "string", + "description": "updated-at" + } + }, + "description": "attributes" + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Get an Organization Type", + "description": "Returns the details of an existing organization type.", + "operationId": "Get-organization-type", + "tags": [ + "Organization Types" + ] + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/organization-types-read" + } + }, + "required": [ + "data" + ] + } + } + }, + "summary": "Update an Organization Type", + "description": "Updates an organization type in your account. Returns 422 Bad Request error if trying to update an externally synced record.", + "operationId": "Patch-organization-type", + "parameters": [ + { + "$ref": "#/parameters/object_id" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/organization-types-create" + } + }, + "required": [ + "data" + ] + } + }, + { + "$ref": "#/parameters/content-type" + } + ], + "tags": [ + "Organization Types" + ] + } + }, + "/configuration_types": { + "get": { + "summary": "List Configuration Types", + "description": "Returns a list of configuration types in your account.", + "operationId": "List-Configuration-Types", + "parameters": [ + { + "$ref": "#/parameters/page-size" + }, + { + "$ref": "#/parameters/page-number" + }, + { + "type": "string", + "in": "query", + "name": "filter[name]", + "description": "Filter the results by the Name Field. Exact match only.", + "x-ms-summary": "Filter By Name", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "sort", + "description": "Select the field to sort by. Ascending by fieldname, descending by -fieldname.", + "enum": [ + "name", + "id", + "created_at", + "updated_at", + "-name", + "-id", + "-created_at", + "-updated_at" + ], + "x-ms-summary": "Sort Order", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Sucess", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "data", + "items": { + "$ref": "#/definitions/configuration-types-read" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "tags": [ + "Configuration Types" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "description": "Created", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-types-read" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": {} + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": {} + } + }, + "415": { + "description": "Unsupported Media Type", + "schema": { + "type": "object", + "properties": {} + } + }, + "422": { + "description": "Unprocessable Entity (WebDAV)", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-types-create" + } + }, + "required": [ + "data" + ] + }, + "description": "Configuration Types" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "summary": "Create a Configuration Type", + "description": "Creates a new configuration type in your account. Returns the created object if successful.", + "operationId": "Post-Configuration-Type", + "tags": [ + "Configuration Types" + ] + } + }, + "/configuration_types/{object_id}": { + "get": { + "summary": "Get a Configuration Type", + "operationId": "Get-Configuration-Type", + "description": "Returns the details of an existing configuration type.", + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "description": "Default", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-types-read" + } + }, + "required": [ + "data" + ] + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "404": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "tags": [ + "Configuration Types" + ] + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "description": "Default", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-types-read" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "403": { + "$ref": "#/responses/403-Forbidden" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + }, + "415": { + "$ref": "#/responses/415-Bad_Content_Type" + }, + "422": { + "$ref": "#/responses/422-Bad_Request" + } + }, + "parameters": [ + { + "$ref": "#/parameters/object_id" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-types-create" + } + }, + "required": [ + "data" + ] + }, + "description": "Configuration Types" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "summary": "Update a Configuration Type", + "description": "Updates a configuration type in your account. Returns 422 Bad Request error if trying to update an externally synced record.", + "operationId": "Patch-Configuration-Type", + "tags": [ + "Configuration Types" + ] + } + }, + "/configuration_statuses": { + "get": { + "summary": "List Configuration Statuses", + "description": "Returns a list of configuration statuses in your account.", + "operationId": "List-Configuration-Statuses", + "parameters": [ + { + "$ref": "#/parameters/page-size" + }, + { + "$ref": "#/parameters/page-number" + }, + { + "type": "string", + "in": "query", + "name": "filter[name]", + "description": "Filter the results by the Name Field. Exact match only.", + "x-ms-summary": "Filter By Name", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "sort", + "description": "Select the field to sort by. Ascending by fieldname, descending by -fieldname.", + "enum": [ + "name", + "id", + "created_at", + "updated_at", + "-name", + "-id", + "-created_at", + "-updated_at" + ], + "x-ms-summary": "Sort Order", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Sucess", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "data", + "items": { + "$ref": "#/definitions/configuration-statuses-read" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "tags": [ + "Configuration Statuses" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "description": "Created", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-statuses-read" + } + } + } + }, + "401": { + "description": "Unauthorized", + "schema": { + "type": "object", + "properties": {} + } + }, + "403": { + "description": "Forbidden", + "schema": { + "type": "object", + "properties": {} + } + }, + "415": { + "description": "Unsupported Media Type", + "schema": { + "type": "object", + "properties": {} + } + }, + "422": { + "description": "Unprocessable Entity (WebDAV)", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-statuses-create" + } + }, + "required": [ + "data" + ] + }, + "description": "Configuration Status" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "summary": "Create a Configuration Status", + "description": "Creates a new configuration status in your account. Returns the created object if successful.", + "operationId": "Post-Configuration-Status", + "tags": [ + "Configuration Statuses" + ] + } + }, + "/configuration_statuses/{object_id}": { + "get": { + "summary": "Get a Configuration Status", + "operationId": "Get-Configuration-Status", + "description": "Returns the details of an existing configuration status.", + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "description": "Default", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-statuses-read" + } + }, + "required": [ + "data" + ] + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "404": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "tags": [ + "Configuration Statuses" + ] + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "description": "Configuration Status", + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-statuses-read" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "403": { + "$ref": "#/responses/403-Forbidden" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + }, + "415": { + "$ref": "#/responses/415-Bad_Content_Type" + }, + "422": { + "$ref": "#/responses/422-Bad_Request" + } + }, + "parameters": [ + { + "$ref": "#/parameters/object_id" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/configuration-statuses-create" + } + }, + "required": [ + "data" + ] + }, + "description": "Configuration Status" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "summary": "Update a Configuration Status", + "description": "Updates a configuration status in your account. Returns 422 Bad Request error if trying to update an externally synced record.", + "operationId": "Patch-Configuration-Status", + "tags": [ + "Configuration Statuses" + ] + } + }, + "/countries": { + "get": { + "summary": "List Countries", + "tags": [ + "Countries" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "description": "Countries", + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/countries-read" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "operationId": "List-Countries", + "description": "Returns a list of supported countries.", + "parameters": [ + { + "type": "string", + "in": "query", + "name": "filter[name]", + "description": "Enter the Country Name field value to filter by.", + "x-ms-summary": "Filter by Name", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "filter[iso]", + "description": "Enter the Country ISO codue field value to filter by.", + "x-ms-summary": "Filter by Id", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "sort", + "x-ms-summary": "Sort by", + "x-ms-visibility": "advanced", + "enum": [ + "id", + "name", + "created-at", + "updated-at", + "-id", + "-name", + "-created-at", + "-updated-at" + ], + "description": "Enter the field to sort by, fieldname for ascending, and -fieldname for descending." + }, + { + "$ref": "#/parameters/page-number" + }, + { + "$ref": "#/parameters/page-size" + } + ] + } + }, + "/countries/{object_id}": { + "get": { + "summary": "Get a Country", + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ], + "tags": [ + "Countries" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/countries-read" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + } + }, + "operationId": "Get-Country", + "description": "Returns the details of one of the supported countries." + }, + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ] + }, + "/flexible_asset_types": { + "get": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/flexible-asset-types-read" + } + }, + "included": { + "type": "array", + "items": { + "$ref": "#/definitions/flexible-asset-fields-read" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "summary": "List Flexible Asset Types", + "operationId": "List-Flexible-Asset-Types", + "parameters": [ + { + "$ref": "#/parameters/page-size" + }, + { + "$ref": "#/parameters/page-number" + }, + { + "type": "number", + "in": "query", + "name": "filter[id]", + "x-ms-summary": "Filter by ID", + "description": "Filter the list based on an Object ID", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "filter[name]", + "x-ms-summary": "Filter by Name", + "description": "Filter the list based on the Type's name field", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "filter[icon]", + "x-ms-summary": "Filter by Icon", + "description": "Filter the list based on the Type's icon field", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "filter[enabled]", + "x-ms-summary": "Filter by Enabled", + "description": "Filter the list based on the Type's enabled status", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "sort", + "x-ms-summary": "Sort Order", + "description": "Sort the list based on one of id, name, created_at, or updated_at fields", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "include", + "x-ms-summary": "Expand Results", + "description": "Expand the results to also include flexible_asset_fields", + "enum": [ + "flexible_asset_fields" + ], + "x-ms-visibility": "advanced" + } + ], + "description": "Returns a list of flexible asset types in your account.", + "tags": [ + "Flexible Asset Types" + ] + }, + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "201": { + "description": "Created", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/flexible-asset-types-read" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "403": { + "$ref": "#/responses/403-Forbidden" + }, + "415": { + "$ref": "#/responses/415-Bad_Content_Type" + }, + "422": { + "$ref": "#/responses/422-Bad_Request" + }, + "500": { + "$ref": "#/responses/500-Internal_Server_Error" + } + }, + "summary": "Create a Flexible Asset Type", + "operationId": "Post-Flexible-Asset-Type", + "description": "Creates a new flexible asset type in your account. Returns the created object if successful. Use the nested Fields array to add one or more flexible asset fields to a flexible asset type. Creating a new flexible asset type requires a)at least the first field to be defined in the nested Fields array (located under advanced); b) at least one field needs to be set as Use for Title; and c) one field set as Show in List. Failure to meet all three criteria will generate an error 422.\n", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/flexible-asset-types-create" + } + }, + "required": [ + "data" + ] + }, + "description": "Flexible Asset Types" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "tags": [ + "Flexible Asset Types" + ] + } + }, + "/flexible_asset_types/{object_id}": { + "get": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/flexible-asset-types-read" + }, + "included": { + "type": "array", + "items": { + "$ref": "#/definitions/flexible-asset-fields-read" + } + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + } + }, + "summary": "Get a Flexible Asset Type", + "description": "Returns the details of an existing flexible asset type.", + "operationId": "Get-Flexible-Asset-Type", + "parameters": [ + { + "$ref": "#/parameters/object_id" + }, + { + "name": "include", + "in": "query", + "required": false, + "type": "string", + "enum": [ + "flexible_asset_fields" + ], + "x-ms-summary": "Expand Results", + "description": "Expand the returned objects to include the selected. Use Comma Separated List for multiple items.", + "x-ms-visibility": "advanced" + } + ], + "tags": [ + "Flexible Asset Types" + ] + }, + "patch": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/flexible-asset-types-read" + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "403": { + "$ref": "#/responses/403-Forbidden" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + }, + "415": { + "$ref": "#/responses/415-Bad_Content_Type" + }, + "422": { + "$ref": "#/responses/422-Bad_Request" + }, + "500": { + "$ref": "#/responses/500-Internal_Server_Error" + } + }, + "summary": "Update a Flexible Asset Type", + "operationId": "Patch-Flexible-Asset-Type", + "description": "Updates the details of an existing flexible asset type in your account. Returns 403 Forbidden error if any relationships are present in the request. An update does not require that the entire object resource with all of its attributes be enclosed. Any attributes you don't specify will remain unchanged.", + "parameters": [ + { + "$ref": "#/parameters/object_id" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "data": { + "$ref": "#/definitions/flexible-asset-types-update" + } + }, + "required": [ + "data" + ] + }, + "description": "Flexible Asset Types" + }, + { + "$ref": "#/parameters/content-type" + } + ], + "tags": [ + "Flexible Asset Types" + ] + }, + "parameters": [ + { + "$ref": "#/parameters/object_id" + } + ] + }, + "/domains": { + "get": { + "summary": "List Domains", + "tags": [ + "Domains" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "description": "Domains", + "type": "object", + "properties": { + "data": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/domains" + } + }, + "included": { + "type": "array", + "items": { + "$ref": "#/definitions/global-includable-objects" + } + }, + "meta": { + "$ref": "#/definitions/list-meta" + }, + "links": { + "$ref": "#/definitions/list-links" + } + }, + "required": [ + "data" + ] + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + } + }, + "operationId": "List-Domains", + "description": "Returns a list of domains for all organizations or for a specified organization.", + "parameters": [ + { + "$ref": "#/parameters/page-size" + }, + { + "$ref": "#/parameters/page-number" + }, + { + "type": "string", + "in": "query", + "name": "filter[id]", + "description": "Specify the ID you wish to filter results by.", + "x-ms-summary": "Filter by ID", + "x-ms-visibility": "advanced" + }, + { + "type": "integer", + "in": "query", + "name": "filter[organization_id]", + "description": "Specify the Organization ID you wish to filter results by.", + "x-ms-summary": "Organization ID", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "sort", + "description": "Select the field to sort by. Ascending by fieldname, descending by -fieldname.", + "enum": [ + "created_at", + "updated_at", + "-created_at", + "-updated_at" + ], + "x-ms-summary": "Sort Order", + "x-ms-visibility": "advanced" + }, + { + "type": "string", + "in": "query", + "name": "include", + "description": "Expand the returned objects to include the selected. Use Comma Separated List for multiple items.", + "enum": [ + "passwords", + "attachments", + "user_resource_accesses", + "group_resource_accesses" + ], + "x-ms-summary": "Expand Results", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/flexible_asset_types/{parent_id}/relationships/flexible_asset_fields": { + "get": { + "parameters": [ + { + "$ref": "#/parameters/parent_id" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "description": "data", + "items": { + "$ref": "#/definitions/flexible-asset-fields-read" + } + } + } + } + }, + "401": { + "$ref": "#/responses/401-Unauthorized" + }, + "404": { + "$ref": "#/responses/404-Not-Found" + } + }, + "summary": "List Flexible Asset Fields", + "description": "Returns a list of fields for the specified flexible asset type.", + "operationId": "List-Flexible-Asset-Fields", + "tags": [ + "Flexible Asset Types", + "Flexible Asset Fields" + ] + }, + "parameters": [ + { + "$ref": "#/parameters/parent_id" + } + ] + } + }, + "definitions": { + "domains": { + "description": "Domains", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "organization-id": { + "type": "number" + }, + "organization-name": { + "type": "string", + "minLength": 1 + }, + "resource-url": { + "type": "string", + "minLength": 1 + }, + "restricted": { + "type": "boolean" + }, + "my-glue": { + "type": "boolean" + }, + "notes": { + "type": "string", + "minLength": 1 + }, + "registrar-name": { + "type": "string", + "minLength": 1 + }, + "expires-on": { + "type": "string", + "minLength": 1 + }, + "screenshot": {} + } + }, + "relationships": { + "type": "object", + "properties": { + "user-resource-accesses": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string", + "enum": [ + "resource-accesses" + ], + "minLength": 1 + } + } + } + } + } + }, + "group-resource-accesses": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string", + "enum": [ + "group-resource-accesses" + ], + "minLength": 1 + } + } + } + } + } + }, + "passwords": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string", + "enum": [ + "passwords" + ], + "minLength": 1 + } + } + } + } + } + }, + "attachments": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "type": { + "type": "string", + "enum": [ + "attachments" + ], + "minLength": 1 + } + } + } + } + } + } + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "attachments": { + "description": "Attachments", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "attachment-file-name": { + "type": "string", + "minLength": 1 + }, + "attachment-content-type": { + "type": "string", + "minLength": 1 + }, + "attachment-file-size": { + "type": "number" + }, + "ext": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "viewable": { + "type": "boolean" + }, + "download-url": { + "type": "string", + "minLength": 1 + } + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "passwords": { + "description": "Passwords", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "organization-id": { + "type": "number" + }, + "organization-name": { + "type": "string", + "minLength": 1 + }, + "resource-url": { + "type": "string", + "minLength": 1 + }, + "restricted": { + "type": "boolean" + }, + "my-glue": { + "type": "boolean" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "autofill-selectors": {}, + "username": { + "type": "string", + "minLength": 1 + }, + "url": { + "type": "string", + "minLength": 1 + }, + "notes": {}, + "password-updated-at": { + "type": "string", + "minLength": 1 + }, + "updated-by": { + "type": "number" + }, + "updated-by-type": { + "type": "string", + "minLength": 1 + }, + "resource-id": { + "type": "number" + }, + "cached-resource-type-name": { + "type": "string", + "minLength": 1 + }, + "cached-resource-name": { + "type": "string", + "minLength": 1 + }, + "password-category-id": {}, + "password-category-name": {}, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "otp-enabled": { + "type": "boolean" + }, + "password-folder-id": {}, + "resource-type": { + "type": "string", + "minLength": 1 + }, + "parent-url": { + "type": "string", + "minLength": 1 + }, + "vault-id": {}, + "archived": { + "type": "boolean" + } + } + }, + "relationships": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/attachments" + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "resource-accesses": { + "description": "Resource Accesses", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "accessor-id": { + "type": "number" + }, + "accessor-type": { + "type": "string", + "minLength": 1 + }, + "name": { + "type": "string", + "minLength": 1 + }, + "meta": { + "type": "object", + "properties": { + "role-name": { + "type": "string", + "minLength": 1 + } + } + } + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "list-meta": { + "description": "List Meta", + "type": "object", + "properties": { + "current-page": { + "type": "number" + }, + "next-page": { + "type": "number" + }, + "prev-page": { + "type": "number" + }, + "total-pages": { + "type": "number" + }, + "total-count": { + "type": "number" + }, + "filters": { + "type": "object" + } + } + }, + "list-links": { + "description": "List Links", + "type": "object", + "properties": { + "self": { + "type": "string", + "minLength": 1 + }, + "first": { + "type": "string", + "minLength": 1 + }, + "prev": { + "type": "string", + "minLength": 1 + }, + "next": { + "type": "string", + "minLength": 1 + }, + "last": { + "type": "string", + "minLength": 1 + } + } + }, + "error-response": { + "description": "Error Response", + "type": "object", + "properties": { + "message": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "message" + ] + }, + "flexible-asset-types-read": { + "description": "Flexible Asset Types", + "type": "object", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1, + "readOnly": true + }, + "updated-at": { + "type": "string", + "minLength": 1, + "readOnly": true + }, + "description": { + "type": "string", + "minLength": 1 + }, + "icon": { + "type": "string", + "minLength": 1 + }, + "enabled": { + "type": "boolean" + }, + "show-in-menu": { + "type": "boolean" + } + } + }, + "relationships": { + "type": "object", + "properties": { + "flexible-asset-fields": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "enum": [ + "flexible-asset-fields" + ] + } + } + } + } + } + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "flexible-asset-fields-read": { + "description": "Flexible Asset Fields", + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "required": [ + "kind" + ], + "properties": { + "order": { + "type": "number" + }, + "name": { + "type": "string", + "minLength": 1 + }, + "kind": { + "type": "string", + "minLength": 1 + }, + "hint": { + "type": "string", + "minLength": 1 + }, + "decimals": { + "type": "number" + }, + "tag-type": {}, + "required": { + "type": "boolean" + }, + "use-for-title": { + "type": "boolean" + }, + "expiration": { + "type": "boolean" + }, + "show-in-list": { + "type": "boolean" + }, + "name-key": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "flexible-asset-type-id": { + "type": "number" + }, + "default-value": { + "type": "string", + "minLength": 1 + } + } + }, + "relationships": { + "type": "object", + "properties": { + "flexible-asset-type": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "minLength": 1 + } + } + } + } + } + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "global-includable-objects": { + "description": "Global Includable Objects", + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "type": { + "type": "string", + "enum": [ + "attachments", + "passwords", + "resource-accesses", + "group-resource-access" + ], + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "attachment-file-name": { + "type": "string", + "minLength": 1 + }, + "attachment-content-type": { + "type": "string", + "minLength": 1 + }, + "attachment-file-size": { + "type": "number" + }, + "ext": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "viewable": { + "type": "boolean" + }, + "download-url": { + "type": "string", + "minLength": 1 + }, + "organization-id": { + "type": "number" + }, + "organization-name": { + "type": "string", + "minLength": 1 + }, + "resource-url": { + "type": "string", + "minLength": 1 + }, + "restricted": { + "type": "boolean" + }, + "my-glue": { + "type": "boolean" + }, + "autofill-selectors": {}, + "username": { + "type": "string", + "minLength": 1 + }, + "url": { + "type": "string", + "minLength": 1 + }, + "notes": {}, + "password-updated-at": { + "type": "string", + "minLength": 1 + }, + "updated-by": { + "type": "number" + }, + "updated-by-type": { + "type": "string", + "minLength": 1 + }, + "resource-id": { + "type": "number" + }, + "cached-resource-type-name": { + "type": "string", + "minLength": 1 + }, + "cached-resource-name": { + "type": "string", + "minLength": 1 + }, + "password-category-id": {}, + "password-category-name": {}, + "otp-enabled": { + "type": "boolean" + }, + "password-folder-id": {}, + "resource-type": { + "type": "string", + "minLength": 1 + }, + "parent-url": { + "type": "string", + "minLength": 1 + }, + "vault-id": {}, + "archived": { + "type": "boolean" + }, + "id": { + "type": "number" + }, + "order": { + "type": "number" + }, + "kind": { + "type": "string", + "minLength": 1 + }, + "hint": { + "type": "string", + "minLength": 1 + }, + "decimals": { + "type": "number" + }, + "tag-type": {}, + "required": { + "type": "boolean" + }, + "use-for-title": { + "type": "boolean" + }, + "expiration": { + "type": "boolean" + }, + "show-in-list": { + "type": "boolean" + }, + "name-key": { + "type": "string", + "minLength": 1 + }, + "flexible-asset-type-id": { + "type": "number" + }, + "default-value": { + "type": "string", + "minLength": 1 + }, + "accessor-id": { + "type": "number" + }, + "accessor-type": { + "type": "string", + "minLength": 1 + }, + "meta": { + "type": "object", + "properties": { + "role-name": { + "type": "string", + "minLength": 1 + } + } + } + } + }, + "relationships": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "id": { + "type": "number" + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "attachment-file-name": { + "type": "string", + "minLength": 1 + }, + "attachment-content-type": { + "type": "string", + "minLength": 1 + }, + "attachment-file-size": { + "type": "number" + }, + "ext": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "viewable": { + "type": "boolean" + }, + "download-url": { + "type": "string", + "minLength": 1 + } + } + } + } + } + } + }, + "required": [ + "id", + "type", + "attributes" + ] + }, + "flexible-asset-types-create": { + "description": "Flexible Asset Types", + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "enum": [ + "flexible_asset_types" + ], + "x-ms-summary": "Record Type", + "x-ms-visibility": "internal", + "description": "The record type this object represents", + "default": "flexible_asset_types" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "x-ms-summary": "Record ID", + "x-ms-visibility": "advanced", + "description": "Read Only. Record ID used only for record identification during bulk updates only.", + "readOnly": true + }, + "name": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Name", + "x-ms-visibility": "important", + "description": "Name of this flexible asset type." + }, + "description": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Description", + "x-ms-visibility": "important", + "description": "Description of this flexible asset type." + }, + "icon": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Icon", + "x-ms-visbility": "important", + "description": "Name of the standard icon to use (e.g. envelope). Names can be found on the new flexible asset form in IT Glue under the Pick Icon button." + }, + "enabled": { + "type": "boolean", + "x-ms-summary": "Enabled", + "x-ms-visibility": "advanced", + "description": "Is the new flexible asset enabled?" + }, + "show-in-menu": { + "type": "boolean", + "x-ms-summary": "In Menu", + "x-ms-visibility": "advanced", + "description": "Is the new flexible asset viewable in the side menu?" + } + } + }, + "relationships": { + "type": "object", + "required": [ + "flexible-asset-fields" + ], + "properties": { + "flexible-asset-fields": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "array", + "x-ms-summary": "Fields", + "x-ms-visibility": "advanced", + "description": "JSON object representing the Fixed Asset Fields. Must include at least 1 field as title and show in list.", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "enum": [ + "flexible_asset_fields" + ], + "x-ms-summary": "Record Type", + "x-ms-visibility": "internal", + "description": "Type of record this object represents", + "default": "flexible_asset_fields" + }, + "attributes": { + "type": "object", + "properties": { + "order": { + "type": "integer", + "x-ms-summary": "Order", + "x-ms-visibility": "important", + "description": "Postion of this field on the Flexible asset form." + }, + "name": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Field Name", + "x-ms-visibility": "important", + "description": "Name of the field" + }, + "kind": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Field Type", + "x-ms-visibility": "important", + "description": "Data type of the new field", + "enum": [ + "Checkbox", + "Header", + "Date", + "Number", + "Select", + "Text", + "Textbox", + "Upload", + "Tag", + "Precent", + "Password" + ] + }, + "hint": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Field Hint", + "x-ms-visibility": "advanced", + "description": "Hint Text for field" + }, + "tag-type": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Tag Type", + "x-ms-visibility": "advanced", + "description": "If Field Type is Tag, what type of asset should the tag be?", + "enum": [ + "AccountsUsers", + "Checklists", + "ChecklistTemplates", + "Contacts", + "Configurations", + "Documents", + "Domains", + "Passwords", + "Locations", + "Organizations", + "SslCertificates", + "Tickets", + "[FlexibleAssetType: id]" + ] + }, + "required": { + "type": "boolean", + "x-ms-summary": "Required", + "x-ms-visibility": "advanced", + "description": "Is the field required" + }, + "show-in-list": { + "type": "boolean", + "x-ms-summary": "Show in List?", + "x-ms-visibility": "advanced", + "description": "Should this field show in the asset listing view." + }, + "decimals": { + "type": "integer", + "x-ms-summary": "Number of Decimals", + "x-ms-visibility": "advanced", + "description": "For number fields, how many desimals to show / store." + }, + "default_value": { + "type": "string", + "x-ms-summary": "Default Value", + "x-ms-visibility": "advanced", + "description": "Default value for new Assets" + }, + "use_for_title": { + "type": "boolean", + "x-ms-summary": "Title Field", + "x-ms-visibility": "advanced", + "description": "Use this field in generating the Asset's title." + }, + "expiration": { + "type": "boolean", + "x-ms-summary": "Expiration", + "x-ms-visibility": "advanced", + "description": "For date fields, field is treated at an expiration date for the Asset." + } + } + } + }, + "required": [ + "type" + ] + } + } + } + } + } + } + }, + "required": [ + "type", + "attributes", + "relationships" + ] + }, + "flexible-asset-types-update": { + "description": "Flexible Asset Types", + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "enum": [ + "flexible_asset_types" + ], + "x-ms-summary": "Record Type", + "x-ms-visibility": "internal", + "description": "The record type this object represents", + "default": "flexible_asset_types" + }, + "attributes": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "x-ms-summary": "Record ID", + "x-ms-visibility": "advanced", + "description": "Read Only. Record ID used only for record identification during bulk updates only.", + "readOnly": true + }, + "name": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Name", + "x-ms-visibility": "important", + "description": "Name of this flexible asset type." + }, + "description": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Description", + "x-ms-visibility": "important", + "description": "Description of this flexible asset type." + }, + "icon": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Icon", + "x-ms-visbility": "important", + "description": "Name of the standard icon to use (e.g. envelope). Names can be found on the new flexible asset form in IT Glue under the Pick Icon button." + }, + "enabled": { + "type": "boolean", + "x-ms-summary": "Enabled", + "x-ms-visibility": "advanced", + "description": "Is the new flexible asset enabled?" + }, + "show-in-menu": { + "type": "boolean", + "x-ms-summary": "In Menu", + "x-ms-visibility": "advanced", + "description": "Is the new flexible asset viewable in the side menu?" + } + } + } + }, + "required": [ + "type", + "attributes" + ] + }, + "countries-read": { + "description": "Countries", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "minLength": 1, + "default": "countries", + "enum": [ + "countries" + ] + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "iso": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + } + } + } + }, + "required": [ + "id", + "type" + ] + }, + "configuration-types-read": { + "description": "Configuration Types", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "configuration-count": { + "type": "number" + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + } + } + } + }, + "required": [ + "id", + "type" + ] + }, + "configuration-types-create": { + "description": "Configuration Types", + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "default": "configuration-types", + "x-ms-summary": "Record Type", + "x-ms-visibility": "internal", + "enum": [ + "configuration-types" + ] + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Name", + "description": "Configuration Type Name", + "x-ms-visibility": "important" + } + } + } + }, + "required": [ + "type" + ] + }, + "configuration-statuses-read": { + "description": "Configuration Statuses", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "minLength": 1 + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + } + } + } + }, + "required": [ + "id", + "type" + ] + }, + "configuration-statuses-create": { + "description": "Configuration Statuses", + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "default": "configuration-statuses", + "x-ms-summary": "Record Type", + "x-ms-visibility": "internal", + "enum": [ + "configuration-statuses" + ] + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1, + "x-ms-summary": "Name", + "description": "Configuration Status Name", + "x-ms-visibility": "important" + } + } + } + }, + "required": [ + "type" + ] + }, + "organization-types-read": { + "description": "Organization Types", + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "type": { + "type": "string", + "minLength": 1, + "default": "organization-types", + "enum": [ + "organization-types" + ] + }, + "attributes": { + "type": "object", + "properties": { + "name": { + "type": "string", + "minLength": 1 + }, + "created-at": { + "type": "string", + "minLength": 1 + }, + "updated-at": { + "type": "string", + "minLength": 1 + }, + "synced": { + "type": "boolean" + } + } + } + }, + "required": [ + "id", + "type" + ] + }, + "organization-types-create": { + "description": "Organization Types", + "type": "object", + "properties": { + "type": { + "type": "string", + "minLength": 1, + "default": "organization-types", + "x-ms-visibility": "internal", + "enum": [ + "organization-types" + ] + }, + "attributes": { + "type": "object", + "required": [ + "name" + ], + "description": "Name of the Organization Type.", + "x-ms-summary": "Name", + "x-ms-visibility": "important", + "properties": { + "name": { + "type": "string", + "minLength": 1 + } + } + } + }, + "required": [ + "type", + "attributes" + ] + } + }, + "parameters": { + "page-number": { + "name": "page[number]", + "in": "query", + "type": "integer", + "description": "Return the Nth page based on page size", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" + }, + "page-size": { + "name": "page[size]", + "in": "query", + "required": false, + "type": "integer", + "description": "Number of rows to return per page", + "x-ms-summary": "Rows per Page", + "x-ms-visibility": "advanced" + }, + "object_id": { + "name": "object_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "integer", + "description": "ID of the record to return", + "x-ms-summary": "Record ID", + "x-ms-visibility": "important" + }, + "parent_id": { + "name": "parent_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "integer", + "description": "ID of the parent record", + "x-ms-summary": "Parent Record ID", + "x-ms-visibility": "important" + }, + "content-type": { + "name": "Content-Type", + "type": "string", + "in": "header", + "description": "POST Methods must set Content-Type to application/vnd.api+json", + "required": true, + "default": "application/vnd.api+json", + "x-ms-visibility": "internal" + } + }, + "responses": { + "401-Unauthorized": { + "description": "Forbidden Response", + "schema": { + "$ref": "#/definitions/error-response" + } + }, + "404-Not-Found": { + "description": "Example response", + "schema": { + "description": "Not Found", + "type": "object", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "status": { + "type": "number" + }, + "title": { + "type": "string", + "minLength": 1 + }, + "detail": { + "type": "string", + "minLength": 1 + }, + "source": { + "type": "object", + "properties": { + "pointer": {} + } + } + } + } + } + } + } + }, + "403-Forbidden": { + "description": "Example response", + "schema": { + "$ref": "#/definitions/error-response" + } + }, + "415-Bad_Content_Type": { + "description": "Example response", + "schema": { + "$ref": "#/definitions/error-response" + } + }, + "422-Bad_Request": { + "description": "Example response", + "schema": { + "description": "Bad Request", + "type": "object", + "properties": { + "errors": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "source": { + "type": "object", + "properties": { + "pointer": {} + } + }, + "detail": { + "type": "string", + "minLength": 1 + }, + "title": { + "type": "string", + "minLength": 1 + }, + "status": { + "type": "number" + } + } + } + } + } + } + }, + "500-Internal_Server_Error": { + "description": "Error 500 cill be returned when using certain parts of the API that are documented, but appear to be no longer in play.\n\n> As an example, Creating (POST) a flexible_asset_types object with the fields definition inline in the\n> attributes object will create an error 500. The only / proper way to create fields is through the \n> relationships object adjacent to the data tag.", + "schema": { + "type": "object" + } + } + }, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "x-api-key", + "description": "Retreive and set the API Key from your IT Glue account." + } + }, + "security": [ + { + "API Key": [] + } + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.itglue.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.itglue.com/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Productivity" + } + ], + "tags": [ + { + "name": "Attachments", + "description": "An attachment refers to a file upload associated with an asset.\nThis resource allows you to manage all attachments in your account. Note that attachments are accessed from the relevant endpoints (GET /configurations, GET /passwords, etc.) using the include=attachments parameter to return the file attachments in the relationships attributes of the requested objects. Example: /configurations/1?include=attachments\nAn attachment can belong to only one asset. Each asset can have relationships with one or more attachments." + }, + { + "name": "Configurations", + "description": "A configuration refers to a device you manage for a client organization.\nThe Configurations resource allows you to manage information about all configurations in your account.\nA configuration can belong to only one organization. Each configuration can have a primary IP address, a primary MAC address, plus one or more additional IP and MAC addresses that are maintained in a separate Configuration Interfaces resource." + }, + { + "name": "Contacts", + "description": "A contact refers to a contact in a client organization.\nThe Contacts resource allows you to manage information about all contacts in your account.\nA contact can belong to only one organization. Each contact can have one location, which is maintained as a separate Locations resource." + }, + { + "name": "Countries", + "description": "A country refers to any distinct national entity.\nThe Countries resource allows you to retrieve information about the country names that IT Glue supports. Country IDs can be used to POST new locations.\nSupported countries may be referenced by one or more locations. Each location can have one country, but it's not required." + }, + { + "name": "Documents", + "description": "The Documents resource allows you to manage documents on your account." + }, + { + "name": "Domains", + "description": "A domain refers to a domain name, such as example.com.\nThe Domains resource allows you to manage information about all domains in your account.\nA domain can belong to only one organization." + }, + { + "name": "Organizations", + "description": "An organization refers to a client company.\nThe Organizations resource is used to manage information about organizations in your account.\nKeep in mind that an organization can have one or more sub-organizations, but there is currently no support in the API for assigning a parent to create new sub-organizations. You would need to manually complete this task from your IT Glue account." + }, + { + "name": "Configuration Types", + "description": "A configuration type refers to the type categorization of a configuration, usually a type of device.\nThis resource is used to manage information about configuration types for your account. Configuration type IDs can be used to POST new configurations.\nA configuration type may be referenced by one or more configurations. It's required that each configuration item have one configuration type." + }, + { + "name": "Configuration Interfaces", + "description": "A configuration interface refers to an IP address for a networked device.\nThis resource allows you to manage all IP and MAC addresses associated with the configurations in your account. Configuration interface IDs can be used to POST new configurations.\nA configuration interface can belong to only one configuration and can have only one IP address and one MAC address. Each configuration can have relationships with one or more configuration interfaces, one of which will be a primary interface.\nNote that when a configuration is created or updated with a new primary IP or MAC address, this creates or updates the configuration Interface object. If the primary IP or MAC address in the configuration interface object is updated, this also updates the primary IP or MAC address on the configuration." + }, + { + "name": "Configuration Statuses", + "description": "A configuration status refers to the status that can be maintained on a configuration, for example, active or inactive.\nThis resource is used to manage information about configuration statuses for your account. Configuration status IDs can be used to POST new configurations.\nA configuration status may be referenced by one ore more configurations. Each configuration can have one configuration status, but it's not required." + }, + { + "name": "Contact Types", + "description": "A contact type refers to the type categorization of a contact, for example, an approver or an owner.\nThis resource is used to manage information about contact types for your account. Contact type IDs can be used to POST new contacts.\nA contact type may be referenced by one or more contacts. Each contact can have one contact type, but it's not required." + }, + { + "name": "Organization Types", + "description": "An organization type refers to the type categorization of an organization, for example, customer or vendor.\nThis resource is used to manage information about organization types for your account. Organization type IDs can be used to POST new organizations.\nA organization type may be referenced by one or more organizations. Each organization can have one organization type, but it's not required." + }, + { + "name": "Organization Statuses", + "description": "An organization status refers to the status that can be maintained on an organization, for example, active or inactive.\nThis resource is used to manage information about organization statuses for your account. Organization status IDs can be used to POST new organizations.\nAn organization status may be referenced by one ore more organizations. Each organization can have one organization status, but it's not required." + }, + { + "name": "Flexible Asset Types", + "description": "A flexible asset type refers to a set of custom fields that can be used to generate structured documentation.\nThis resource lets you create and access information about the flexible asset types in your account. Flexible asset type IDs and flexible asset field name-key values can be used to POST new flexible assets.\nThe different flexible asset types let you document different parts of the IT infrastructure. For example, LAN is one flexible asset type, Backup is another, and Email yet another.\nNote that when a flexible asset type is created with a flexible asset field, this creates a flexible asset field object. If the flexible asset field object is updated, this also updates the flexible asset type." + }, + { + "name": "Flexible Asset Fields", + "description": "A flexible asset field refers to a field in a flexible asset type.\nThis resource lets you manage all of the flexible asset fields in your account. The name-key attributes of fields can be used to POST new flexible assets.\nEach flexible asset field has, at most, one immediate parent flexible asset type, and may be created after or at the same time as a new flexible asset type. Note: To avoid POST/PATCH errors, make sure that the name and order attributes are unique. In other words, no two fields with the same parent flexible asset type can have identical values for name or order. It's also required that at least one field has show-in-list set to true.\nTo explore the different fields that are available, refer to our Flexible asset field definitions article." + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/ITGlue/apiProperties.json b/independent-publisher-connectors/ITGlue/apiProperties.json new file mode 100644 index 0000000000..78bb16865d --- /dev/null +++ b/independent-publisher-connectors/ITGlue/apiProperties.json @@ -0,0 +1,59 @@ +{ + "properties": { + "connectionParameters": { + "endpointUrl": { + "type": "string", + "uiDefinition": { + "displayName": "Account Region Url", + "description": "Your ITGlue Account API Url https://api..itglue.com", + "tooltip": "Connector uses au for Australia, eu for Europe. For other region uses api.itglue.com", + "constraints": { + "allowedValues": [ + { + "text": "EU Region", + "value": "https://api.eu.itglue.com" + }, + { + "text": "AU Region", + "value": "https://api.au.itglue.com" + }, + { + "text": "Other Region", + "value": "https://api.itglue.com" + } + ], + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API key", + "description": "The API key for ITGlue api", + "tooltip": "Provide your API key", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "httpEndPointUrl", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('endpointUrl')" + } + } + ], + "publisher": "Nirmal Kumar", + "stackOwner": "ITGlue" + } +} \ No newline at end of file From fd60485b55c2318719425a823264cab5861624a1 Mon Sep 17 00:00:00 2001 From: Ahmad Najjar Date: Thu, 14 Oct 2021 22:35:03 +0200 Subject: [PATCH 057/219] =?UTF-8?q?Br=C3=B8nn=C3=B8ysundregistrene=20(Inde?= =?UTF-8?q?pendent=20Publisher)=20(#1021)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Submitting Brønnøysundregistrene IP Connector * Adding requested changes: - Connector artifacts must be in English language - Valid description - The property called "website" is not allowed in apiProperties.json file * Fixing Schema Errors --- .../apiDefinition.swagger.json" | 1610 +++++++++++++++++ .../apiProperties.json" | 9 + .../readme.md" | 45 + 3 files changed, 1664 insertions(+) create mode 100644 "independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiDefinition.swagger.json" create mode 100644 "independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiProperties.json" create mode 100644 "independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/readme.md" diff --git "a/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiDefinition.swagger.json" "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiDefinition.swagger.json" new file mode 100644 index 0000000000..e602958d89 --- /dev/null +++ "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiDefinition.swagger.json" @@ -0,0 +1,1610 @@ +{ + "swagger": "2.0", + "info": { + "title": "The Brnnysund Registries", + "description": "The Brnnysund registries (Brnnysundregistrene) is a Norwegian state administrative agency consisting of 18 different state electronic registers. The purpose is to create order and simplification for the business community and for the public.", + "version": "1.0", + "contact": { + "name": "Ahmad Najjar", + "email": "ahmadn82@hotmail.com" + } + }, + "host": "data.brreg.no", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/enhetsregisteret/api/enheter": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "enheter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "navn": { + "type": "string", + "description": "navn" + }, + "organisasjonsform": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "organisasjonsform" + }, + "postadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "postadresse" + }, + "registreringsdatoEnhetsregisteret": { + "type": "string", + "description": "registreringsdatoEnhetsregisteret" + }, + "registrertIMvaregisteret": { + "type": "boolean", + "description": "registrertIMvaregisteret" + }, + "naeringskode1": { + "type": "object", + "properties": { + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "kode": { + "type": "string", + "description": "kode" + } + }, + "description": "naeringskode1" + }, + "antallAnsatte": { + "type": "integer", + "format": "int32", + "description": "antallAnsatte" + }, + "forretningsadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "forretningsadresse" + }, + "stiftelsesdato": { + "type": "string", + "description": "stiftelsesdato" + }, + "registrertIForetaksregisteret": { + "type": "boolean", + "description": "registrertIForetaksregisteret" + }, + "registrertIStiftelsesregisteret": { + "type": "boolean", + "description": "registrertIStiftelsesregisteret" + }, + "registrertIFrivillighetsregisteret": { + "type": "boolean", + "description": "registrertIFrivillighetsregisteret" + }, + "konkurs": { + "type": "boolean", + "description": "konkurs" + }, + "underAvvikling": { + "type": "boolean", + "description": "underAvvikling" + }, + "underTvangsavviklingEllerTvangsopplosning": { + "type": "boolean", + "description": "underTvangsavviklingEllerTvangsopplosning" + }, + "maalform": { + "type": "string", + "description": "maalform" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + } + }, + "description": "enheter" + } + }, + "description": "_embedded" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "page": { + "type": "object", + "properties": { + "size": { + "type": "integer", + "format": "int32", + "description": "size" + }, + "totalElements": { + "type": "integer", + "format": "int32", + "description": "totalElements" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "totalPages" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "number" + } + }, + "description": "page" + } + } + } + } + }, + "summary": "Get all or search entities", + "description": "Returns all or search entities registered under https://www.brreg.no/", + "operationId": "GetAll_Search", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "navn", + "in": "query", + "required": false, + "type": "string", + "description": "Name", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + }, + { + "name": "fraRegistreringsdatoEnhetsregisteret", + "in": "query", + "required": false, + "type": "string", + "description": "Registration Date (From). Format: yyyy-MM-dd", + "x-ms-summary": "Registration Date (From)", + "x-ms-visibility": "advanced" + }, + { + "name": "tilRegistreringsdatoEnhetsregisteret", + "in": "query", + "description": "Registration Date (To). Format: yyyy-MM-dd", + "required": false, + "type": "string", + "x-ms-summary": "Registration Date (To)", + "x-ms-visibility": "advanced" + }, + { + "name": "konkurs", + "in": "query", + "required": false, + "type": "boolean", + "enum": [ + true, + false + ], + "x-ms-visibility": "advanced", + "description": "Bankruptcy", + "x-ms-summary": "Bankruptcy" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "description": "sort={field name},{ASC/DESC}", + "x-ms-summary": "Sort By", + "x-ms-visibility": "advanced" + } + ] + } + }, + "/enhetsregisteret/api/enheter/{orgnr}": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "navn": { + "type": "string", + "description": "navn" + }, + "organisasjonsform": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "utgaatt": { + "type": "string", + "description": "utgaatt" + } + }, + "description": "organisasjonsform" + }, + "postadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "postadresse" + }, + "registreringsdatoEnhetsregisteret": { + "type": "string", + "description": "registreringsdatoEnhetsregisteret" + }, + "registrertIMvaregisteret": { + "type": "boolean", + "description": "registrertIMvaregisteret" + }, + "naeringskode1": { + "type": "object", + "properties": { + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "kode": { + "type": "string", + "description": "kode" + } + }, + "description": "naeringskode1" + }, + "antallAnsatte": { + "type": "integer", + "format": "int32", + "description": "antallAnsatte" + }, + "forretningsadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "forretningsadresse" + }, + "stiftelsesdato": { + "type": "string", + "description": "stiftelsesdato" + }, + "registrertIForetaksregisteret": { + "type": "boolean", + "description": "registrertIForetaksregisteret" + }, + "registrertIStiftelsesregisteret": { + "type": "boolean", + "description": "registrertIStiftelsesregisteret" + }, + "registrertIFrivillighetsregisteret": { + "type": "boolean", + "description": "registrertIFrivillighetsregisteret" + }, + "konkurs": { + "type": "boolean", + "description": "konkurs" + }, + "underAvvikling": { + "type": "boolean", + "description": "underAvvikling" + }, + "underTvangsavviklingEllerTvangsopplosning": { + "type": "boolean", + "description": "underTvangsavviklingEllerTvangsopplosning" + }, + "maalform": { + "type": "string", + "description": "maalform" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "slettedato": { + "type": "string", + "description": "slettedato" + } + } + } + } + }, + "summary": "Get entity by organization number", + "description": "Returns a single entity by organization number (Existing or Deleted)", + "operationId": "GetByOrganizationNumber", + "parameters": [ + { + "name": "orgnr", + "in": "path", + "required": true, + "type": "string", + "description": "Entity organization number", + "x-ms-summary": "Organization Number", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "important" + } + }, + "/enhetsregisteret/api/enheter/{orgnr}/roller": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "rollegrupper": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "type" + }, + "sistEndret": { + "type": "string", + "description": "sistEndret" + }, + "roller": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "type" + }, + "person": { + "type": "object", + "properties": { + "fodselsdato": { + "type": "string", + "description": "fodselsdato" + }, + "navn": { + "type": "object", + "properties": { + "fornavn": { + "type": "string", + "description": "fornavn" + }, + "etternavn": { + "type": "string", + "description": "etternavn" + } + }, + "description": "navn" + }, + "erDoed": { + "type": "boolean", + "description": "erDoed" + }, + "verge": { + "type": "object", + "properties": { + "fodselsdato": { + "type": "string", + "description": "fodselsdato" + }, + "navn": { + "type": "object", + "properties": { + "fornavn": { + "type": "string", + "description": "fornavn" + }, + "mellomnavn": { + "type": "string", + "description": "mellomnavn" + }, + "etternavn": { + "type": "string", + "description": "etternavn" + } + }, + "description": "navn" + }, + "erDoed": { + "type": "boolean", + "description": "erDoed" + } + }, + "description": "verge" + } + }, + "description": "person" + }, + "enhet": { + "type": "object", + "properties": { + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "organisasjonsform": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "organisasjonsform" + }, + "navn": { + "type": "array", + "items": { + "type": "string" + }, + "description": "navn" + }, + "erSlettet": { + "type": "boolean", + "description": "erSlettet" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "enhet" + }, + "fullmektige": { + "type": "array", + "items": { + "type": "object", + "properties": { + "navn": { + "type": "string", + "description": "navn" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + } + } + }, + "description": "fullmektige" + }, + "ansvarsandel": { + "type": "string", + "description": "ansvarsandel" + }, + "valgtAv": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "valgtAv" + }, + "fratraadt": { + "type": "boolean", + "description": "fratraadt" + }, + "rekkefolge": { + "type": "integer", + "format": "int32", + "description": "rekkefolge" + } + } + }, + "description": "roller" + } + } + }, + "description": "rollegrupper" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + }, + "enhet": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "enhet" + } + }, + "description": "_links" + } + } + } + } + }, + "summary": "Get entity roles", + "description": "Returns all roles for a specific entity", + "operationId": "GetEntityRoles", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "orgnr", + "in": "path", + "required": true, + "type": "string", + "description": "Entity organization number", + "x-ms-summary": "Organization Number", + "x-ms-visibility": "important" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal", + "description": "Accept header", + "x-ms-summary": "Accept" + } + ] + } + }, + "/enhetsregisteret/api/underenheter": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "underenheter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "navn": { + "type": "string", + "description": "navn" + }, + "organisasjonsform": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "organisasjonsform" + }, + "registreringsdatoEnhetsregisteret": { + "type": "string", + "description": "registreringsdatoEnhetsregisteret" + }, + "registrertIMvaregisteret": { + "type": "boolean", + "description": "registrertIMvaregisteret" + }, + "naeringskode1": { + "type": "object", + "properties": { + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "kode": { + "type": "string", + "description": "kode" + } + }, + "description": "naeringskode1" + }, + "antallAnsatte": { + "type": "integer", + "format": "int32", + "description": "antallAnsatte" + }, + "overordnetEnhet": { + "type": "string", + "description": "overordnetEnhet" + }, + "beliggenhetsadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "beliggenhetsadresse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + }, + "overordnetEnhet": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "overordnetEnhet" + } + }, + "description": "_links" + }, + "oppstartsdato": { + "type": "string", + "description": "oppstartsdato" + } + } + }, + "description": "underenheter" + } + }, + "description": "_embedded" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "page": { + "type": "object", + "properties": { + "size": { + "type": "integer", + "format": "int32", + "description": "size" + }, + "totalElements": { + "type": "integer", + "format": "int32", + "description": "totalElements" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "totalPages" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "number" + } + }, + "description": "page" + } + } + } + } + }, + "summary": "Get all or search sub entities", + "description": "Returns all or search sub entities registered under https://www.brreg.no/", + "operationId": "GetAll_SearchSub", + "parameters": [ + { + "name": "navn", + "in": "query", + "required": false, + "type": "string", + "x-ms-visibility": "important", + "description": "Sub entity name", + "x-ms-summary": "Name" + }, + { + "name": "sort", + "in": "query", + "required": false, + "type": "string", + "description": "sort={field name},{ASC/DESC}", + "x-ms-summary": "Sort By", + "x-ms-visibility": "advanced" + } + ], + "x-ms-visibility": "advanced" + } + }, + "/enhetsregisteret/api/underenheter/{orgnr}": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "navn": { + "type": "string", + "description": "navn" + }, + "organisasjonsform": { + "type": "object", + "properties": { + "kode": { + "type": "string", + "description": "kode" + }, + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + } + }, + "description": "organisasjonsform" + }, + "postadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "postadresse" + }, + "registreringsdatoEnhetsregisteret": { + "type": "string", + "description": "registreringsdatoEnhetsregisteret" + }, + "registrertIMvaregisteret": { + "type": "boolean", + "description": "registrertIMvaregisteret" + }, + "naeringskode1": { + "type": "object", + "properties": { + "beskrivelse": { + "type": "string", + "description": "beskrivelse" + }, + "kode": { + "type": "string", + "description": "kode" + } + }, + "description": "naeringskode1" + }, + "antallAnsatte": { + "type": "integer", + "format": "int32", + "description": "antallAnsatte" + }, + "overordnetEnhet": { + "type": "string", + "description": "overordnetEnhet" + }, + "beliggenhetsadresse": { + "type": "object", + "properties": { + "land": { + "type": "string", + "description": "land" + }, + "landkode": { + "type": "string", + "description": "landkode" + }, + "postnummer": { + "type": "string", + "description": "postnummer" + }, + "poststed": { + "type": "string", + "description": "poststed" + }, + "adresse": { + "type": "array", + "items": { + "type": "string" + }, + "description": "adresse" + }, + "kommune": { + "type": "string", + "description": "kommune" + }, + "kommunenummer": { + "type": "string", + "description": "kommunenummer" + } + }, + "description": "beliggenhetsadresse" + }, + "slettedato": { + "type": "string", + "description": "slettedato" + }, + "nedleggelsesdato": { + "type": "string", + "description": "nedleggelsesdato" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + }, + "overordnetEnhet": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "overordnetEnhet" + } + }, + "description": "_links" + } + } + } + } + }, + "summary": "Get sub entity by organization number", + "description": "Returns a single sub entity by organization number (Existing or Deleted)", + "operationId": "GetSubByOrganizationNumber", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "orgnr", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "description": "Sub entity organization number", + "x-ms-summary": "Organization number" + } + ] + } + }, + "/enhetsregisteret/api/oppdateringer/enheter": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "oppdaterteEnheter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "oppdateringsid": { + "type": "integer", + "format": "int32", + "description": "oppdateringsid" + }, + "dato": { + "type": "string", + "description": "dato" + }, + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "endringstype": { + "type": "string", + "description": "endringstype" + }, + "_links": { + "type": "object", + "properties": { + "enhet": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "enhet" + } + }, + "description": "_links" + } + } + }, + "description": "oppdaterteEnheter" + } + }, + "description": "_embedded" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "page": { + "type": "object", + "properties": { + "size": { + "type": "integer", + "format": "int32", + "description": "size" + }, + "totalElements": { + "type": "integer", + "format": "int32", + "description": "totalElements" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "totalPages" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "number" + } + }, + "description": "page" + } + } + } + } + }, + "summary": "Get entities updates", + "operationId": "GetEntitiesUpdates", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "dato", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Date", + "description": "Updates after given date (format: 2010-01-03T00:00:00.000Z)", + "x-ms-visibility": "advanced" + }, + { + "name": "oppdateringsid", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-visibility": "advanced", + "description": "Update ID", + "x-ms-summary": "Update ID" + } + ], + "description": "Search for recently updated entities in the registry" + } + }, + "/enhetsregisteret/api/oppdateringer/underenheter": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "_embedded": { + "type": "object", + "properties": { + "oppdaterteUnderenheter": { + "type": "array", + "items": { + "type": "object", + "properties": { + "oppdateringsid": { + "type": "integer", + "format": "int32", + "description": "oppdateringsid" + }, + "dato": { + "type": "string", + "description": "dato" + }, + "organisasjonsnummer": { + "type": "string", + "description": "organisasjonsnummer" + }, + "endringstype": { + "type": "string", + "description": "endringstype" + }, + "_links": { + "type": "object", + "properties": { + "underenhet": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "underenhet" + } + }, + "description": "_links" + } + } + }, + "description": "oppdaterteUnderenheter" + } + }, + "description": "_embedded" + }, + "_links": { + "type": "object", + "properties": { + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "href" + } + }, + "description": "self" + } + }, + "description": "_links" + }, + "page": { + "type": "object", + "properties": { + "size": { + "type": "integer", + "format": "int32", + "description": "size" + }, + "totalElements": { + "type": "integer", + "format": "int32", + "description": "totalElements" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "totalPages" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "number" + } + }, + "description": "page" + } + } + } + } + }, + "summary": "Get sub entities updates", + "operationId": "GetSubEntitiesUpdates", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "dato", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Date", + "description": "Updates after given date (format: 2010-01-03T00:00:00.000Z)", + "x-ms-visibility": "advanced" + }, + { + "name": "oppdateringsid", + "in": "query", + "required": false, + "type": "integer", + "format": "int32", + "x-ms-visibility": "advanced", + "description": "Update ID", + "x-ms-summary": "Update ID" + } + ], + "description": "Search for recently updated sub entities in the registry" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.brreg.no/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.brreg.no/personvernerklaering/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git "a/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiProperties.json" "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiProperties.json" new file mode 100644 index 0000000000..8fb53d8d63 --- /dev/null +++ "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/apiProperties.json" @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#0B576F", + "capabilities": [], + "publisher": "Ahmad Najjar", + "stackOwner": "Brnnysundregistrene (Brnnysund registries)" + } +} \ No newline at end of file diff --git "a/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/readme.md" "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/readme.md" new file mode 100644 index 0000000000..454b9a0f73 --- /dev/null +++ "b/independent-publisher-connectors/Br\303\270nn\303\270ysundregistrene/readme.md" @@ -0,0 +1,45 @@ +# Brnnysundregistrene +Brnnysundregistrene is a state administrative agency consisting of 18 different state electronic registers. +The purpose is to create order and simplification for the business community and for the public. + +## Publisher +### Ahmad Najjar + +## Prerequisites +No prerequisites are needed. The data provided by Brnnysundregistrene is totally free. + +## Supported Operations +### [Get all or Search entities](https://data.brreg.no/enhetsregisteret/api/docs/index.html#enheter-sok) +Returns all or search entities by name, registration date and/or bankruptcy. Results can be sorted. + +### [Get entity by organization number](https://data.brreg.no/enhetsregisteret/api/docs/index.html#enheter-oppslag) +Returns a single entity by organization number (Existing or Deleted) + +### [Get entity roles](https://data.brreg.no/enhetsregisteret/api/docs/index.html#_roller) +Returns all roles for a specific entity by organization number + +### [Get all or search sub entities](https://data.brreg.no/enhetsregisteret/api/docs/index.html#underenheter-sok) +Returns all or search sub entities by name. Results can be sorted. + +### [Get sub entity by organization number](https://data.brreg.no/enhetsregisteret/api/docs/index.html#underenheter-oppslag) +Returns a single sub entity by organization number (Existing or Deleted) + +### [Get entities updates](https://data.brreg.no/enhetsregisteret/api/docs/index.html#oppdaterte-enheter) +Search for recently updated entities by date or/and update id in the registry. + +### [Get sub entities updates](https://data.brreg.no/enhetsregisteret/api/docs/index.html#oppdaterte-underenheter) +Search for recently updated sub entities by date or/and update id in the registry. + +## API Documentation +Visit Brnnysundregistrene [Open data - Entities Registry](https://data.brreg.no/enhetsregisteret/api/docs/index.html) documentation page for further details. + +## Known Issues and Limitations +Some operations returns HTTP 400 error if no data is found: (Most likely wrong organization number) +* Get entity by organization number +* Get sub entity by organization number +* Get entity roles + +## Deployment Instructions +Import the swagger file in target Power Automate or Power Apps environment. + +#### Not all operations provided by Brnnysundregistrene are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) \ No newline at end of file From 4a61a60b5aef19d862c68dcc17a2468d56a03e21 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 14 Oct 2021 16:37:23 -0400 Subject: [PATCH 058/219] Secure Code Warrior (Independent Publisher) v1.1 (#1087) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Add files via upload * Pull request fixes * Remove resourseID * Remove resourceID * Missing ']' * Bump version 1.1 * Update publisher --- .../Secure Code Warrior/apiDefinition.swagger.json | 4 ++-- .../Secure Code Warrior/apiProperties.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/independent-publisher-connectors/Secure Code Warrior/apiDefinition.swagger.json b/independent-publisher-connectors/Secure Code Warrior/apiDefinition.swagger.json index 48778bee5f..3f96a9790d 100644 --- a/independent-publisher-connectors/Secure Code Warrior/apiDefinition.swagger.json +++ b/independent-publisher-connectors/Secure Code Warrior/apiDefinition.swagger.json @@ -1,7 +1,7 @@ { "swagger": "2.0", "info": { - "version": "1.0", + "version": "1.1", "title": "Secure Code Warrior", "description": "This Secure Code Warrior(https://securecodewarrior.com) connector provides programmatic access to the learning platform. Secure Code Warrior makes secure coding a positive and engaging experience for developers as they increase their software security skills. With our flagship Learning Platform, we guide each coder along their own preferred learning pathway, so that security-skilled developers become the everyday superheroes of our connected world.", "contact": { @@ -5899,7 +5899,7 @@ "x-ms-summary": "Fields", "name": "fields", "type": "string", - "default": "[email,role,name,status,tags,team.name,preferredDevLanguages,invite-date,last-login-date", + "default": "[email,role,name,status,tags,team.name,preferredDevLanguages,invite-date,last-login-date]", "items": { "type": "string", "enum": [ diff --git a/independent-publisher-connectors/Secure Code Warrior/apiProperties.json b/independent-publisher-connectors/Secure Code Warrior/apiProperties.json index 39934aaadc..acdf246bd1 100644 --- a/independent-publisher-connectors/Secure Code Warrior/apiProperties.json +++ b/independent-publisher-connectors/Secure Code Warrior/apiProperties.json @@ -17,7 +17,7 @@ }, "iconBrandColor": "#F79200", "capabilities": [], - "publisher": "Hitachi Solutions", + "publisher": "Troy Taylor, Hitachi Solutions", "stackOwner": "Secure Code Warrior" } -} \ No newline at end of file +} From a8fad31fad18429c9816dc5143924a9cb8e5bece Mon Sep 17 00:00:00 2001 From: tposzytek <50657947+tposzytek@users.noreply.github.com> Date: Thu, 14 Oct 2021 22:39:00 +0200 Subject: [PATCH 059/219] myStrom (Independent Publisher) (#1158) * myStrom (Independent Publisher) * myStrom (Independent Publisher) --- .../myStrom/apiDefinition.swagger.json | 689 ++++++++++++++++++ .../myStrom/apiProperties.json | 9 + .../myStrom/readme.md | 63 ++ 3 files changed, 761 insertions(+) create mode 100644 independent-publisher-connectors/myStrom/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/myStrom/apiProperties.json create mode 100644 independent-publisher-connectors/myStrom/readme.md diff --git a/independent-publisher-connectors/myStrom/apiDefinition.swagger.json b/independent-publisher-connectors/myStrom/apiDefinition.swagger.json new file mode 100644 index 0000000000..071bb8e66f --- /dev/null +++ b/independent-publisher-connectors/myStrom/apiDefinition.swagger.json @@ -0,0 +1,689 @@ +{ + "swagger": "2.0", + "info": { + "title": "myStrom", + "description": "myStrom is a Swiss company producing smart home devices. With this connector it is possible to control myStrom devices over the REST API.", + "version": "1.0", + "contact": { + "name": "Tomasz Poszytek", + "url": "https://aka.ms/poszytek", + "email": "tomasz@poszytek.eu" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://mystrom.ch/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://mystrom.ch/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Internet of Things;Lifestyle and Entertainment" + } + ], + "host": "mystrom.ch", + "basePath": "/api/v2/", + "schemes": [ + "https" + ], + "consumes": ["application/json"], + "produces": ["application/json"], + "paths": { + "/auth": { + "get": { + "responses": { + "200": { + "description": "Correct response", + "schema": { + "type": "object", + "properties": { + "authToken": { + "type": "string", + "description": "Token to be used to authenticate other requests.", + "title": "Authentication token" + } + } + } + }, + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Authentication", + "description": "Obtain authToken by providing your e-mail and password.", + "operationId": "Auth", + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string", + "description": "myStrom account e-mail", + "x-ms-summary": "E-mail", + "x-ms-visibility": "important" + }, + { + "name": "password", + "in": "query", + "required": true, + "type": "string", + "description": "myStrom account password", + "x-ms-summary": "Password", + "format": "password", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "important" + } + }, + "/devices": { + "get": { + "responses": { + "200": { + "description": "Correct response", + "schema": { + "type": "object", + "properties": { + "devices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Device ID" + }, + "name": { + "type": "string", + "title": "Name" + }, + "power": { + "type": "number", + "description": "Current power consumption (W).", + "title": "Power", + "format": "float" + }, + "type": { + "type": "string", + "description": "Device's type.", + "title": "Type" + }, + "state": { + "type": "string", + "description": "ON or OFF.", + "title": "State" + }, + "color": { + "type": "string", + "description": "In HSV format.", + "title": "Color" + }, + "temperature": { + "type": "number", + "description": "Current temperature (C).", + "title": "Temperature", + "format": "float" + }, + "brightness": { + "type": "integer", + "title": "Brightness", + "format": "int32" + } + } + }, + "description": "devices" + } + } + } + }, + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Get devices", + "description": "Get list of all user's devices", + "operationId": "GetDevices", + "parameters": [ + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ] + } + }, + "/device/{Device ID}": { + "get": { + "responses": { + "200": { + "description": "Correct response", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Device ID" + }, + "name": { + "type": "string", + "title": "Name" + }, + "power": { + "type": "number", + "description": "Current power consumption (W).", + "title": "Power", + "format": "float" + }, + "type": { + "type": "string", + "description": "Device's type.", + "title": "Type" + }, + "state": { + "type": "string", + "description": "ON or OFF.", + "title": "State" + }, + "color": { + "type": "string", + "description": "In HSV format.", + "title": "Color" + }, + "temperature": { + "type": "number", + "description": "Current temperature (C).", + "title": "Temperature", + "format": "float" + }, + "brightness": { + "type": "integer", + "title": "Brightness", + "format": "int32" + } + } + } + }, + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Get device", + "description": "Get device by ID", + "operationId": "GetDevice", + "parameters": [ + { + "name": "Device ID", + "in": "path", + "required": true, + "type": "string", + "description": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "Correct response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + }, + "color": { + "type": "string", + "description": "Current color in HSV format.", + "title": "Color" + } + } + } + }, + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Toggle device", + "description": "Device toggle request is used to change state of a device and set its parameters", + "operationId": "ToggleDevice", + "parameters": [ + { + "name": "Device ID", + "in": "path", + "required": true, + "type": "string", + "description": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "color", + "in": "query", + "required": false, + "type": "string", + "description": "The color we set the bulb to. HSV is of form ;;", + "x-ms-summary": "Color", + "x-ms-visibility": "advanced" + }, + { + "name": "ramp", + "in": "query", + "required": false, + "type": "integer", + "description": "Transition time from the light's current state to the new state. [ms]", + "x-ms-summary": "Ramp", + "x-ms-visibility": "advanced" + }, + { + "name": "value", + "in": "query", + "required": false, + "type": "integer", + "description": "Dim value for devices that support dim action", + "x-ms-summary": "Dim Value", + "x-ms-visibility": "advanced" + }, + { + "name": "action", + "in": "query", + "required": true, + "type": "string", + "default": "on", + "description": "Switch action", + "x-ms-summary": "Action", + "enum": [ + "on", + "off", + "toggle", + "dim" + ] + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ] + } + }, + "/scenes": { + "get": { + "responses": { + "200": { + "description": "Correct response", + "schema": { + "type": "object", + "properties": { + "scenes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "Scene ID" + }, + "name": { + "type": "string", + "title": "Name" + } + } + }, + "description": "scenes" + } + } + } + }, + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Get scenes", + "description": "Get list of all user's scenes", + "operationId": "GetScenes", + "parameters": [ + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "advanced" + } + }, + "/scene/{Scene ID}": { + "get": { + "responses": { + "200": { + "description": "Response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Execute scene", + "description": "Execute scene by ID", + "operationId": "ExecuteScene", + "parameters": [ + { + "name": "Scene ID", + "in": "path", + "required": true, + "type": "string", + "description": "Scene ID", + "x-ms-summary": "Scene ID", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "advanced" + } + }, + "/webhook/{Device ID}": { + "get": { + "responses": { + "400": { + "description": "Error response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Get webhook", + "description": "Get webhook by device ID", + "operationId": "GetWebhook", + "parameters": [ + { + "name": "Device ID", + "in": "path", + "required": true, + "type": "string", + "description": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "advanced" + }, + "delete": { + "responses": { + "200": { + "description": "Response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Delete webhook", + "description": "Delete webhook by device ID", + "operationId": "DeleteWebhook", + "parameters": [ + { + "name": "Device ID", + "in": "path", + "required": true, + "type": "string", + "description": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + } + ], + "x-ms-visibility": "advanced" + }, + "post": { + "responses": { + "200": { + "description": "Response", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "title": "Code" + }, + "message": { + "type": "string", + "title": "Message" + } + } + } + } + }, + "summary": "Create webhook", + "description": "Create webhook", + "operationId": "CreateWebhook", + "parameters": [ + { + "name": "Device ID", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "description": "Device ID", + "x-ms-summary": "Device ID", + "x-ms-url-encoding": "single" + }, + { + "name": "webhook", + "in": "query", + "required": true, + "type": "string", + "description": "Webhook Definition, sample: {\"url\":\"http://example.com\",\"config\":{\"state\": true,\"power\":true}}", + "x-ms-summary": "Webhook Definition" + }, + { + "name": "authToken", + "in": "query", + "required": true, + "type": "string", + "description": "Authentication Token", + "x-ms-summary": "Authentication Token", + "format": "password", + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-summary": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": {}, + "x-ms-visibility": "advanced" + }, + "x-ms-visibility": "advanced" + } + ], + "x-ms-visibility": "advanced" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} \ No newline at end of file diff --git a/independent-publisher-connectors/myStrom/apiProperties.json b/independent-publisher-connectors/myStrom/apiProperties.json new file mode 100644 index 0000000000..31347f7d9d --- /dev/null +++ b/independent-publisher-connectors/myStrom/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Tomasz Poszytek", + "stackOwner": "mystrom.ch" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/myStrom/readme.md b/independent-publisher-connectors/myStrom/readme.md new file mode 100644 index 0000000000..848126cc91 --- /dev/null +++ b/independent-publisher-connectors/myStrom/readme.md @@ -0,0 +1,63 @@ +# myStrom + +myStrom is a Swiss company producing smart home devices. Company produces smart bulbs, led strips, switches and controllers. + +## Publisher: Tomasz Poszytek + +## Prerequisites + +You have to create an account at myStrom. You can sign up for free [here](https://mystrom.ch/cockpit/en/). Also it is good to install myStrom app ([Google Play](https://play.google.com/store/apps/details?id=com.cogniance.asoka.srs.android), [App Store](https://apps.apple.com/en/app/mystrom-mobile/id546326128)), for extended control of devices and scenes creation. + +## Supported Operations + +### Authentication + +Obtain authentication token by providing your login and password. Authentication token is required by all other requests. + +### Get devices + +Get list of all user's registered devices. + +### Get device + +Get details of the specific user's device by providing its Device ID. + +### Toggle device + +Change user's device state, like turn it on, off, toggle, change color, dim or ramp values. + +### Get scenes + +Get list of all user's scenes. + +### Execute scene + +Execute scene by ID. This will trigger all actions defined for the scene. + +### Create webhook + +Create webhook for a device. + +### Get webhook + +Get webhook defined for a device. + +### Delete webhook + +Delete device's webhook. + +## Obtaining Credentials + +To get authentication token you need to execute action **Authenticate** providing your e-mail and password used to create your myStrom account. The authentication token is permanent for each account, therefore once you obtain it, you can save it in eg. Azure Key Vault and then provide to other actions from the service. + +## Known Issues and Limitations + +Colors' values that can be provided to the **Toggle device** action must be formatted using **HSV** model eg. 0;100;100 (for red). No other issues and limitations are known at this time. + +## Getting Started + +You can visit [myStrom REST API v2](https://mystrom.ch/api/v2/) to test endpoints yourself. + +## Disclaimer + +myStrom documentation for the endpoints is rather laconic, therefore despite the fact some endpoints offer more parameters, I was not able to find out what data should be provided to make them work. Also when I was testing them with my own devices, especially smart wifi bulb, I didn't observe any reactions, thus decided to add only those methods and parameters that actually did work. \ No newline at end of file From 6911dae0ffc7a7b3b170afa8c8dcc010acba0bd1 Mon Sep 17 00:00:00 2001 From: FlowJoe Date: Thu, 14 Oct 2021 13:41:05 -0700 Subject: [PATCH 060/219] Dexcom (Independent Publisher) (#1142) * Initial Commit Added Dexcom Connector Readme, apiProperties, apiDefinition * Added new line to end of files added new line to end of files * Updated README Updated README to include creating an App on Dexcom Oauth * Updated swagger file due to errors Updated swagger file: Change default to 200 Moved contact within Info Added missing , Added missing x-ms-summary's after upload * Change Requests Changed tabbed to spaces Removed additional spacing Added correct icon brand colour --- .../Dexcom/README.md | 43 ++++++ .../Dexcom/apiDefinition.swagger.json | 145 ++++++++++++++++++ .../Dexcom/apiProperties.json | 37 +++++ 3 files changed, 225 insertions(+) create mode 100644 independent-publisher-connectors/Dexcom/README.md create mode 100644 independent-publisher-connectors/Dexcom/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Dexcom/apiProperties.json diff --git a/independent-publisher-connectors/Dexcom/README.md b/independent-publisher-connectors/Dexcom/README.md new file mode 100644 index 0000000000..7e13e6af81 --- /dev/null +++ b/independent-publisher-connectors/Dexcom/README.md @@ -0,0 +1,43 @@ +# Dexcom Community Connector +The Dexcom Community Connector enables the retrieval of a user's estimated glucose value (EGV) data, bringing the ability to monitor and share a Diabetic's glucose levels. You can find out more about the [Dexcom Developer API](https://developer.dexcom.com/overview) directly on their website. + + +## Pre-requisites +To use this connector, you need the following +1. A Microsoft Power Apps or Power Automate plan with custom connector feature +2. A Dexcom Developer account +3. An App created on your account +4. The Client ID and Client Secret from your App on your Dexcom account +5. Ensure that you have clicked ['Apply for Upgrade'](https://developer.dexcom.com/user/me/apps) on your Dexcom App Account to use production data. + +## Obtaining Credentials + +To obtain the credentials you need to firstly create an app on the [Dexcom Developer API](https://developer.dexcom.com/overview) website. + +1. Open the ['My Apps'](https://developer.dexcom.com/user/me/apps) page +2. Click 'Add an App' +3. Provide a name for your App +4. Click Create +5. Add a redirect URL of: https://global.consent.azure-apim.net/redirect +6. Click 'Save' + +Your authentication credentials are now listed under 'Authentication'. + +## API documentation +[Dexcom Rest API Documentation](https://developer.dexcom.com/overview) + +## Supported Operations +The connector supports the following operations: +* [EGVS](https://developer.dexcom.com/get-egvs) + - The /egvs endpoint enables retrieval of a user's estimated glucose value (EGV) data, including trend and status information. + + +## Known Issues and Limitations + +Full Access is not required for apps to access production data. All Limited Access apps can have up to 20 authorized users, thus enabling Registered Developers to test their prototype apps with multiple users without going through the upgrade process. This data access still requires user authentication and HIPAA authorization via the OAuth 2.0 process, which is described in the [Authentication](https://developer.dexcom.com/authentication) section of the Dexcom API site. + +## Frequently Asked Questions + +### Does Dexcom provide a test environment for analyzing returned results from an API call? + +Dexcom provides a sandbox API environment which you can make API requests to. To access this you can change the endpoint, security values as well as the action calls to https://sandbox-api.dexcom.com. If you would like to change back to the production endpoint you will need to change to https://api.dexcom.com. diff --git a/independent-publisher-connectors/Dexcom/apiDefinition.swagger.json b/independent-publisher-connectors/Dexcom/apiDefinition.swagger.json new file mode 100644 index 0000000000..c454745237 --- /dev/null +++ b/independent-publisher-connectors/Dexcom/apiDefinition.swagger.json @@ -0,0 +1,145 @@ +{ + "swagger": "2.0", + "info": { + "title": "Dexcom", + "description": "This connector is used to retrieve Estimated Glucose Values (EGV) from the Dexcom Diabetes Continuous Glucose Monitor website.", + "version": "1.0", + "contact": { + "name": "Joe Unwin", + "url": "https://www.flowjoe.io", + "email": "flow_joe@outlook.com" + } + }, + "host": "api.dexcom.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/v2/users/self/egvs": { + "get": { + "responses": { + "200": { + "description": "Returned if the information sent is correct and a response is returned.", + "schema": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "description": "unit" + }, + "rateUnit": { + "type": "string", + "description": "rateUnit" + }, + "egvs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "systemTime": { + "type": "string", + "description": "Time according to the system clock at which observation was made; nominally UTC" + }, + "displayTime": { + "type": "string", + "description": "Time displayed on the receiving device when the observation was made" + }, + "value": { + "type": "integer", + "format": "int32", + "description": "Estimated glucose value" + }, + "realtimeValue": { + "type": "integer", + "format": "int32", + "description": "Estimated glucose value presented on receiving device in realtime" + }, + "smoothedValue": { + "type": "string", + "description": "Estimated glucose value presented retrospectively on receiving device after smoothing; G6 devices only" + }, + "status": { + "type": "string", + "description": "Explanation of EGV record; used when the value field is outside the measuring range" + }, + "trend": { + "type": "string", + "description": "General trend of EGV value movement; corresponds to trendRate field" + }, + "trendRate": { + "type": "number", + "format": "float", + "description": "Rate at which glucose value is moving up or down" + } + } + }, + "description": "The /egvs endpoint enables retrieval of a user's estimated glucose value (EGV) data, including trend and status information." + } + } + } + } + }, + "summary": "Get EGVs", + "operationId": "Get-EGVs", + "description": "Estimated Glucose Value (EGV) Request from Dexcom", + "parameters": [ + { + "name": "startDate", + "in": "query", + "required": false, + "type": "string", + "description": "The start date that will be used to for the Estimated Glucose Value (EGV) readings.", + "x-ms-summary": "startDate" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "The end date that will be used to for the Estimated Glucose Value (EGV) readings. This has a maximum of 90 days.", + "x-ms-summary": "endDate" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://api.dexcom.com.dexcom.com/v2/oauth2/login", + "tokenUrl": "https://api.dexcom.com/v2/oauth2/token", + "scopes": { + "offline_access": "offline_access" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "offline_access" + ] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.dexcom.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.dexcom.com/linked/documentservice/PrivacyPolicy" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Lifestyle and Entertainment" + } + ] +} diff --git a/independent-publisher-connectors/Dexcom/apiProperties.json b/independent-publisher-connectors/Dexcom/apiProperties.json new file mode 100644 index 0000000000..ea7357efbe --- /dev/null +++ b/independent-publisher-connectors/Dexcom/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[YOUR_VALUE]", + "scopes": [ + "offline_access" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://api.dexcom.com/v2/oauth2/login" + }, + "tokenUrl": { + "value": "https://api.dexcom.com/v2/oauth2/token" + }, + "refreshUrl": { + "value": "https://api.dexcom.com/v2/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "FlowJoe", + "stackOwner": "Dexcom" + } +} From e66201fc5d9bd74d1aa03d7cf6ed34bf3d8ea65d Mon Sep 17 00:00:00 2001 From: Nm-jens <68378054+Nm-jens@users.noreply.github.com> Date: Fri, 15 Oct 2021 00:49:06 +0200 Subject: [PATCH 061/219] Fixed connection renamed hosting URL to host ID (#1182) * Staffbase Connector * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Staffbase Connector * - Move common code to definitions - Fixed descriptions - Several minor fixes * Fixed spelling Error * Fixed description for /posts query parameter * Moved connector from custom-connectors into certified connectors * Fixed missing description * Fixed icon brand color * Fixed: - OperationID for delete Users - Definition for Post news into channel * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Added missing README.md Fixed: - Unicode characters - German wording translated * Fixed apiProperties.json Unicode problems * Fixed Background Color * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json * Fixed connection renamed hosting URL to host Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- certified-connectors/Staffbase/apiProperties.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/certified-connectors/Staffbase/apiProperties.json b/certified-connectors/Staffbase/apiProperties.json index c28783e2e8..0511670bc3 100644 --- a/certified-connectors/Staffbase/apiProperties.json +++ b/certified-connectors/Staffbase/apiProperties.json @@ -14,15 +14,15 @@ } } }, - "hostingURL": { + "hostID": { "type": "string", "uiDefinition": { "constraints": { "required": "true" }, - "description": "Specify your hosting url: hostingURL", - "displayName": "Hosting URL", - "tooltip": "Provide hosting URL here" + "description": "Specify your hosting ID: hostID", + "displayName": "Host ID", + "tooltip": "Provide hosting ID here" } } }, @@ -33,7 +33,7 @@ "templateId": "dynamichosturl", "title": "Route to keyvault", "parameters": { - "x-ms-apimTemplateParameter.urlTemplate": "https://powerautomateproxy-@connectionParameters('hostingURL').staffbase.com" + "x-ms-apimTemplateParameter.urlTemplate": "https://powerautomateproxy-@connectionParameters('hostID').staffbase.com" } } ], From 736caf2dfa9a7e8d73144ee27619be482e340a84 Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Fri, 15 Oct 2021 01:51:18 +0300 Subject: [PATCH 062/219] Initial version of Spring Global connector (#1183) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * Initial version of Spring Global connector * Code improvements * Initial version of Spring Global connector (with improvements according to code review) Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../Spring Global/apiDefinition.swagger.json | 520 ++++++++++++++++++ .../Spring Global/apiProperties.json | 36 ++ certified-connectors/Spring Global/readme.md | 29 + certified-connectors/Spring Global/script.csx | 192 +++++++ 4 files changed, 777 insertions(+) create mode 100644 certified-connectors/Spring Global/apiDefinition.swagger.json create mode 100644 certified-connectors/Spring Global/apiProperties.json create mode 100644 certified-connectors/Spring Global/readme.md create mode 100644 certified-connectors/Spring Global/script.csx diff --git a/certified-connectors/Spring Global/apiDefinition.swagger.json b/certified-connectors/Spring Global/apiDefinition.swagger.json new file mode 100644 index 0000000000..573ee40f42 --- /dev/null +++ b/certified-connectors/Spring Global/apiDefinition.swagger.json @@ -0,0 +1,520 @@ +{ + "swagger": "2.0", + "info": { + "title": "Spring Global", + "description": "The connector contains a trigger to handle surver execution events and methods get relevant information about survey execution and users", + "version": "1.0", + "contact": { + "name": "Spring Global Team", + "url": "https://www.springglobal.com/contact-us", + "email": "sustaining.br@springglobal.com" + } + }, + "host": "sg.azurewebsites.net", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/survey-service/execution/{executionId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetSurveyPublicationSchema", + "parameters": { + "publicationIdValue": { + "parameter": "publicationId" + } + }, + "value-path": "schemaDefinition" + }, + "x-ms-dynamic-properties": { + "operationId": "GetSurveyPublicationSchema", + "parameters": { + "publicationIdValue": { + "parameterReference": "publicationId" + } + }, + "itemValuePath": "schemaDefinition" + } + } + } + }, + "summary": "Get Survey Execution Data", + "description": "Get Survey Execution Data", + "operationId": "GetExecutionById", + "parameters": [ + { + "name": "executionId", + "in": "path", + "required": true, + "type": "string", + "description": "Execution Id (unique identifier)", + "x-ms-summary": "Execution Id", + "x-ms-url-encoding": "single" + }, + { + "name": "surveyId", + "in": "header", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-path": "id", + "value-title": "name" + }, + "description": "Select a survey", + "x-ms-summary": "Survey" + }, + { + "name": "publicationId", + "in": "header", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "GetPublications", + "value-path": "id", + "value-title": "name", + "parameters": { + "surveyId": { + "parameter": "surveyId" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "GetPublications", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "surveyId": { + "parameterReference": "surveyId" + } + } + }, + "description": "Select a survey publication", + "x-ms-summary": "Publication" + } + ] + } + }, + "/survey-service/list/": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Survey Id" + }, + "tenantId": { + "type": "string", + "description": "Tenant Id" + }, + "name": { + "type": "string", + "description": "Survey name" + }, + "description": { + "type": "string", + "description": "Survey description" + }, + "status": { + "type": "string", + "description": "Status" + }, + "lastDateModified": { + "type": "string", + "description": "Last modified date" + }, + "creator": { + "type": "string", + "description": "Created by" + } + } + } + } + } + }, + "parameters": [], + "summary": "Get Survey List", + "description": "Get Survey List", + "operationId": "GetSurveys", + "x-ms-visibility": "internal" + } + }, + "/survey-service/getPublication/{publicationIdValue}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "schemaDefinition": { + "type": "object", + "description": "Schema definition" + } + } + } + } + }, + "summary": "Get Survey Publication Schema", + "description": "Get Survey Publication Schema", + "operationId": "GetSurveyPublicationSchema", + "parameters": [ + { + "name": "publicationIdValue", + "in": "path", + "required": true, + "type": "string", + "description": "Publication Id (unique identifier)", + "x-ms-summary": "Publication Id (unique identifier)", + "x-ms-url-encoding": "single" + } + ], + "x-ms-visibility": "internal" + } + }, + "/webhook-service/subscribe/surveyexecution": { + "x-ms-notification-content": { + "description": "On Survey Execution Input Data", + "schema": { + "type": "object", + "properties": { + "tenantId": { + "type": "string", + "description": "Tenant Id" + }, + "action": { + "type": "string", + "description": "Action" + }, + "event": { + "type": "string", + "description": "Event" + }, + "parameters": { + "type": "object", + "properties": { + "publicationId": { + "type": "string", + "description": "Publication Id" + } + }, + "description": "Parameters" + }, + "payload": { + "type": "object", + "properties": { + "executionId": { + "type": "string", + "description": "Execution Id" + } + }, + "description": "Payload" + } + } + } + }, + "post": { + "responses": { + "200": { + "description": "200" + } + }, + "summary": "On Survey Execution", + "description": "On Survey Execution", + "operationId": "OnSurveyExecution", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "callback": { + "type": "string", + "description": "callback", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "" + }, + "parameters": { + "type": "object", + "properties": { + "surveyId": { + "type": "string", + "description": "Select a survey", + "title": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-path": "id", + "value-title": "name" + }, + "default": "Survey" + }, + "publicationId": { + "type": "string", + "description": "Select a survey publication", + "title": "Publication Id", + "x-ms-dynamic-values": { + "operationId": "GetPublications", + "value-path": "id", + "value-title": "name", + "parameters": { + "surveyId": { + "parameter": "parameters.surveyId" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "GetPublications", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "surveyId": { + "parameterReference": "body/parameters/surveyId" + } + } + }, + "default": "Publication" + } + }, + "description": "Parameters", + "required": [ + "surveyId", + "publicationId" + ] + } + }, + "required": [ + "callback", + "parameters" + ] + } + } + ], + "consumes": [ + "application/json" + ] + } + }, + "/webhook-service/unsubscribe/{token}": { + "delete": { + "responses": { + "200": { + "description": "200", + "schema": {} + } + }, + "summary": "Unsubscribe Web Hook Events", + "description": "Unsubscribe Web Hook Events", + "operationId": "UnsubscribeWebHookEvents", + "parameters": [ + { + "name": "token", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + } + ], + "x-ms-visibility": "internal" + } + }, + "/survey-service/publication/getAllPublications/{surveyId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Publication Id" + }, + "tenantId": { + "type": "string", + "description": "Tenant Id" + }, + "partitionKey": { + "type": "string", + "description": "Partition Key" + }, + "surveyId": { + "type": "string", + "description": "Survey Id" + }, + "oneTimeSurvey": { + "type": "boolean", + "description": "Is it one-time survey?" + }, + "sendEmailNotification": { + "type": "boolean", + "description": "Is email notification is sent?" + }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "User name" + }, + "id": { + "type": "string", + "description": "User Id" + } + } + }, + "description": "Users" + }, + "name": { + "type": "string", + "description": "Name" + }, + "validityStart": { + "type": "string", + "description": "Validity start" + }, + "lastModifiedDate": { + "type": "string", + "description": "Last modified date" + }, + "validityEnd": { + "type": "string", + "description": "Validity end" + } + } + } + } + } + }, + "summary": "Get All Survey`s Publications (Versions)", + "description": "Get All Survey`s Publications (Versions)", + "operationId": "GetPublications", + "parameters": [ + { + "name": "surveyId", + "in": "path", + "required": true, + "type": "string", + "description": "Survey Id (unique identifier)", + "x-ms-summary": "Survey Id (unique identifier)", + "x-ms-url-encoding": "single" + } + ], + "x-ms-visibility": "internal" + } + }, + "/identity-service/user/{userId}": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "User Id", + "title": "User Id" + }, + "code": { + "type": "string", + "description": "User code", + "title": "User code" + }, + "firstName": { + "type": "string", + "description": "First Name", + "title": "First Name" + }, + "secondName": { + "type": "string", + "description": "Second (Middle) Name", + "title": "Second (Middle) Name" + }, + "surname": { + "type": "string", + "description": "Surname", + "title": "Surname" + }, + "username": { + "type": "string", + "description": "User name", + "title": "Username (Login)" + }, + "email": { + "type": "string", + "description": "Email", + "title": "User email" + } + } + } + } + }, + "summary": "Get User Info", + "operationId": "GetUserById", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "type": "string", + "description": "User Id (guid)", + "x-ms-summary": "User", + "x-ms-url-encoding": "single" + } + ], + "description": "Get User Info" + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "SPRING_GLOBAL_API_KEY" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.springglobal.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.springglobal.com/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity;Collaboration" + } + ] +} \ No newline at end of file diff --git a/certified-connectors/Spring Global/apiProperties.json b/certified-connectors/Spring Global/apiProperties.json new file mode 100644 index 0000000000..f541005c47 --- /dev/null +++ b/certified-connectors/Spring Global/apiProperties.json @@ -0,0 +1,36 @@ +{ + "properties": { + "connectionParameters": { + "baseurl": { + "type": "string", + "uiDefinition": { + "displayName": "Web API Base Url", + "description": "Web API Base Url", + "tooltip": "Provide Web API base url", + "constraints": { + "tabIndex": 1, + "clearText": true, + "required": "true" + } + } + }, + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#fefefe", + "capabilities": [], + "publisher": "Spring Global", + "stackOwner": "Spring Global" + } +} \ No newline at end of file diff --git a/certified-connectors/Spring Global/readme.md b/certified-connectors/Spring Global/readme.md new file mode 100644 index 0000000000..c84d732b85 --- /dev/null +++ b/certified-connectors/Spring Global/readme.md @@ -0,0 +1,29 @@ +Spring Global is a leading provider of field sales tools for the Consumer Packaged Goods (CPG) industry. We enable users to serve with ease, monitor & control field execution, and leverage a single app with a 360° of the customer. We deliver a proven, flexible, enterprise-grade SaaS solution and our development team is continuously working on innovations to improve and expand the capabilities of our full-stack solution. +Current vertion of connector contains a trigger to handle surver execution events and methods get relevant information about survey execution and users + +## Prerequisites + +To use the Spring Global connector, you need to have trial or full license for Spring Global Survey. So, you must have portal URL and credentials (login and password) to create and configure a survey. +To configure the connector you should have Web API URL and API Key. + +## How to get credentials +Contact our support team (sustaining.br@springglobal.com) for getting trial license and additional support. + +## Getting started with your connector +1. Create a survey in the Spring Global Survey portal. Publish it. +2. Create a Power Automeate Flow + * The flow starts with trigger "On Survey Execution" of Spring Global connector + Use WebAPI Url and API key to configure connection + * Use "Get Survey Execution Data" to get details by survey execution id +3. Fill the survey as a user +4. Look the flow execution + +## Supported Operations +The current version of connector supports the following operations: +* webhook trigger that fire on new surver execution +* method to get survey execution details +* method to get user details + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps +Note: the connector contains code (script.csx file), so use --script (or -x) key to upload script file as well. \ No newline at end of file diff --git a/certified-connectors/Spring Global/script.csx b/certified-connectors/Spring Global/script.csx new file mode 100644 index 0000000000..d273008c5b --- /dev/null +++ b/certified-connectors/Spring Global/script.csx @@ -0,0 +1,192 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + // Use the context to forward/send an HTTP request. Turn of caching + var cacheControlHeader = new CacheControlHeaderValue(){NoStore=true, NoCache=true}; + this.Context.Request.Headers.CacheControl = cacheControlHeader; + HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + string responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + + try + { + JObject surveyJson; + string newResponceContent = responseString; + bool contentChanged = false; + + if (this.Context.OperationId == "GetSurveyPublicationSchema") + { + var arrayResponse = JArray.Parse(responseString); + surveyJson = arrayResponse.First as JObject; + newResponceContent = this.GetSurveySchema(surveyJson); + contentChanged = true; + } + else if (this.Context.OperationId == "GetExecutionById") + { + newResponceContent = this.GetSurveyData(responseString); + contentChanged = true; + } + else + { + //Don`t do any thing for other operations + } + + if (contentChanged) + { + response.Content = CreateJsonContent(newResponceContent); + response.StatusCode = HttpStatusCode.OK; + } + } + catch + { + //Don`t to transformation + } + + return response; + } + + /// + /// The method transforms data from WebAPI to more plain structure, that suitable for Flows + /// + public string GetSurveyData(string surveyExecutionData) + { + JArray surveyExecutionArrayJson = JArray.Parse(surveyExecutionData); + JObject surveyExecutionJson = (JObject)surveyExecutionArrayJson.First(); + JObject resultJson = new JObject(); + resultJson["Id"] = surveyExecutionJson["id"]; + resultJson["surveyId"] = surveyExecutionJson["surveyId"]; + resultJson["SurveyName"] = (string)surveyExecutionJson.SelectToken("$.surveyPublication.survey.name"); + resultJson["Date"] = surveyExecutionJson["executionDate"]; + resultJson["userId"] = surveyExecutionJson["userId"]; + List questions = surveyExecutionJson.SelectTokens("$.pages..parameters[:10000]").ToList(); + + int i = 0; + foreach (JObject question in questions) + { + i++; + int order = i; + string questionText = question.Value("name"); + string questionType = (string)question.SelectToken("parameterType.code"); + resultJson[$"Question{order}"] = questionText; + + switch (questionType) + { + case "CHR": + case "NUM": + case "SCO": + case "RAD": + resultJson[$"Answer{order}"] = question["value"]; + break; + case "CHK": + JObject selectedOptions = new JObject(); + resultJson[$"Answer{order}"] = selectedOptions; + JArray optionsJson = (JArray)question["options"]; + + int optionNumber = 0; + foreach (JObject optionJson in optionsJson) + { + optionNumber++; + selectedOptions[$"Option{optionNumber}Text"] = optionJson["text"]; + selectedOptions[$"Option{optionNumber}Checked"] = optionJson["checked"]; + selectedOptions[$"Option{optionNumber}Id"] = optionJson["id"]; + } + break; + //case "IMG": + default: + break; + } + + } + + string result = resultJson.ToString(); ; + return result; + } + + /// + /// The method generate a schema of survey to support Flow Designer + /// + public string GetSurveySchema(JObject surveyJson) + { + JObject resultJson = new JObject(); + JObject firstLevelJson = new JObject(); + firstLevelJson["type"] = "object"; + firstLevelJson["description"] = $"Survey execution (object)"; + + JObject resultBodyJson = new JObject(); + SetSimpleProperty(resultBodyJson, "Id", "Execution Id", "Execution Id", "string", null); + SetSimpleProperty(resultBodyJson, "SurveyId", "Surver Id", "Surver Id", "string", null); + SetSimpleProperty(resultBodyJson, "SurveyName", "Survey name", "Survey name", "string", null); + SetSimpleProperty(resultBodyJson, "Date", "Execution date", "Execution date", "string", "date-time"); + SetSimpleProperty(resultBodyJson, "UserId", "User Id", "User Id", "string", null); + + List questions = surveyJson.SelectTokens("$..parameters[:10000]").ToList(); + int i = 0; + + foreach (JObject question in questions) + { + i++; + int order = i; + string questionText = question.Value("name"); + string questionType = (string)question.SelectToken("parameterType.code"); + SetSimpleProperty(resultBodyJson, $"Question{order}", $"Question {order} Text", questionText, "string", null); + + switch (questionType) + { + case "CHR": + SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Text)", questionText, "string", null); + break; + case "NUM": + SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Numeric)", questionText, "number", null); + break; + case "SCO": + SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Scale)", questionText, "integer", null); + break; + case "RAD": + JObject answerJson1 = SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Single Choice)", questionText, "object", null); + JObject radJson = new JObject(); + SetSimpleProperty(radJson, "id", $"Selected choice id", questionText, "string", null); + SetSimpleProperty(radJson, "text", $"Selected choice title", questionText, "string", null); + answerJson1["properties"] = radJson; + break; + case "CHK": + JObject answerJson2 = SetSimpleProperty(resultBodyJson, $"Answer{order}", $"Question {order} Answer (Checkbox)", questionText, "object", null); + + JObject answerJson2Options = new JObject(); + JArray optionsJson = (JArray)question["options"]; + + int optionNumber = 0; + foreach (JObject optionJson in optionsJson) + { + optionNumber++; + string optionText = optionJson.Value("text"); + SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Text", $"Option {optionNumber} text", $"{optionText}{Environment.NewLine}{questionText}", "string", null); + SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Checked", $"Option {optionNumber} is selected",$"Is selected '{optionText}'{Environment.NewLine}{questionText}", "boolean", null); + SetSimpleProperty(answerJson2Options, $"Option{optionNumber}Id", $"Option {optionNumber} id", $"Option {optionNumber} ID{Environment.NewLine}{questionText}", "boolean", null); + } + + answerJson2["properties"] = answerJson2Options; + break; + //case "IMG": + default: + break; + } + } + + firstLevelJson["properties"] = resultBodyJson; + resultJson["schemaDefinition"] = firstLevelJson; + return resultJson.ToString(); + } + + public JObject SetSimpleProperty(JObject parentObject, string paramName, string title, string description, string typeName, string format=null) + { + JObject jObject = new JObject(); + jObject["type"] = typeName; + jObject["description"] = description; + if (string.IsNullOrEmpty(format)) { } else {jObject["format"] = format; } + if (string.IsNullOrEmpty(title)) { } else { jObject["title"] = title; } + + parentObject[paramName] = jObject; + return jObject; + } +} From d6375dbaa7a15e07917ba240dcc82fb0be9a8867 Mon Sep 17 00:00:00 2001 From: depfeife-msft <80135000+depfeife-msft@users.noreply.github.com> Date: Fri, 15 Oct 2021 14:02:55 -0700 Subject: [PATCH 063/219] [JIRA] Open Source JIRA (#1179) * open source jira * Address comments --- .../JIRA/apiDefinition.swagger.json | 2826 +++++++++++++++++ certified-connectors/JIRA/apiProperties.json | 233 ++ certified-connectors/JIRA/readme.md | 23 + 3 files changed, 3082 insertions(+) create mode 100644 certified-connectors/JIRA/apiDefinition.swagger.json create mode 100644 certified-connectors/JIRA/apiProperties.json create mode 100644 certified-connectors/JIRA/readme.md diff --git a/certified-connectors/JIRA/apiDefinition.swagger.json b/certified-connectors/JIRA/apiDefinition.swagger.json new file mode 100644 index 0000000000..9738e955fd --- /dev/null +++ b/certified-connectors/JIRA/apiDefinition.swagger.json @@ -0,0 +1,2826 @@ +{ + "swagger": "2.0", + "info": { + "x-ms-deployment-version": "1.0.0", + "version": "1.0.0", + "title": "JIRA", + "description": "JIRA is a software development tool for agile teams to plan, track, and release world-class software. Connecting JIRA issues to the rest of your tools helps break down barriers and unleash the potential of your team.", + "x-ms-api-annotation": { + "status": "Production" + }, + "contact": { + "name": "Atlassian", + "url": "https://support.atlassian.com" + } + }, + "host": "yourhost.yourdomain.com", + "basePath": "/rest/api", + "schemes": [ + "https" + ], + "produces": [ + "application/json" + ], + "paths": { + "/3/issue/{issueIdOrKey}": { + "put": { + "description": "Edits an issue. A transition may be applied and issue properties updated as part of the edit.", + "summary": "Edit Issue", + "tags": [ + "Issues" + ], + "operationId": "EditIssue", + "deprecated": false, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "issueIdOrKey", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Issue ID or Key", + "description": "Provide the Issue ID or Key for the issue you wish to edit", + "x-ms-url-encoding": "single" + }, + { + "name": "notifyUsers", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Notify Users", + "description": "Do you want to notify users?" + }, + { + "name": "overrideScreenSecurity", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Override Screen Security", + "description": "Do you want to override the screen security?" + }, + { + "name": "overrideEditableFlag", + "in": "query", + "required": false, + "type": "boolean", + "x-ms-summary": "Override Editable Flag", + "description": "Do you want to override the editable flag?" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "transition": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Transition ID" + }, + "looped": { + "type": "string", + "description": "Transition looped" + } + }, + "description": "Transition" + }, + "fields": { + "type": "string", + "description": "Fields" + }, + "update": { + "type": "string", + "description": "Update" + }, + "historyMetadata": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "History meta data type" + }, + "description": { + "type": "string", + "description": "History meta data description" + }, + "descriptionKey": { + "type": "string", + "description": "History meta data description key" + }, + "activityDescription": { + "type": "string", + "description": "History meta data activity description" + }, + "activityDescriptionKey": { + "type": "string", + "description": "History meta data activity description key" + }, + "emailDescription": { + "type": "string", + "description": "History meta data email description" + }, + "emailDescriptionKey": { + "type": "string", + "description": "History meta data email description key" + }, + "actor": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Actor ID" + }, + "displayName": { + "type": "string", + "description": "Actor display name" + }, + "displayNameKey": { + "type": "string", + "description": "Actor display name key" + }, + "type": { + "type": "string", + "description": "Actor type" + }, + "avatarUrl": { + "type": "string", + "description": "Actor avatar url" + }, + "url": { + "type": "string", + "description": "Actor url" + } + }, + "description": "Actor" + }, + "generator": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Generator id" + }, + "displayName": { + "type": "string", + "description": "Generator display name" + }, + "displayNameKey": { + "type": "string", + "description": "Generator display name key" + }, + "type": { + "type": "string", + "description": "Generator type" + }, + "avatarUrl": { + "type": "string", + "description": "Generator avatar url" + }, + "url": { + "type": "string", + "description": "Generator url" + } + }, + "description": "Generator" + }, + "cause": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Cause id" + }, + "displayName": { + "type": "string", + "description": "Cause display name" + }, + "displayNameKey": { + "type": "string", + "description": "Cause display name key" + }, + "type": { + "type": "string", + "description": "Cause type" + }, + "avatarUrl": { + "type": "string", + "description": "Cause avatar url" + }, + "url": { + "type": "string", + "description": "Cause url" + } + }, + "description": "Cause" + }, + "extraData": { + "type": "string", + "description": "Extra data" + } + }, + "description": "History meta data" + }, + "properties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key" + }, + "value": { + "type": "object", + "properties": {}, + "description": "Value" + } + } + }, + "description": "Properties" + } + } + } + } + ], + "responses": { + "201": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "examples": { + "application/json": { + "self": "https://yourhost.yourdomain.com/rest/api/3/issue/10100", + "id": "10100", + "name": "EDITED", + "description": "Issue Edited" + } + }, + "headers": {} + }, + "204": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "headers": {} + }, + "400": { + "description": "Returned if the request body is missing. The user does not have the necessary permission to edit one or more fields. The request includes one or more fields that are not found or are not associated with the issue's edit screen. The request includes an invalid transition.", + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if the user uses `overrideScreenSecurity` or `overrideEditableFlag` but doesn't have the necessary permission.", + "headers": {} + }, + "404": { + "description": "Returned if the issue is not found or the user does not have permission to view it.", + "headers": {} + } + } + } + }, + "/3/project/{projectIdOrKey}": { + "delete": { + "description": "Deletes a project. Permissions required: Administer Jira (global permissions)", + "summary": "Delete Project", + "tags": [ + "Projects" + ], + "operationId": "DeleteProject", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "projectIdOrKey", + "in": "path", + "required": true, + "type": "string", + "description": "The project ID or project key (case sensitive).", + "x-ms-summary": "Project ID or Key", + "x-ms-url-encoding": "single" + }, + { + "name": "enableUndo", + "in": "query", + "required": false, + "default": false, + "type": "boolean", + "description": "Whether this project is placed in the Jira recycle bin where it will be available for restoration.", + "x-ms-summary": "Enable Undo" + } + ], + "responses": { + "204": { + "description": "Returned if the project is deleted.", + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "404": { + "description": "Returned if the project is not found or the user does not have permission to delete it.", + "headers": {} + } + } + }, + "put": { + "description": "Updates the project details of a project.", + "summary": "Update Project", + "tags": [ + "Projects" + ], + "operationId": "UpdateProject", + "deprecated": false, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "projectIdOrKey", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Project ID or Key", + "description": "Provide the project ID or Key you want to update1", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Key" + }, + "name": { + "type": "string", + "description": "Name" + }, + "projectTypeKey": { + "type": "string", + "description": "Project Type Key" + }, + "projectTemplateKey": { + "type": "string", + "description": "Project Template Key" + }, + "description": { + "type": "string", + "description": "Description" + }, + "lead": { + "type": "string", + "description": "Lead" + }, + "leadAccountId": { + "type": "string", + "description": "Lead Account ID" + }, + "url": { + "type": "string", + "description": "URL" + }, + "assigneeType": { + "type": "string", + "description": "Assignee Type" + }, + "avatarId": { + "type": "string", + "description": "Avatar ID" + }, + "issueSecurityScheme": { + "type": "string", + "description": "Issue Security Scheme" + }, + "permissionScheme": { + "type": "string", + "description": "Permission Scheme" + }, + "notificationScheme": { + "type": "string", + "description": "Notification Scheme" + }, + "categoryId": { + "type": "string", + "description": "Category ID" + } + } + } + } + ], + "responses": { + "200": { + "description": "Returned if the project is updated.", + "schema": { + "type": "object" + }, + "headers": {} + }, + "400": { + "description": "Returned if the request is not valid.", + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if:\n\n * the user does not have the necessary permission to update project details.\n * the permission scheme is being changed and the Jira instance is Jira Core Free or Jira Software Free. Permission schemes cannot be changed on free plans.", + "headers": {} + }, + "404": { + "description": "Returned if the project is not found.", + "headers": {} + } + } + } + }, + "/3/projectCategory": { + "get": { + "description": "Returns all project categories.", + "summary": "Get All Project Categories", + "tags": [ + "Project categories" + ], + "operationId": "GetAllProjectCategories", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [], + "responses": { + "200": { + "description": "Returned if the request is successful.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "self": { + "type": "string", + "description": "Self" + }, + "id": { + "type": "string", + "description": "ID" + }, + "description": { + "type": "string", + "description": "Description" + }, + "name": { + "type": "string", + "description": "Name" + } + } + } + }, + "examples": { + "application/json": [ + { + "self": "https://yourhost.yourdomain.com/rest/api/3/projectCategory/10000", + "id": "10000", + "name": "FIRST", + "description": "First Project Category" + }, + { + "self": "https://yourhost.yourdomain.com/rest/api/3/projectCategory/10001", + "id": "10001", + "name": "SECOND", + "description": "Second Project Category" + } + ] + } + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + } + } + }, + "post": { + "description": "Creates a project category. Permissions required: Administer Jira (global permissions)", + "summary": "Create Project Category", + "tags": [ + "Project categories" + ], + "operationId": "CreateProjectCategory", + "deprecated": false, + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name", + "title": "name" + }, + "description": { + "type": "string", + "description": "Description", + "title": "description" + } + } + } + } + ], + "responses": { + "201": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "examples": { + "application/json": { + "self": "https://yourhost.yourdomain.com/rest/api/3/projectCategory/10100", + "id": "10100", + "name": "CREATED", + "description": "Created Project Category" + } + }, + "headers": {} + }, + "400": { + "description": "Returned if:\n\n * `name` is not provided or exceeds 255 characters.\n * `description` is not provided or exceeds 1000 characters.", + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if the user does not have the necessary permission.", + "headers": {} + }, + "409": { + "description": "Returned if the project category name is in use.", + "headers": {} + } + } + } + }, + "/3/projectCategory/{id}": { + "delete": { + "description": "Deletes a project category. Permissions required: Administer Jira (global permissions)", + "summary": "Remove Project Category", + "tags": [ + "Project categories" + ], + "operationId": "RemoveProjectCategory", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "format": "int64", + "description": "ID of the project category to delete.", + "x-ms-summary": "Project ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "204": { + "description": "Returned if the request is successful.", + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if the user does not have the necessary permission.", + "headers": {} + }, + "404": { + "description": "Returned if the project category is not found.", + "headers": {} + } + } + } + }, + "/3/task/{taskId}": { + "get": { + "description": "Returns the status of a long-running asynchronous task. When a task has finished, this operation returns the JSON blob applicable to the task.", + "summary": "Get Task", + "tags": [ + "Tasks" + ], + "operationId": "GetTask", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "type": "string", + "description": "The ID of the task.", + "x-ms-summary": "Task ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if the user does not have the necessary permission.", + "headers": {} + }, + "404": { + "description": "Returned if the task is not found.", + "headers": {} + } + } + } + }, + "/3/task/{taskId}/cancel": { + "post": { + "description": "Cancels a task. Permissions required: either of: Administer Jira or Creator of the task.", + "summary": "Cancel Task", + "tags": [ + "Tasks" + ], + "operationId": "CancelTask", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "taskId", + "in": "path", + "required": true, + "type": "string", + "description": "The ID of the task.", + "x-ms-summary": "Task ID", + "x-ms-url-encoding": "single" + }, + { + "name": "X-Atlassian-Token", + "in": "header", + "required": true, + "type": "string", + "description": "The X-Atlassian-Token nocheck requirement", + "x-ms-summary": "Token", + "default": "nocheck", + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "examples": { + "application/json": { + "self": "https://yourhost.yourdomain.com/rest/api/3/issue/10100", + "id": "10100", + "name": "CANCELLED", + "description": "Task Cancelled" + } + }, + "headers": {} + }, + "202": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "headers": {} + }, + "400": { + "description": "Returned if cancellation of the task is not possible.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": {} + }, + "403": { + "description": "Returned if the user does not have the necessary permission.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": {} + }, + "404": { + "description": "Returned if the task is not found.", + "schema": { + "type": "array", + "items": { + "type": "string" + } + }, + "headers": {} + } + } + } + }, + "/3/user": { + "get": { + "description": "Returns a user. Permissions required: Browse users and groups.", + "summary": "Get User", + "tags": [ + "Users" + ], + "operationId": "GetUser", + "deprecated": false, + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "accountId", + "in": "query", + "required": true, + "type": "string", + "maxLength": 128, + "description": "The account ID of the user, which uniquely identifies the user across all Atlassian products. For example, *5b10ac8d82e05b22cc7d4ef5*. Required.", + "x-ms-summary": "Account ID" + }, + { + "name": "expand", + "in": "query", + "required": false, + "type": "string", + "description": "Use expand to include additional information about users in the response. This parameter accepts a comma-separated list. Expand options include: * `groups` includes all groups and nested groups to which the user belongs. * `applicationRoles` includes details of all the applications to which the user has access.", + "x-ms-summary": "Expand" + } + ], + "responses": { + "200": { + "description": "Returned if the request is successful.", + "schema": { + "type": "object" + }, + "examples": { + "application/json": { + "self": "https://yourhost.yourdomain.com/rest/api/3/user?accountId=5b10a2844c20165700ede21g", + "key": "", + "accountId": "5b10a2844c20165700ede21g", + "name": "", + "emailAddress": "mia@example.com", + "avatarUrls": { + "48x48": "https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=48&s=48", + "24x24": "https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=24&s=24", + "16x16": "https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=16&s=16", + "32x32": "https://avatar-management--avatars.server-location.prod.public.atl-paas.net/initials/MK-5.png?size=32&s=32" + }, + "displayName": "Mia Krystof", + "active": true, + "timeZone": "Australia/Sydney", + "groups": { + "size": 3, + "items": [] + }, + "applicationRoles": { + "size": 1, + "items": [] + } + } + }, + "headers": {} + }, + "401": { + "description": "Returned if the authentication credentials are incorrect or missing.", + "headers": {} + }, + "403": { + "description": "Returned if the calling user does not have the browse users and groups global permission.", + "headers": {} + }, + "404": { + "description": "Returned if the Account ID is missing.", + "headers": {} + } + } + } + }, + "/3/rest/webhooks/1.0/webhook": { + "x-ms-notification-content": { + "description": "Project Create Response", + "schema": { + "type": "object", + "properties": { + "self": { + "type": "string", + "description": "Self" + }, + "id": { + "type": "string", + "description": "ID" + }, + "key": { + "type": "string", + "description": "Key" + }, + "name": { + "type": "string", + "description": "Name" + }, + "avatarUrls": { + "type": "object", + "properties": { + "48x48": { + "type": "string", + "description": "48x48 Avatar URL" + }, + "24x24": { + "type": "string", + "description": "24x24 Avatar URL" + }, + "16x16": { + "type": "string", + "description": "16x16 Avatar URL" + }, + "32x32": { + "type": "string", + "description": "32x32 Avatar URL" + } + }, + "description": "Avatar URLs" + }, + "projectCategory": { + "type": "object", + "properties": { + "self": { + "type": "string", + "description": "Self" + }, + "id": { + "type": "string", + "description": "ID" + }, + "name": { + "type": "string", + "description": "Name" + }, + "description": { + "type": "string", + "description": "Description" + } + }, + "description": "Project Category" + }, + "simplified": { + "type": "boolean", + "description": "Simplified" + }, + "style": { + "type": "string", + "description": "Style" + }, + "insight": { + "type": "object", + "properties": { + "totalIssueCount": { + "type": "integer", + "format": "int32", + "description": "Total Issue Count" + }, + "lastIssueUpdateTime": { + "type": "string", + "description": "Last Issue Update Time" + } + }, + "description": "Insight" + } + } + } + } + }, + "/issue": { + "post": { + "summary": "Create a new issue", + "description": "This operation is used to create a new issue.", + "operationId": "CreateIssue", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project", + "description": "Pick a project to create the issue in.", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + }, + { + "name": "body", + "in": "body", + "required": true, + "x-ms-summary": "Issue", + "schema": { + "$ref": "#/definitions/CreateIssueRequest" + } + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateIssueResponse" + } + } + }, + "deprecated": true, + "x-ms-visibility": "important", + "x-ms-api-annotation": { + "status": "Production", + "family": "CreateIssue", + "revision": 1 + } + } + }, + "/v2/issue": { + "post": { + "summary": "Create a new issue (V2)", + "description": "This operation is used to create a new issue.", + "operationId": "CreateIssueV2", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project", + "description": "Pick a project to create the issue in.", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + }, + { + "name": "issueTypeIds", + "in": "query", + "required": true, + "x-ms-summary": "Issue Type Id", + "description": "Pick an issue type.", + "x-ms-dynamic-values": { + "operationId": "ListIssueTypes", + "parameters": { + "projectKey": { + "parameter": "projectKey" + } + }, + "value-path": "id", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "10000" + }, + { + "name": "item", + "in": "body", + "description": "Item", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "ListIssueTypesFields", + "parameters": { + "projectKey": { + "parameter": "projectKey" + }, + "issuetypeIds": { + "parameter": "issueTypeIds" + } + }, + "value-path": "items" + } + } + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateIssueResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-api-annotation": { + "status": "Production", + "family": "CreateIssue", + "revision": 2 + } + } + }, + "/issue/{issueKey}": { + "get": { + "summary": "Get issue by key", + "description": "This operation is used to retrieve the issue object for a given issue Key.", + "operationId": "GetIssue", + "parameters": [ + { + "name": "issueKey", + "in": "path", + "description": "Unique Key of the issue.", + "required": true, + "x-ms-summary": "Issue Key", + "type": "string", + "x-ms-test-value": "TPDND-1" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FullIssue" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + }, + "put": { + "summary": "Update issue", + "description": "This operation is used to update an existing JIRA issue.", + "x-ms-visibility": "internal", + "operationId": "UpdateIssue", + "parameters": [ + { + "name": "issueKey", + "in": "path", + "description": "Unique Key of the issue.", + "required": true, + "x-ms-summary": "Issue Key", + "type": "string", + "x-ms-test-value": "TPDND-1" + }, + { + "name": "body", + "in": "body", + "required": true, + "x-ms-summary": "Issue", + "schema": { + "$ref": "#/definitions/UpdateIssueRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "string" + } + } + }, + "deprecated": false + } + }, + "/issue/{issueKey}/comment": { + "post": { + "summary": "Add comment", + "description": "This operation is used to add a comment to an existing JIRA issue.", + "operationId": "AddComment", + "parameters": [ + { + "name": "issueKey", + "in": "path", + "description": "Unique Key of the issue to add a comment to.", + "required": true, + "x-ms-summary": "Issue Key", + "type": "string", + "x-ms-test-value": "TPDND-1" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Comment" + } + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CommentResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + } + }, + "/issue/createmeta": { + "get": { + "summary": "Get issue types", + "description": "This operation is used to retrieve a list of issue types for a given project.", + "operationId": "ListIssueTypes", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IssueTypes" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/v2/issue/createmeta": { + "get": { + "summary": "Get issue types fields", + "description": "This operation is used to retrieve a list of fields for a specific issue type.", + "operationId": "ListIssueTypesFields", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project", + "type": "string", + "x-ms-test-value": "TPDND" + }, + { + "name": "issuetypeIds", + "in": "query", + "required": true, + "x-ms-summary": "Issue Types", + "type": "string", + "x-ms-test-value": "10000" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IssueTypes" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/project": { + "get": { + "summary": "Get projects", + "description": "This operation is used to retrieve a list of projects for your JIRA instance.", + "operationId": "ListProjects", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ProjectArray" + } + } + }, + "deprecated": true, + "x-ms-visibility": "advanced", + "x-ms-api-annotation": { + "status": "Production", + "family": "ListProjects", + "revision": 1 + } + }, + "post": { + "summary": "Create a new project", + "description": "This operation is used to create a new JIRA project.", + "operationId": "CreateProject", + "parameters": [ + { + "name": "Project", + "in": "body", + "required": true, + "schema": { + "required": [ + "key", + "name", + "projectTypeKey", + "leadAccountId" + ], + "type": "object", + "properties": { + "key": { + "description": "The unique key, starts with a capital letter.", + "type": "string", + "x-ms-summary": "Project Key" + }, + "name": { + "type": "string", + "x-ms-summary": "Name", + "description": "Title of the project." + }, + "projectTypeKey": { + "enum": [ + "Software - Scrum software development", + "Software - Kanban software development", + "Software - Basic software development", + "Business - Project management", + "Business - Task management", + "Business - Process management" + ], + "type": "string", + "x-ms-summary": "Type", + "description": "Project type key." + }, + "leadAccountId": { + "description": "Id of Project lead.", + "type": "string", + "x-ms-summary": "Lead Id" + }, + "description": { + "type": "string", + "x-ms-summary": "Description", + "description": "Verbose description of the project." + } + } + } + } + ], + "responses": { + "201": { + "description": "201", + "schema": { + "$ref": "#/definitions/CreateProjectResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-no-generic-test": true + } + }, + "/project/search": { + "get": { + "summary": "Get projects", + "description": "This operation is used to retrieve a list of projects for your JIRA instance.", + "operationId": "ListProjects_V2", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListProjects_ResponseV2" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-api-annotation": { + "status": "Production", + "family": "ListProjects", + "revision": 2 + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/project/{projectId}/statuses": { + "get": { + "summary": "Get statuses", + "description": "This operation is used to retrieve a list of statuses for a project and issue type.", + "operationId": "ListStatuses", + "parameters": [ + { + "name": "issueType", + "in": "query", + "required": true, + "type": "string", + "default": "10001" + }, + { + "name": "projectId", + "in": "path", + "required": true, + "type": "string", + "default": "10000" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/StatusList" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/user/permission/search": { + "get": { + "summary": "List users by project", + "description": "This operation is used to retrieve a list of all users associated with a project.", + "operationId": "ListProjectUsers", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project key", + "description": "Unique key of the project.", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UserList" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + } + }, + "/user/assignable/search": { + "get": { + "summary": "Get assignable Users", + "description": "This operation returns a list of the users who can be assigned issues for a given project.", + "operationId": "ListAssignableUsers", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "required": true, + "x-ms-summary": "Project Key", + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UserList" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/priority": { + "get": { + "summary": "Get priority types", + "description": "This operation returns a list of priority types.", + "operationId": "ListPriorityTypes", + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/PriorityList" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/new_issue_trigger/search": { + "get": { + "summary": "When a new issue is created", + "description": "This operation triggers when a new issue is added to the given project.", + "operationId": "OnNewIssue", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "description": "Unique key of the project to look for new issues.", + "required": true, + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/FullIssue" + } + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, create an issue." + } + }, + "/close_issue_trigger/search": { + "get": { + "summary": "When an issue is closed", + "description": "This operation triggers when an existing issue is closed in the given project.", + "operationId": "OnCloseIssue", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "description": "Unique key of the project to look for new issues.", + "required": true, + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/FullIssue" + } + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, close an issue." + } + }, + "/update_issue_trigger/search": { + "get": { + "summary": "When an issue is updated", + "x-ms-visibility": "internal", + "description": "This operation triggers when an existing JIRA issue is updated.", + "operationId": "OnUpdateIssue", + "parameters": [ + { + "name": "projectKey", + "in": "query", + "description": "Unique key of the project to look for updated issues.", + "required": true, + "x-ms-summary": "Project", + "x-ms-dynamic-values": { + "operationId": "ListProjects_V2", + "value-collection": "value", + "value-path": "key", + "value-title": "name" + }, + "type": "string", + "x-ms-test-value": "TPDND" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/FullIssue" + } + } + } + }, + "deprecated": false, + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, update an issue." + } + }, + "/new_issue_jql_trigger/search": { + "get": { + "summary": "When a new issue is returned by a JQL query", + "description": "This operation triggers when a new issue appears in the latest 100 results of a JQL query.", + "operationId": "OnNewIssueJQL", + "parameters": [ + { + "name": "jql", + "in": "query", + "description": "Query to use.", + "required": true, + "x-ms-summary": "JQL Query", + "type": "string", + "default": "" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/FullIssue" + } + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, create an issue that matches the JQL query.", + "x-ms-no-generic-test": true + } + } + }, + "definitions": { + "CreateProjectResponse": { + "type": "object", + "properties": { + "id": { + "format": "int32", + "type": "integer", + "x-ms-summary": "Project Id", + "description": "Unique id of the project." + }, + "key": { + "type": "string", + "x-ms-summary": "Project Key", + "description": "Unique key of the project." + } + } + }, + "CreateIssueResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Issue Id", + "description": "Unique identifier of the issue." + }, + "key": { + "type": "string", + "x-ms-summary": "Issue Key", + "description": "Unique key of the issue." + } + } + }, + "ListProjects_ResponseV2": { + "type": "object", + "properties": { + "nextPage": { + "type": "string", + "x-ms-summary": "Next page", + "description": "Next page of projects", + "x-ms-visibility": "internal" + }, + "values": { + "$ref": "#/definitions/ProjectArray" + } + } + }, + "Project": { + "type": "object", + "properties": { + "id": { + "description": "The unique Id of the project.", + "type": "string", + "x-ms-summary": "Project Id", + "x-ms-visibility": "advanced" + }, + "key": { + "description": "The unique key of the project.", + "type": "string", + "x-ms-summary": "Project Key", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Project Name", + "description": "Name of the project.", + "x-ms-visibility": "important" + }, + "projectTypeKey": { + "description": "The unique key of the project type.", + "type": "string", + "x-ms-summary": "Project Type Key", + "x-ms-visibility": "advanced" + } + } + }, + "ProjectArray": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "description": "The unique Id of the project.", + "type": "string", + "x-ms-summary": "Project Id", + "x-ms-visibility": "advanced" + }, + "key": { + "description": "The unique key of the project.", + "type": "string", + "x-ms-summary": "Project Key", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Project Name", + "description": "Name of the project.", + "x-ms-visibility": "important" + }, + "projectTypeKey": { + "description": "The unique key of the project type.", + "type": "string", + "x-ms-summary": "Project Type Key", + "x-ms-visibility": "advanced" + } + } + } + }, + "PartialIssue": { + "type": "object", + "properties": { + "id": { + "description": "The unique Id of the Issue.", + "type": "string", + "x-ms-summary": "Issue Id", + "x-ms-visibility": "advanced" + }, + "key": { + "description": "The unique key of the issue.", + "type": "string", + "x-ms-summary": "Issue Key", + "x-ms-visibility": "advanced" + }, + "fields": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "x-ms-summary": "Summary" + }, + "issuetype": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Issue Type Id", + "x-ms-visibility": "advanced" + }, + "description": { + "type": "string", + "x-ms-summary": "Issue Type Description", + "x-ms-visibility": "advanced" + }, + "iconUrl": { + "type": "string", + "x-ms-summary": "Issue Type Icon URL", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Issue Type Name", + "x-ms-visibility": "important" + } + }, + "x-ms-summary": "Issue Type" + }, + "status": { + "type": "object", + "properties": { + "description": { + "type": "string", + "x-ms-summary": "Status Description" + }, + "iconUrl": { + "type": "string", + "x-ms-summary": "Status Icon URL" + }, + "name": { + "type": "string", + "x-ms-summary": "Status Name" + }, + "id": { + "type": "string", + "x-ms-summary": "Status Id" + }, + "statusCategory": { + "type": "object", + "properties": { + "id": { + "format": "int32", + "type": "integer", + "x-ms-summary": "Status Category Id" + }, + "key": { + "type": "string", + "x-ms-summary": "Status Category Key" + }, + "colorName": { + "type": "string", + "x-ms-summary": "Status Category Color Name" + }, + "name": { + "type": "string", + "x-ms-summary": "Status Category Name" + } + }, + "x-ms-summary": "Status Category" + } + }, + "x-ms-summary": "Status" + }, + "priority": { + "type": "object", + "properties": { + "iconUrl": { + "type": "string", + "x-ms-summary": "Priority Icon URL", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Priority Name", + "x-ms-visibility": "advanced" + }, + "id": { + "type": "string", + "x-ms-summary": "Priority Id", + "x-ms-visibility": "advanced" + } + }, + "x-ms-summary": "Priority" + } + }, + "x-ms-summary": "Fields" + } + } + }, + "FullIssue": { + "type": "object", + "x-ms-summary": "Issue", + "properties": { + "id": { + "description": "Unique id of the issue.", + "type": "string", + "x-ms-summary": "Issue Id", + "x-ms-visibility": "advanced" + }, + "key": { + "description": "Unique key of the issue.", + "type": "string", + "x-ms-summary": "Issue Key", + "x-ms-visibility": "advanced" + }, + "self": { + "description": "Browse to the issue using this URL.", + "type": "string", + "x-ms-summary": "Issue URL", + "x-ms-visibility": "important" + }, + "fields": { + "type": "object", + "properties": { + "issuetype": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Issue Type Id", + "description": "Unique id of the issue type.", + "x-ms-visibility": "advanced" + }, + "description": { + "type": "string", + "x-ms-summary": "Issue Type Description", + "description": "Verbose title of the issue type.", + "x-ms-visibility": "advanced" + }, + "iconUrl": { + "type": "string", + "x-ms-summary": "Issue Type Icon URL", + "description": "Icon associated with the issue type.", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Issue Type Name", + "description": "Title of the issue type.", + "x-ms-visibility": "advanced" + } + } + }, + "timespent": { + "description": "The time spent on an issue", + "type": "integer", + "format": "int32", + "x-ms-summary": "Time Spent", + "x-ms-visibility": "advanced" + }, + "project": { + "type": "object", + "properties": { + "id": { + "description": "The unique id of the project.", + "type": "string", + "x-ms-summary": "Project Id", + "x-ms-visibility": "advanced" + }, + "key": { + "description": "The unique key of the project.", + "type": "string", + "x-ms-summary": "Project Key", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Project Name", + "description": "Title of the project.", + "x-ms-visibility": "important" + }, + "projectTypeKey": { + "description": "Unique key of the project type.", + "type": "string", + "x-ms-summary": "Project Type Key", + "x-ms-visibility": "advanced" + } + } + }, + "aggregatetimespent": { + "description": "The aggregate time spent on sub-tasks.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Aggregate Time Spent", + "x-ms-visibility": "advanced" + }, + "resolution": { + "type": "object", + "properties": { + "self": { + "type": "string", + "x-ms-summary": "URL of the issue resolution" + }, + "id": { + "type": "string", + "x-ms-summary": "ID of the issue resolution" + }, + "description": { + "type": "string", + "x-ms-summary": "Description of the issue resolution" + }, + "name": { + "type": "string", + "x-ms-summary": "Name fo the issue resolution" + } + }, + "x-ms-summary": "Resolution", + "description": "Type of resolution the issue has achieved.", + "x-ms-visibility": "advanced" + }, + "resolutiondate": { + "format": "date-time", + "type": "string", + "x-ms-summary": "Resolution Date", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "x-ms-visibility": "advanced" + }, + "workratio": { + "format": "int32", + "description": "The percentage of work logged vs the issue estimate.", + "type": "integer", + "x-ms-summary": "Work Ratio", + "x-ms-visibility": "advanced" + }, + "created": { + "format": "date-time", + "type": "string", + "x-ms-summary": "Created Date", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "x-ms-visibility": "advanced" + }, + "priority": { + "type": "object", + "properties": { + "iconUrl": { + "type": "string", + "x-ms-summary": "Priority Icon URL", + "description": "Icon associated with the issue priority.", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Priority Name", + "description": "Title of the priority.", + "x-ms-visibility": "advanced" + }, + "id": { + "type": "string", + "x-ms-summary": "Priority Id", + "description": "Id of the issue priority.", + "x-ms-visibility": "advanced" + } + } + }, + "timeestimate": { + "format": "int32", + "description": "Time remaining estimated time in seconds.", + "type": "integer", + "x-ms-summary": "Time Estimate", + "x-ms-visibility": "advanced" + }, + "aggregatetimeoriginalestimate": { + "description": "The original sum of all sub-task time estimates in seconds.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Aggregate Time Estimate", + "x-ms-visibility": "advanced" + }, + "assignee": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Assignee Id", + "description": "Person a issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Assignee Key", + "description": "User key of the person issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Assignee Email", + "description": "Email of the person issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Assignee Display Name", + "description": "Display name of the person issue is assigned to.", + "x-ms-visibility": "advanced" + } + } + }, + "updated": { + "format": "date-time", + "type": "string", + "x-ms-summary": "Updated Date-Time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "x-ms-visibility": "advanced" + }, + "status": { + "type": "object", + "properties": { + "description": { + "type": "string", + "x-ms-summary": "Status Description", + "description": "Issue status.", + "x-ms-visibility": "advanced" + }, + "iconUrl": { + "type": "string", + "x-ms-summary": "Status Icon URL", + "description": "Issue status.", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Status Name", + "description": "Issue status.", + "x-ms-visibility": "important" + }, + "id": { + "type": "string", + "x-ms-summary": "Status Id", + "description": "Issue status.", + "x-ms-visibility": "advanced" + }, + "statusCategory": { + "type": "object", + "properties": { + "id": { + "format": "int32", + "type": "integer", + "x-ms-summary": "Status Category Id", + "description": "Issue status category.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Status Category Key", + "description": "Issue status category.", + "x-ms-visibility": "advanced" + }, + "colorName": { + "type": "string", + "x-ms-summary": "Status Category Color Name", + "description": "Issue status category.", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "x-ms-summary": "Status Category Name", + "description": "Issue status category.", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "timeoriginalestimate": { + "description": "The original time estimate in seconds.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Original Time Estimate", + "x-ms-visibility": "advanced" + }, + "description": { + "type": "string", + "x-ms-summary": "Description", + "description": "Issue description.", + "x-ms-visibility": "important" + }, + "aggregatetimeestimate": { + "format": "int32", + "description": "Time sum of all sub-tasks remaining estimated time in seconds.", + "type": "integer", + "x-ms-summary": "Aggregate Time Estimate", + "x-ms-visibility": "advanced" + }, + "summary": { + "type": "string", + "x-ms-summary": "Summary", + "description": "Title of the issue.", + "x-ms-visibility": "important" + }, + "components": { + "type": "array", + "x-ms-summary": "Components", + "description": "A system field that is multiple values addressed by 'name' (e.g. Active Directory, Network Switch).", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Component Id" + }, + "name": { + "type": "string", + "x-ms-summary": "Component Name" + } + } + } + }, + "creator": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Creator Id", + "description": "User who created the issue.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Creator Key", + "description": "Unique key of the user who created the issue.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Creator Email", + "description": "Email of the user who created the issue.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Creator Display Name", + "description": "Name of the user who created the issue.", + "x-ms-visibility": "advanced" + } + } + }, + "reporter": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Reporter Id", + "description": "User who reported the issue.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Reporter Key", + "description": "Unique key of the user who reported the issue.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Reporter Email", + "description": "Email of the user who reported the issue.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Reporter Display Name", + "description": "Display name of the user who reported the issue.", + "x-ms-visibility": "advanced" + } + } + }, + "aggregateprogress": { + "type": "object", + "properties": { + "progress": { + "format": "int32", + "description": "The total progress completed of all sub-tasks in seconds.", + "type": "integer", + "x-ms-summary": "Aggregate Progress Completed", + "x-ms-visibility": "advanced" + }, + "total": { + "format": "int32", + "description": "The total sum of all estimated sub-task effort.", + "type": "integer", + "x-ms-summary": "Aggregate Estimated Effort", + "x-ms-visibility": "advanced" + }, + "percent": { + "format": "int32", + "description": "The percent of aggregate completed progress in relation to estimated effort.", + "type": "integer", + "x-ms-summary": "Aggregate Progress Percent", + "x-ms-visibility": "advanced" + } + } + }, + "duedate": { + "format": "date-time", + "type": "string", + "x-ms-summary": "Due Date-Time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "x-ms-visibility": "advanced" + }, + "progress": { + "type": "object", + "properties": { + "progress": { + "format": "int32", + "description": "The progress complete in seconds.", + "type": "integer", + "x-ms-summary": "Progress Completed", + "x-ms-visibility": "advanced" + }, + "total": { + "format": "int32", + "description": "The estimated effort.", + "type": "integer", + "x-ms-summary": "Estimated Effort", + "x-ms-visibility": "advanced" + }, + "percent": { + "format": "int32", + "description": "The percent of completed progress in relation to estimated effort.", + "type": "integer", + "x-ms-summary": "Progress Percent", + "x-ms-visibility": "advanced" + } + } + }, + "customfield_10119": { + "description": "Epic name is required for epic issue type. This field matches 'customfield_10011' field on JIRA server.", + "x-ms-summary": "Epic Name (customfield_10011)", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "Creator": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Creator Id", + "description": "Person who created the issue.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Creator Key", + "description": "Unique key of the person who created the issue.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Creator Email", + "description": "Email of the person who created the issue.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Creator Display Name", + "description": "Display name of the person who created the issue.", + "x-ms-visibility": "advanced" + } + } + }, + "Assignee": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Assignee Id", + "description": "Person whom the issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Assignee Key", + "description": "Unique key of the person whom the issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Assignee Email", + "description": "Email of the person whom the issue is assigned to.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Assignee Display Name", + "description": "Display name of the person whom the issue is assigned to.", + "x-ms-visibility": "advanced" + } + } + }, + "User": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Id", + "description": "Id of the JIRA user.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Key", + "description": "Unique key of the JIRA user.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email of the JIRA user.", + "x-ms-visibility": "important" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Display Name", + "description": "Display name of the JIRA user.", + "x-ms-visibility": "important" + } + } + }, + "UserList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "accountId": { + "type": "string", + "x-ms-summary": "Id", + "description": "Id of the project member.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Key", + "description": "Unique key associated with the user.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Email", + "description": "Email address of the user.", + "x-ms-visibility": "important" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Display Name", + "description": "Full name of the user.", + "x-ms-visibility": "important" + } + } + } + }, + "Reporter": { + "type": "object", + "properties": { + "AccountId": { + "type": "string", + "x-ms-summary": "Reporter Id", + "description": "Person who reported the issue.", + "x-ms-visibility": "advanced" + }, + "key": { + "type": "string", + "x-ms-summary": "Reporter Key", + "description": "Unique key of the person who reported the issue.", + "x-ms-visibility": "advanced" + }, + "emailAddress": { + "type": "string", + "x-ms-summary": "Reporter Email", + "description": "Email of the person who reported the issue.", + "x-ms-visibility": "advanced" + }, + "displayName": { + "type": "string", + "x-ms-summary": "Reporter Display Name", + "description": "Display name of the person who reported the issue.", + "x-ms-visibility": "advanced" + } + } + }, + "IssueTypes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + }, + "CreateIssueRequest": { + "required": [ + "fields" + ], + "type": "object", + "properties": { + "fields": { + "required": [ + "summary", + "issuetype" + ], + "type": "object", + "properties": { + "issuetype": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Issue Type Id", + "description": "Pick an issue type.", + "x-ms-dynamic-values": { + "operationId": "ListIssueTypes", + "parameters": { + "projectKey": { + "parameter": "projectKey" + } + }, + "value-path": "id", + "value-title": "name" + } + } + } + }, + "summary": { + "type": "string", + "x-ms-summary": "Summary", + "description": "Brief description of the issue." + }, + "components": { + "type": "string", + "x-ms-summary": "Components", + "description": "A system field that is multiple values addressed by 'name' (e.g. Active Directory, Network Switch)." + }, + "reporter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Reporter Id", + "description": "Person reporting the issue.", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "ListProjectUsers", + "parameters": { + "projectKey": { + "parameter": "projectKey" + } + }, + "value-path": "accountId", + "value-title": "displayName" + } + } + } + }, + "description": { + "description": "A detailed description of the issue.", + "type": "string", + "x-ms-summary": "Description" + }, + "priority": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Priority Id", + "description": "Pick a priority for the issue.", + "x-ms-dynamic-values": { + "operationId": "ListPriorityTypes", + "value-path": "id", + "value-title": "name" + } + } + }, + "x-ms-visibility": "advanced" + }, + "labels": { + "description": "Enter a comma separated list of labels", + "type": "string", + "x-ms-summary": "Labels", + "x-ms-visibility": "advanced" + }, + "assignee": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Assignee Id", + "description": "Agent the issue is assigned to.", + "x-ms-dynamic-values": { + "operationId": "ListAssignableUsers", + "parameters": { + "projectKey": { + "parameter": "projectKey" + } + }, + "value-path": "accountId", + "value-title": "displayName" + } + } + }, + "x-ms-visibility": "advanced" + }, + "parent": { + "type": "object", + "properties": { + "id": { + "description": "Set the parent for a sub-task.", + "type": "string", + "x-ms-summary": "Parent Issue Id" + } + }, + "x-ms-visibility": "advanced" + }, + "customfield_10119": { + "description": "Epic name is required for epic issue type. This field matches 'customfield_10011' field on JIRA server.", + "type": "string", + "x-ms-summary": "Epic Name (customfield_10011)", + "x-ms-visibility": "advanced" + } + } + } + }, + "x-ms-test-value": { + "fields": { + "summary": "test issue", + "issuetype": { + "id": "10101" + } + } + } + }, + "UpdateIssueRequest": { + "type": "object", + "properties": { + "fields": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "x-ms-summary": "Summary", + "description": "Brief description of the issue." + }, + "description": { + "description": "A detailed description of the issue.", + "type": "string", + "x-ms-summary": "Description" + }, + "reporter": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Reporter Id", + "description": "Person reporting the issue.", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "ListProjectUsers", + "parameters": { + "projectKey": { + "parameter": "issueKey" + } + }, + "value-path": "accountId", + "value-title": "displayName" + } + } + } + }, + "priority": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Priority Id", + "description": "Pick a priority for the issue.", + "x-ms-dynamic-values": { + "operationId": "ListPriorityTypes", + "value-path": "id", + "value-title": "name" + } + } + }, + "x-ms-visibility": "advanced" + }, + "labels": { + "description": "Enter a comma separated list of labels.", + "type": "string", + "x-ms-summary": "Labels", + "x-ms-visibility": "advanced" + }, + "assignee": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Assignee Id", + "description": "Agent the issue is assigned to.", + "x-ms-dynamic-values": { + "operationId": "ListAssignableUsers", + "parameters": { + "projectKey": { + "parameter": "issueKey" + } + }, + "value-path": "accountId", + "value-title": "displayName" + } + } + }, + "x-ms-visibility": "advanced" + }, + "parent": { + "type": "object", + "properties": { + "id": { + "description": "Set the parent for a sub-task.", + "type": "string", + "x-ms-summary": "Parent Issue Id" + } + }, + "x-ms-visibility": "advanced" + } + } + } + }, + "x-ms-test-value": { + "fields": { + "description": "some description" + } + } + }, + "StatusList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Status Id" + }, + "name": { + "type": "string", + "x-ms-summary": "Status Name" + } + } + } + }, + "PriorityList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + }, + "Comment": { + "required": [ + "body" + ], + "type": "object", + "properties": { + "body": { + "type": "string", + "x-ms-summary": "Comment", + "description": "Body of the comment." + } + }, + "x-ms-test-value": { + "body": "here is a comment" + } + }, + "CommentResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Comment Id", + "description": "Unique id of the comment.", + "x-ms-visibility": "advanced" + }, + "body": { + "type": "string", + "x-ms-summary": "Comment Body", + "description": "Body of the comment.", + "x-ms-visibility": "important" + }, + "created": { + "format": "date-time", + "type": "string", + "x-ms-summary": "Created Date-Time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "x-ms-visibility": "advanced" + } + } + } + }, + "tags": [ + { + "name": "Issues", + "description": "This resource represents Jira issues. Use it to edit issues." + }, + { + "name": "Issue attachments", + "description": "This resource represents issue attachments and the attachment settings for Jira. Use it to add an attachment." + }, + { + "name": "Projects", + "description": "This resource represents projects. Use this resource to update and delete projects." + }, + { + "name": "Project categories", + "description": "This resource represents project categories. Use it to create, and delete project categories as well as obtain a list of all project categories." + }, + { + "name": "Tasks", + "description": "This resource represents a [long-running asynchronous tasks](#async-operations). Use it to obtain details about the progress of a long-running task or cancel a long-running task." + }, + { + "name": "Users", + "description": "This resource represent users. Use this resource to get a User." + } + ], + "securityDefinitions": { + "Authorization": { + "type": "basic" + } + }, + "x-ms-capabilities": { + "testConnection": { + "operationId": "ListProjects_V2" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.atlassian.com/software/jira" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.atlassian.com/legal/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "IT Operations;Collaboration" + } + ] + } \ No newline at end of file diff --git a/certified-connectors/JIRA/apiProperties.json b/certified-connectors/JIRA/apiProperties.json new file mode 100644 index 0000000000..ca2280f401 --- /dev/null +++ b/certified-connectors/JIRA/apiProperties.json @@ -0,0 +1,233 @@ +{ + "properties": { + "connectionParameters": { + "jirainstance": { + "type": "string", + "uiDefinition": { + "displayName": "JIRA instance", + "description": "The url where your JIRA instance is hosted (must support https). ", + "tooltip": "Provide your JIRA domain (eg. myjirainstance.atlassian.net or mycompany.com:443/jira)", + "constraints": { + "required": "true" + } + } + }, + "username": { + "type": "string", + "uiDefinition": { + "displayName": "Username or Email", + "description": "Your JIRA username. For JIRA Cloud you need to use a valid email address.", + "tooltip": "Provide your username", + "constraints": { + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "API token", + "description": "Your API token (https://id.atlassian.com/manage/api-tokens).", + "tooltip": "Provide your API token", + "constraints": { + "required": "true" + } + } + } + }, + "iconBrandColor": "#1F4F81", + "capabilities": [ + "actions", + "triggers" + ], + "policyTemplateInstances": [ + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - CreateIssue", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "CreateIssue" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - AddComment", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue/{issueKey}/comment", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "AddComment" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListProjects_V2", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/project/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListProjects_V2" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListProjects/CreateProject", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/project", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListProjects", + "CreateProject" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - CreateIssueV2", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "CreateIssueV2" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - GetIssue/UpdateIssue", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue/{issueKey}", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "GetIssue", + "UpdateIssue" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListIssueTypes", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue/createmeta", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListIssueTypes" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListIssueTypesFields", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/issue/createmeta", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListIssueTypesFields" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListStatuses", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/project/{projectId}/statuses", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListStatuses" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListProjectUsers", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/user/permission/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListProjectUsers" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListAssignableUsers", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/user/assignable/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListAssignableUsers" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - ListPriorityTypes", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/priority", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "ListPriorityTypes" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - OnNewIssue", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/new_issue_trigger/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "OnNewIssue" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - OnCloseIssue", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/close_issue_trigger/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "OnCloseIssue" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - OnUpdateIssue", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/update_issue_trigger/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "OnUpdateIssue" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Request - OnNewIssueJQL", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/2/new_issue_jql_trigger/search", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "OnNewIssueJQL" + ] + } + }, + { + "templateId": "dynamichosturl", + "title": "Set JIRA Address", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "https://@connectionParameters('jirainstance').atlassian.net/rest/api/" + } + } + ], + "publisher": "Microsoft", + "stackOwner": "Microsoft" + } + } \ No newline at end of file diff --git a/certified-connectors/JIRA/readme.md b/certified-connectors/JIRA/readme.md new file mode 100644 index 0000000000..40523809a9 --- /dev/null +++ b/certified-connectors/JIRA/readme.md @@ -0,0 +1,23 @@ +# JIRA +JIRA is a software development tool for agile teams to plan, track, and release world-class software. Connecting JIRA issues to the rest of your tools helps break down barriers and unleash the potential of your team. + +## Prerequisites +To use this integration, you will need a Jira account. + +## Obtaining Credentials +For authentication, you need to use an API token. To get a token, go to [this link](https://id.atlassian.com/manage/api-tokens). + +## Known Issues and Limitations +- Basic authentication with passwords is deprecated. For more information, see [jira API documentation](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-basic-auth-and-cookie-based-auth/). +- JIRA Server behind a firewall or with REST API disabled is not supported. +- When creating a connection to JIRA Cloud, you need to use a valid email address for username. Otherwise, the connection will not be established, although it looks like it's successful. +- Usernames in JIRA Cloud are deprecated and cannot be used anymore for fields such as Reporter. For more information, see [Atlassian Cloud documentation](https://developer.atlassian.com/cloud/jira/platform/deprecation-notice-user-privacy-api-migration-guide/). +- As per the [Jira API documentation](https://developer.atlassian.com/cloud/jira/platform/rest/v2/#api-rest-api-2-project-search-get), jira API returns maximum 50 projects, so top 50 projects will be listed under dropdown in actions/triggers. +- Pagination was implemented on [Get projects](#get-projects). It will return all projects. +- The [Create a new issue (V2)](#create-a-new-issue-(v2)-(preview)) action supports only simple field types such as 'string', 'number', 'date', and 'datetime' in the dynamic schema. If project configuration has a required fields of complex data types, the operation will fail with the error: "Field '{key}' of type '{type}' is not supported". To workaround this, please change project fields configuration and make these fields not required. +- The `Project` property expected by the connector's actions and triggers should be filled using one of the following options: + - Pick a project from the project picker. Note that JIRA Cloud connections show only top 50 projects in the picker. + - Use an output from the [Get projects](#get-projects) action (project's `Project Key` property). + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. From c3a2f48d88f4bcc29e49817474e1654d10380ce6 Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Mon, 18 Oct 2021 23:45:01 +0300 Subject: [PATCH 064/219] Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) (#1191) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * Initial version of Spring Global connector * Code improvements * Initial version of Spring Global connector (with improvements according to code review) * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * Merge from Microsoft branch * Revert chanages to merge * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../Spring Global/apiProperties.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/certified-connectors/Spring Global/apiProperties.json b/certified-connectors/Spring Global/apiProperties.json index f541005c47..abe4ab13d7 100644 --- a/certified-connectors/Spring Global/apiProperties.json +++ b/certified-connectors/Spring Global/apiProperties.json @@ -29,7 +29,20 @@ } }, "iconBrandColor": "#fefefe", + "scriptOperations": [ + "GetExecutionById", + "GetSurveyPublicationSchema" + ], "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "Set WebAPI URL", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('baseurl')" + } + } + ], "publisher": "Spring Global", "stackOwner": "Spring Global" } From 228c1daaea0551a30ee109e6b3055f99e80d3b49 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Mon, 18 Oct 2021 23:48:13 +0300 Subject: [PATCH 065/219] added a new action - Delete submission (#1185) --- certified-connectors/Plumsail Forms/Readme.md | 3 ++ .../Plumsail Forms/apiDefinition.swagger.json | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/certified-connectors/Plumsail Forms/Readme.md b/certified-connectors/Plumsail Forms/Readme.md index 048e3d06af..743abb6fe9 100644 --- a/certified-connectors/Plumsail Forms/Readme.md +++ b/certified-connectors/Plumsail Forms/Readme.md @@ -16,3 +16,6 @@ paconn create --api-def apiDefinition.swagger.json --api-prop apiProperties.json ## Supported Operations * `Form is submitted`: a trigger that fires when the specified form is submitted +* `Delete submission`: an action that deletes the specified submission +* `Download attachment`: an action that downloads the specified attachment +* `Delete attachment`: an action that deletes the specified attachment diff --git a/certified-connectors/Plumsail Forms/apiDefinition.swagger.json b/certified-connectors/Plumsail Forms/apiDefinition.swagger.json index 8e37d34bb4..9b0a7bc110 100644 --- a/certified-connectors/Plumsail Forms/apiDefinition.swagger.json +++ b/certified-connectors/Plumsail Forms/apiDefinition.swagger.json @@ -138,6 +138,51 @@ "description": "Returns an array of public forms" } }, + "/api/forms/{formId}/submissions/{submissionId}": { + "delete": { + "tags": [ + "FormSubmissions" + ], + "operationId": "DeleteSubmission", + "consumes": [], + "produces": [], + "parameters": [ + { + "name": "formId", + "in": "path", + "required": true, + "type": "string", + "format": "uuid", + "x-ms-dynamic-values": { + "operationId": "GetPublicForms", + "value-path": "id", + "value-title": "name", + "parameters": { + "version": "2" + } + }, + "x-ms-summary": "Form", + "description": "The form which submission you want to delete." + }, + { + "name": "submissionId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Submission ID", + "description": "Submission ID" + } + ], + "responses": { + "204": { + "description": "Success" + } + }, + "x-ms-visibility": "important", + "summary": "Delete submission", + "description": "Deletes an form submission by its ID" + } + }, "/api/flow/schema/form": { "get": { "tags": [ From f2e1e449a40127118a905643386f406269fe1300 Mon Sep 17 00:00:00 2001 From: depfeife-msft <80135000+depfeife-msft@users.noreply.github.com> Date: Mon, 18 Oct 2021 13:50:41 -0700 Subject: [PATCH 066/219] Users/depfeife/open source docusigndemo (#1177) * Open-source DocuSignDemo * Fix the bug * Removed the clientId and add customParameters * Fixes to validation * Address comments * Remove all the test values from the swagger --- .../DocuSignDemo/apiDefinition.swagger.json | 1636 +++++++++++++++++ .../DocuSignDemo/apiProperties.json | 41 + certified-connectors/DocuSignDemo/readme.md | 19 + certified-connectors/DocuSignDemo/script.csx | 534 ++++++ 4 files changed, 2230 insertions(+) create mode 100644 certified-connectors/DocuSignDemo/apiDefinition.swagger.json create mode 100644 certified-connectors/DocuSignDemo/apiProperties.json create mode 100644 certified-connectors/DocuSignDemo/readme.md create mode 100644 certified-connectors/DocuSignDemo/script.csx diff --git a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json new file mode 100644 index 0000000000..4c556fe885 --- /dev/null +++ b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json @@ -0,0 +1,1636 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "DocuSign Demo", + "description": "DocuSign helps organizations connect and automate how they prepare, sign, act on, and manage agreements. The DocuSign Demo connector connects only to DocuSign Demo environments but offers the same functionality as the regular DocuSign connector. Any documents in a DocuSign Demo environment are not legally binding. For all non-demo uses, use the regular DocuSign connector.", + "x-ms-deployment-version": "1.0.0", + "x-ms-api-annotation": { + "status": "Preview" + }, + "contact": { + "name": "docusign", + "url": "https://support.docusign.com" + } + }, + "host": "demo.docusign.net", + "basePath": "/restapi/v2", + "schemes": [ + "https" + ], + "paths": { + "/accounts/{accountId}/connect": { + "post": { + "summary": "When an envelope status changes (Connect)", + "description": "Triggers a new flow when an envelope status changes.", + "operationId": "CreateHookEnvelope", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WebhookRequest" + } + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "type": "object" + } + } + }, + "deprecated": false, + "x-ms-trigger": "single", + "x-ms-trigger-hint": "To see it work now, send an envelope.", + "x-ms-visibility": "important", + "x-ms-no-generic-test": true + }, + "x-ms-notification-content": { + "description": "Details for Webhook", + "schema": { + "$ref": "#/definitions/WebhookEnvelopeResponse" + } + } + }, + "/accounts/{accountId}/connect/{connectId}": { + "delete": { + "summary": "Delete hook", + "description": "Delete a hook.", + "operationId": "DeleteHook", + "parameters": [ + { + "name": "accountId", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "connectId", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-no-generic-test": true + } + }, + "/webhook_response": { + "post": { + "operationId": "WebhookResponse", + "parameters": [ + { + "name": "logicAppsUri", + "in": "query", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-no-generic-test": true + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}": { + "get": { + "summary": "Get envelope documents", + "description": "Get envelope documents.", + "operationId": "GetDocuments", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert test value", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + }, + { + "name": "documentId", + "in": "path", + "description": "Document id", + "required": true, + "x-ms-summary": "Document", + "x-ms-visibility": "internal", + "x-ms-test-value": "combined", + "type": "string", + "default": "combined" + }, + { + "name": "certificate", + "in": "query", + "description": "When set to false, the envelope signing certificate is removed from the download.", + "required": true, + "x-ms-summary": "Certificate of completion", + "x-ms-test-value": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/GetDocumentsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + } + }, + "/trigger/accounts/{accountId}/envelopes": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "When an envelope status changes", + "description": "Triggers a new flow when an envelope status changes.", + "operationId": "OnEnvelopeStatusChanges", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "status", + "in": "query", + "required": false, + "x-ms-summary": "Envelope status", + "x-ms-test-value": "Created", + "type": "string", + "enum": [ + "Any", + "Voided", + "Created", + "Deleted", + "Sent", + "Delivered", + "Signed", + "Completed", + "Declined", + "TimedOut", + "Template", + "Processing" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OnEnvelopeStatusChangesResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, change the status of an envelope." + } + }, + "/accounts/{accountId}/envelopes": { + "post": { + "tags": [ + "DocuSign" + ], + "summary": "Send envelope using template", + "description": "Send a new envelope using a specified template.", + "operationId": "SendEnvelope", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "templateId", + "in": "query", + "description": "Template id", + "required": true, + "x-ms-summary": "Template", + "x-ms-test-value": "insert template id", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetEnvelopeTemplates", + "parameters": { + "accountId": { + "parameter": "accountId" + } + }, + "value-collection": "envelopeTemplates", + "value-path": "templateId", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "status", + "in": "query", + "description": "Envelope status", + "required": true, + "x-ms-summary": "Envelope status", + "x-ms-test-value": "Created", + "x-ms-visibility": "important", + "type": "string", + "enum": [ + "Sent", + "Created" + ] + }, + { + "name": "signers", + "in": "body", + "description": "The signers of the document.", + "required": true, + "schema": { + "$ref": "#/definitions/DynamicSigners" + }, + "x-ms-visibility": "important", + "x-ms-summary": "Signers" + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SendEnvelopeResponse" + } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "important" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}": { + "put": { + "tags": [ + "DocuSign" + ], + "summary": "Send envelope", + "description": "Send an existing envelope.", + "operationId": "SendDraftEnvelope", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SendDraftEnvelopeResponse" + } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "advanced" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/recipients": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List recipients", + "description": "List recipients for a specific envelope.", + "operationId": "GetRecipientStatus", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } + }, + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" + }, + "folderId": { + "parameter": "folderId" + } + }, + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + }, + "post": { + "tags": [ + "DocuSign" + ], + "summary": "Add recipient to an envelope", + "description": "Add recipient to an envelope", + "operationId": "AddRecipientToEnvelope", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + }, + { + "name": "AddRecipientToEnvelopeName", + "in": "query", + "description": "The name of the recipient.", + "required": true, + "x-ms-summary": "Signer Name", + "x-ms-test-value": "test name", + "x-ms-visibility": "important", + "type": "string" + }, + { + "name": "AddRecipientToEnvelopeEmail", + "in": "query", + "description": "The email of the recipient.", + "required": true, + "x-ms-summary": "Signer Email", + "x-ms-test-value": "test@email.com", + "x-ms-visibility": "important", + "type": "string" + }, + { + "name": "newRecipient", + "in": "body", + "description": "New recipient", + "required": true, + "schema": { + "$ref": "#/definitions/AddRecipientToEnvelopeRequest" + }, + "x-ms-summary": "Data for a recipient" + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-no-generic-test": true + }, + "delete": { + "tags": [ + "DocuSign" + ], + "summary": "Remove recipient from an envelope", + "description": "Remove recipient from an envelope", + "operationId": "RemoveRecipientFromEnvelope", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } + }, + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" + }, + "folderId": { + "parameter": "folderId" + } + }, + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" + }, + "type": "string" + }, + { + "name": "RemoveRecipientFromEnvelopeRecipientId", + "in": "query", + "description": "Recipient id", + "required": true, + "x-ms-summary": "Recipient", + "x-ms-test-value": "insert recipient id", + "x-ms-dynamic-values": { + "operationId": "GetRecipientStatus", + "parameters": { + "accountId": { + "parameter": "accountId" + }, + "folderId": { + "parameter": "folderId" + }, + "envelopeId": { + "parameter": "envelopeId" + } + }, + "value-collection": "signers", + "value-path": "recipientId", + "value-title": "roleName" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" + } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "advanced" + } + }, + "/login_information": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "Login", + "description": "Login", + "operationId": "GetLoginAccounts", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetLoginAccountsResponse" + } + } + }, + "deprecated": false + } + }, + "/accounts/{accountId}/templates": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List templates", + "description": "List templates for a specific account.", + "operationId": "GetEnvelopeTemplates", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListTemplatesResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/folders": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List folders", + "description": "List folders for a specific account.", + "operationId": "GetFolderList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListFoldersResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/folders/{folderId}": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List envelopes", + "description": "List envelopes under a particular folder.", + "operationId": "GetFolderEnvelopeList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "folderId", + "in": "path", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } + }, + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListEnvelopesResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/documents": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List documents", + "description": "List documents in an envelope.", + "operationId": "GetEnvelopeDocumentList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } + }, + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" + }, + "folderId": { + "parameter": "folderId" + } + }, + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListDocumentsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/signers/accounts/{accountId}/templates/{templateId}/recipients": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "Get the signers of a template in dynamic schema format", + "description": "Get the signers of a template in dynamic schema format.", + "operationId": "GetDynamicSigners", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account to get the signers for.", + "required": true, + "x-ms-summary": "Account Id", + "x-ms-test-value": "insert account id", + "type": "string" + }, + { + "name": "templateId", + "in": "path", + "description": "Template to get the signers for.", + "required": true, + "x-ms-summary": "Template Id", + "x-ms-test-value": "insert template id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "internal" + } + } + }, + "definitions": { + "WebhookRequest": { + "required": [ + "allUsers", + "allowEnvelopePublish", + "includeDocumentFields", + "includeEnvelopeVoidReason", + "includeTimeZoneInformation", + "requiresAcknowledgement", + "urlToPublishTo", + "name", + "envelopeEvents", + "includeSenderAccountasCustomField" + ], + "type": "object", + "properties": { + "allUsers": { + "default": "true", + "type": "string", + "x-ms-summary": "allUsers", + "x-ms-visibility": "internal" + }, + "allowEnvelopePublish": { + "default": "true", + "type": "string", + "x-ms-summary": "allowEnvelopePublish", + "x-ms-visibility": "internal" + }, + "includeDocumentFields": { + "default": "true", + "type": "string", + "x-ms-summary": "includeDocumentFields", + "x-ms-visibility": "internal" + }, + "includeEnvelopeVoidReason": { + "default": "true", + "type": "string", + "x-ms-summary": "includeEnvelopeVoidReason", + "x-ms-visibility": "internal" + }, + "includeTimeZoneInformation": { + "default": "true", + "type": "string", + "x-ms-summary": "includeTimeZoneInformation", + "x-ms-visibility": "internal" + }, + "requiresAcknowledgement": { + "default": "true", + "type": "string", + "x-ms-summary": "requiresAcknowledgement", + "x-ms-visibility": "internal" + }, + "urlToPublishTo": { + "type": "string", + "x-ms-summary": "urlToPublishTo", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "name": { + "type": "string", + "x-ms-summary": "Connect name", + "x-ms-visibility": "important" + }, + "envelopeEvents": { + "enum": [ + "Sent", + "Delivered", + "Completed", + "Declined", + "Voided" + ], + "type": "string", + "x-ms-summary": "Envelope event", + "x-ms-visibility": "important" + }, + "includeSenderAccountasCustomField": { + "default": "true", + "type": "string", + "x-ms-summary": "includeSenderAccountasCustomField", + "x-ms-visibility": "internal" + } + } + }, + "WebhookEnvelopeResponse": { + "type": "object", + "properties": { + "customFields": { + "description": "Key-value pairs representing the custom fields for this envelope (where key is the field name, and value is the field value).", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-visibility": "important", + "x-ms-summary": "Custom Fields" + }, + "DocuSignEnvelopeInformation": { + "type": "object", + "properties": { + "EnvelopeStatus": { + "description": "EnvelopeStatus", + "type": "object", + "properties": { + "Created": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Envelope Created Date-Time", + "x-ms-visibility": "advanced" + }, + "Email": { + "type": "string", + "x-ms-summary": "Sender's Email Address", + "x-ms-visibility": "important" + }, + "EnvelopeID": { + "type": "string", + "x-ms-summary": "Envelope ID", + "x-ms-visibility": "important" + }, + "SenderIPAddress": { + "type": "string", + "x-ms-summary": "Sender's IP Address", + "x-ms-visibility": "advanced" + }, + "Sent": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Envelope Sent Date-Time", + "x-ms-visibility": "important" + }, + "Status": { + "type": "string", + "x-ms-summary": "Envelope Status", + "x-ms-visibility": "important" + }, + "Subject": { + "type": "string", + "x-ms-summary": "Subject", + "x-ms-visibility": "important" + }, + "UserName": { + "type": "string", + "x-ms-summary": "Sender's Name", + "x-ms-visibility": "important" + }, + "RecipientStatuses": { + "type": "object", + "properties": { + "RecipientStatus": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tabs": { + "description": "Key-value pairs representing the tabs for this recipient (where key is the field name, and value is the field value).", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-visibility": "important", + "x-ms-summary": "Tabs" + }, + "DeclineReason": { + "$ref": "#/definitions/DeclineReasonWithoutType" + }, + "Email": { + "type": "string", + "x-ms-summary": "Recipient Email", + "x-ms-visibility": "important" + }, + "RecipientId": { + "type": "string", + "x-ms-summary": "Recipient Id", + "x-ms-visibility": "advanced" + }, + "RoutingOrder": { + "type": "string", + "x-ms-summary": "Routing Order", + "x-ms-visibility": "important" + }, + "Sent": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Recipient Sent Date-Time", + "x-ms-visibility": "advanced" + }, + "Status": { + "description": "The status of the recipient.", + "type": "string", + "x-ms-summary": "Recipient Status", + "x-ms-visibility": "advanced" + }, + "Type": { + "description": "The type of recipient.", + "type": "string", + "x-ms-summary": "Recipeint Type", + "x-ms-visibility": "advanced" + }, + "UserName": { + "description": "The name of the recipient.", + "type": "string", + "x-ms-summary": "Recipient Name", + "x-ms-visibility": "important" + } + } + } + } + } + } + } + }, + "TimeZone": { + "type": "string", + "x-ms-summary": "Time Zone", + "x-ms-visibility": "advanced" + }, + "TimeZoneOffset": { + "type": "string", + "x-ms-summary": "Time Zone Offset", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "GetDocumentsResponse": { + "type": "string", + "format": "binary", + "x-ms-summary": "File Content", + "x-ms-visibility": "important" + }, + "DynamicSigners": { + "description": "An object that represents signers based on a template.", + "type": "object", + "properties": {}, + "x-ms-dynamic-schema": { + "operationId": "GetDynamicSigners", + "parameters": { + "accountId": { + "parameter": "accountId" + }, + "templateId": { + "parameter": "templateId" + } + }, + "value-path": "Schema/Items" + } + }, + "AddRecipientToEnvelopeRequest": { + "type": "object", + "properties": { + "signers": { + "type": "array", + "items": { + "$ref": "#/definitions/SignerRequest" + }, + "x-ms-summary": "Signer", + "x-ms-visibility": "advanced" + } + }, + "x-ms-test-value": { + "signers": [ + { + "name": "test name", + "email": "clconn@microsoft.com", + "routingOrder": "1", + "roleName": "manager", + "recipientId": "insert recipientId" + } + ] + } + }, + "SignerRequest": { + "type": "object", + "properties": { + "routingOrder": { + "description": "The signing order of the recipient in the document.", + "type": "string", + "x-ms-summary": "Signing Order", + "x-ms-visibility": "important" + }, + "roleName": { + "description": "The role of the signer.", + "type": "string", + "x-ms-summary": "Role", + "x-ms-visibility": "important" + } + } + }, + "OnEnvelopeStatusChangesResponse": { + "type": "object", + "properties": { + "envelopes": { + "description": "Envelopes", + "type": "array", + "items": { + "$ref": "#/definitions/Envelope" + }, + "x-ms-summary": "Envelopes", + "x-ms-visibility": "advanced" + } + } + }, + "Envelope": { + "type": "object", + "properties": { + "documentsUri": { + "description": "The URI for the document in DocuSign.", + "type": "string", + "x-ms-summary": "Documents URI", + "x-ms-visibility": "important" + }, + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope Id", + "x-ms-visibility": "important" + }, + "envelopeUri": { + "description": "The URI for the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "Envelope URI", + "x-ms-visibility": "important" + }, + "notificationUri": { + "description": "The URI for the notifications.", + "type": "string", + "x-ms-summary": "Notification URI", + "x-ms-visibility": "advanced" + }, + "recipientsUri": { + "description": "The URI for the recipients of the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "Recipients URI", + "x-ms-visibility": "advanced" + }, + "status": { + "description": "The status of the envelope.", + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "important" + }, + "statusChangedDateTime": { + "description": "The datetime the status changed.", + "type": "string", + "x-ms-summary": "Status Changed Datetime", + "x-ms-visibility": "important" + } + } + }, + "SendEnvelopeResponse": { + "type": "object", + "properties": { + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope Id", + "x-ms-visibility": "important" + }, + "status": { + "description": "The status of the envelope.", + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "important" + }, + "statusDateTime": { + "description": "The datetime the status was set.", + "type": "string", + "x-ms-summary": "Status date time", + "x-ms-visibility": "important" + }, + "uri": { + "description": "The URI for the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "URI", + "x-ms-visibility": "important" + } + } + }, + "SendDraftEnvelopeResponse": { + "type": "object", + "properties": {} + }, + "ListRecipientsResponse": { + "type": "object", + "properties": { + "signers": { + "description": "Signers", + "type": "array", + "items": { + "$ref": "#/definitions/Signer" + }, + "x-ms-summary": "Signers", + "x-ms-visibility": "advanced" + } + } + }, + "Signer": { + "type": "object", + "properties": { + "routingOrder": { + "description": "The signing order of the recipient in the document.", + "type": "string", + "x-ms-summary": "Signing Order", + "x-ms-visibility": "important" + }, + "roleName": { + "description": "The role of the signer.", + "type": "string", + "x-ms-summary": "Role", + "x-ms-visibility": "important" + }, + "recipientId": { + "description": "The id the recipient.", + "type": "string", + "x-ms-summary": "Recipient Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the recipient.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + }, + "email": { + "description": "The email of the recipient.", + "type": "string", + "x-ms-summary": "Email", + "x-ms-visibility": "important" + } + } + }, + "GetLoginAccountsResponse": { + "type": "object", + "properties": { + "loginAccounts": { + "description": "Login accounts", + "type": "array", + "items": { + "$ref": "#/definitions/LoginAccount" + }, + "x-ms-summary": "Login accounts", + "x-ms-visibility": "advanced" + } + } + }, + "LoginAccount": { + "required": [ + "accountIdGuid" + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the account. ", + "type": "string", + "x-ms-summary": "Name" + }, + "accountIdGuid": { + "description": "The GUID of the account.", + "type": "string", + "x-ms-summary": "Account Id guid", + "x-ms-visibility": "advanced" + } + } + }, + "ListTemplatesResponse": { + "type": "object", + "properties": { + "envelopeTemplates": { + "description": "The availalbe envelope templates.", + "type": "array", + "items": { + "$ref": "#/definitions/EnvelopeTemplate" + }, + "x-ms-summary": "Envelope templates", + "x-ms-visibility": "advanced" + } + } + }, + "EnvelopeTemplate": { + "required": [ + "templateId" + ], + "type": "object", + "properties": { + "templateId": { + "description": "The id of the template.", + "type": "string", + "x-ms-summary": "Template Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the template.", + "type": "string", + "x-ms-summary": "Name" + } + } + }, + "ListFoldersResponse": { + "type": "object", + "properties": { + "folders": { + "description": "Folders", + "type": "array", + "items": { + "$ref": "#/definitions/Folder" + }, + "x-ms-summary": "Folders", + "x-ms-visibility": "advanced" + } + } + }, + "Folder": { + "type": "object", + "properties": { + "name": { + "description": "The name of the folder.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + }, + "folderId": { + "description": "The id of the folder.", + "type": "string", + "x-ms-summary": "Folder Id", + "x-ms-visibility": "advanced" + } + } + }, + "ListEnvelopesResponse": { + "type": "object", + "properties": { + "folderItems": { + "description": "The envelopes within a folder.", + "type": "array", + "items": { + "$ref": "#/definitions/FolderItem" + }, + "x-ms-summary": "Folder items", + "x-ms-visibility": "advanced" + } + } + }, + "FolderItem": { + "type": "object", + "properties": { + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope id", + "x-ms-visibility": "advanced" + }, + "subject": { + "description": "The subject of the envelope.", + "type": "string", + "x-ms-summary": "Subject", + "x-ms-visibility": "advanced" + } + } + }, + "ListDocumentsResponse": { + "type": "object", + "properties": { + "envelopeDocuments": { + "description": "The documents attached to the envelope.", + "type": "array", + "items": { + "$ref": "#/definitions/EnvelopeDocument" + }, + "x-ms-summary": "Envelope documents", + "x-ms-visibility": "advanced" + } + } + }, + "EnvelopeDocument": { + "type": "object", + "properties": { + "documentId": { + "description": "The id of the document.", + "type": "string", + "x-ms-summary": "Document Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the document.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + } + } + }, + "DeclineReasonWithoutType": { + "x-ms-summary": "Decline Reason", + "x-ms-visibility": "advanced" + } + }, + "x-ms-docs": [ + { + "url": "https://ms.flow.microsoft.com/en-us/blog/docusign-streamline-process/", + "description": "Streamline document signing and on-boarding processes" + } + ], + "x-ms-capabilities": { + "testConnection": { + "operationId": "GetLoginAccounts" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.docusign.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.docusign.com/company/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Productivity" + } + ] + } \ No newline at end of file diff --git a/certified-connectors/DocuSignDemo/apiProperties.json b/certified-connectors/DocuSignDemo/apiProperties.json new file mode 100644 index 0000000000..c93acac013 --- /dev/null +++ b/certified-connectors/DocuSignDemo/apiProperties.json @@ -0,0 +1,41 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "DocuSign", + "clientId": "<>", + "scopes": [ + "all" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "customParameters":{ + "LoginUri":{ + "value": "https://account-d.docusign.com" + } + }, + "properties": { + "IsFirstParty": "False" + } + }, + "uiDefinition": { + "displayName": "Log in with DocuSign Account", + "description": "Log in with DocuSign Account", + "tooltip": "Log in with DocuSign Account", + "constraints": { + "required": "true" + } + } + } + }, + "iconBrandColor": "#E2F800", + "capabilities": [ + "actions", + "triggers" + ], + "publisher": "DocuSign, Inc.", + "stackOwner": "DocuSign, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/DocuSignDemo/readme.md b/certified-connectors/DocuSignDemo/readme.md new file mode 100644 index 0000000000..8358d6a085 --- /dev/null +++ b/certified-connectors/DocuSignDemo/readme.md @@ -0,0 +1,19 @@ +# Title +DocuSign helps organizations connect and automate how they prepare, sign, act on, and manage agreements. The DocuSign Demo connector connects only to DocuSign Demo environments but offers the same functionality as the regular DocuSign connector. Any documents in a DocuSign Demo environment are not legally binding. For all non-demo uses, use the regular DocuSign connector. + +## Prerequisites +To use the Connect trigger in this integration, DocuSign Connect must be enabled in your DocuSign account. It is not enabled by default. Once enabled, the Connect Settings page can be accessed from the DocuSign Admin web application. Using the Connect trigger in this integration will automatically register the webhook for you. + +## Obtaining Credentials +To try the connector, please use a DEMO account: + - Go to https://developers.docusign.com/ + - Create Sandbox account. + +These are different than free trials in that they never expire, have 90% of our paid account features, and none of the documents sent through DEMO are legally binding ((https://support.docusign.com/en/articles/Free-account-vs-Developer-account). + + +## Known Issues and Limitations +For issues with DocuSign please try this link first: https://support.docusign.com/en/articles/How-Do-I-Open-a-Case-in-the-DocuSign-Support-Center. + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. \ No newline at end of file diff --git a/certified-connectors/DocuSignDemo/script.csx b/certified-connectors/DocuSignDemo/script.csx new file mode 100644 index 0000000000..46e52951c9 --- /dev/null +++ b/certified-connectors/DocuSignDemo/script.csx @@ -0,0 +1,534 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + try + { + if ("WebhookResponse".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.RedirectWebhookNotification().ConfigureAwait(false); + return new HttpResponseMessage(HttpStatusCode.OK); + } + + await this.UpdateRequest().ConfigureAwait(false); + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + if (response.IsSuccessStatusCode) + { + await this.UpdateResponse(response).ConfigureAwait(false); + } + + return response; + } + catch (ConnectorException ex) + { + var response = new HttpResponseMessage(ex.StatusCode); + response.Content = CreateJsonContent(ex.Message); + return response; + } + } + + private static JObject ParseContentAsJObject(string content, bool isRequest) + { + JObject body; + try + { + body = JObject.Parse(content); + } + catch (JsonReaderException ex) + { + if (isRequest) + { + throw new ConnectorException(HttpStatusCode.BadRequest, "Unable to parse the request body", ex); + } + else + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse the response body", ex); + } + } + + if (body == null) + { + if (isRequest) + { + throw new ConnectorException(HttpStatusCode.BadRequest, "The request body is empty"); + } + else + { + throw new ConnectorException(HttpStatusCode.BadGateway, "The response body is empty"); + } + } + + return body; + } + + private static string TransformWebhookNotificationBody(string content) + { + JObject body = ParseContentAsJObject(content, true); + + // customfield code + if (body["DocuSignEnvelopeInformation"] is JObject && body["DocuSignEnvelopeInformation"]["EnvelopeStatus"] is JObject) + { + var envelopeStatus = body["DocuSignEnvelopeInformation"]["EnvelopeStatus"]; + var customFields = envelopeStatus["CustomFields"]; + var newCustomFields = new JObject(); + + if (customFields is JObject) + { + var customFieldsArray = customFields["CustomField"]; + customFieldsArray = customFieldsArray is JObject ? new JArray(customFieldsArray) : customFieldsArray; + customFields["CustomField"] = customFieldsArray; + + foreach (var field in customFieldsArray as JArray ?? new JArray()) + { + var fieldName = field.Type == JTokenType.Object ? (string)field["Name"] : null; + if (!string.IsNullOrWhiteSpace(fieldName) && newCustomFields[fieldName] == null) + { + newCustomFields.Add(fieldName, field["Value"]); + } + } + } + + body["customFields"] = newCustomFields; + + // tab code + var recipientStatuses = envelopeStatus["RecipientStatuses"]; + if (recipientStatuses is JObject) + { + var statusArray = recipientStatuses["RecipientStatus"]; + statusArray = statusArray is JObject ? new JArray(statusArray) : statusArray; + recipientStatuses["RecipientStatus"] = statusArray; + + // RecipientStatus is an array at this point so now check TabStatus + foreach (var recipient in recipientStatuses["RecipientStatus"] ?? new JArray()) + { + var tabStatuses = recipient["TabStatuses"]; + if (tabStatuses is JObject) + { + var tabStatusArray = tabStatuses["TabStatus"]; + tabStatusArray = tabStatusArray is JObject ? new JArray(tabStatusArray) : tabStatusArray; + tabStatuses["TabStatus"] = tabStatusArray; + + // TabStatus is an array at this point + var newTabStatuses = new JObject(); + foreach (var tab in tabStatusArray as JArray ?? new JArray()) + { + if (tab is JObject) + { + var tabLabel = (string)tab["TabLabel"]; + var tabValue = (string)tab["TabValue"]; + var customTabType = (string)tab["CustomTabType"]; + + // skip Radio and List tabs that are not selected + if (!string.IsNullOrWhiteSpace(tabLabel) && !string.IsNullOrWhiteSpace(tabValue) && customTabType != "Radio" && customTabType != "List") + { + if (newTabStatuses[tabLabel] == null) + { + newTabStatuses.Add(tabLabel, tabValue); + } + } + } + } + + recipient["tabs"] = newTabStatuses; + } + } + } + } + + return body.ToString(); + } + + private async Task RedirectWebhookNotification() + { + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var logicAppsUri = query.Get("logicAppsUri"); + + if (string.IsNullOrEmpty(logicAppsUri)) + { + return new HttpResponseMessage(HttpStatusCode.BadRequest) + { + Content = new StringContent("Required 'logicAppsUri' parameter is empty"), + }; + } + + try + { + logicAppsUri = Encoding.UTF8.GetString(Convert.FromBase64String(logicAppsUri)); + } + catch (FormatException) + { + return new HttpResponseMessage(HttpStatusCode.BadRequest) + { + Content = new StringContent("'logicAppsUri' value is not a correct base64-encoded string"), + }; + } + + var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var doc = new XmlDocument(); + doc.LoadXml(content); + + var jsonContent = JsonConvert.SerializeXmlNode(doc); + var notificationContent = TransformWebhookNotificationBody(jsonContent); + + using var logicAppsRequest = new HttpRequestMessage(HttpMethod.Post, logicAppsUri); + logicAppsRequest.Content = CreateJsonContent(notificationContent); + + return await this.Context.SendAsync(logicAppsRequest, this.CancellationToken).ConfigureAwait(false); + } + + private JObject CreateHookEnvelopeBodyTransformation(JObject original) + { + var body = new JObject(); + + var uriLogicApps = original["urlToPublishTo"]?.ToString(); + var uriLogicAppsBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(uriLogicApps ?? string.Empty)); + var notificationProxyUri = this.Context.CreateNotificationUri($"/webhook_response?logicAppsUri={uriLogicAppsBase64}"); + + body["allUsers"] = "true"; + body["allowEnvelopePublish"] = "true"; + body["includeDocumentFields"] = "true"; + body["includeEnvelopeVoidReason"] = "true"; + body["includeTimeZoneInformation"] = "true"; + body["requiresAcknowledgement"] = "true"; + body["urlToPublishTo"] = notificationProxyUri.AbsoluteUri; + body["name"] = original["name"]?.ToString(); + body["envelopeEvents"] = original["envelopeEvents"]?.ToString(); + body["includeSenderAccountasCustomField"] = "true"; + return body; + } + + private JObject SendEnvelopeBodyTransformation(JObject body) + { + var templateRoles = new JArray(); + var signer = new JObject(); + var count = 0; + + foreach (var property in body) + { + var value = (string)property.Value; + var key = (string)property.Key; + + if (key.Contains(" Name")) + { + // Take substring key variable to set the roleName. + signer["roleName"] = key.Substring(0, key.Length - 5); + signer["name"] = value; + } + + if (key.Contains(" Email")) + { + signer["email"] = value; + } + + // Include every other signer into templateRoles JArray. + if (count % 2 != 0) + { + templateRoles.Add(signer); + signer = new JObject(); + } + + count++; + } + + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var newBody = new JObject() + { + ["templateRoles"] = templateRoles, + ["templateId"] = query.Get("templateId"), + ["status"] = query.Get("status"), + }; + return newBody; + } + + private JObject AddRecipientToEnvelopeBodyTransformation(JObject body) + { + var signers = body["signers"] as JArray; + if (signers == null || signers.Count == 0) + { + signers = new JArray + { + new JObject(), + }; + } + + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + // Unescapes the URI's query parameters, and then converts any plus characters ("+") into spaces. + // Many Web browsers escape spaces inside of URIs into plus ("+") characters + signers[0]["name"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeName")).Replace("+", " "); + signers[0]["email"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeEmail")).Replace("+", " "); + if (string.IsNullOrWhiteSpace((string)signers[0]["recipientId"])) + { + signers[0]["recipientId"] = Guid.NewGuid(); + } + + body["signers"] = signers; + return body; + } + + private async Task UpdateApiEndpoint() + { + string content = string.Empty; + using var userInfoRequest = new HttpRequestMessage(HttpMethod.Get, "https://account-d.docusign.com/oauth/userinfo"); + + // Access token is in the authorization header already + userInfoRequest.Headers.Authorization = this.Context.Request.Headers.Authorization; + + try + { + using var userInfoResponse = await this.Context.SendAsync(userInfoRequest, this.CancellationToken).ConfigureAwait(false); + content = await userInfoResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + + if (userInfoResponse.IsSuccessStatusCode) + { + var jsonContent = JObject.Parse(content); + var baseUri = jsonContent["accounts"]?[0]?["base_uri"]?.ToString(); + if (!string.IsNullOrEmpty(baseUri)) + { + this.Context.Request.RequestUri = new Uri(new Uri(baseUri), this.Context.Request.RequestUri.PathAndQuery); + } + else + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User's API endpoint from the response: " + content); + } + } + else + { + throw new ConnectorException(userInfoResponse.StatusCode, content); + } + } + catch (HttpRequestException ex) + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User Info: " + ex.Message, ex); + } + catch (JsonReaderException ex) + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse User Info response: " + content, ex); + } + catch (UriFormatException ex) + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to construct User's API endpoint from the response: " + content, ex); + } + } + + private async Task TransformRequestJsonBody(Func transformationFunction) + { + var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var newBody = transformationFunction(ParseContentAsJObject(content, true)); + this.Context.Request.Content = CreateJsonContent(newBody.ToString()); + } + + private async Task UpdateRequest() + { + await this.UpdateApiEndpoint().ConfigureAwait(false); + + if ("SendDraftEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + this.Context.Request.Content = new StringContent("{ \"status\": \"sent\" }", Encoding.UTF8, "application/json"); + } + + if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.CreateHookEnvelopeBodyTransformation).ConfigureAwait(false); + } + + if ("SendEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.SendEnvelopeBodyTransformation).ConfigureAwait(false); + } + + if ("AddRecipientToEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.AddRecipientToEnvelopeBodyTransformation).ConfigureAwait(false); + } + + if ("RemoveRecipientFromEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var newBody = new JObject(); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + newBody["signers"] = new JArray + { + new JObject + { + ["recipientId"] = Uri.UnescapeDataString(query.Get("RemoveRecipientFromEnvelopeRecipientId")).Replace("+", " "), + }, + }; + + this.Context.Request.Content = CreateJsonContent(newBody.ToString()); + } + + if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + uriBuilder.Path = uriBuilder.Path.Replace("/trigger/accounts/", "/accounts/"); + var filterValue = query.Get("triggerState"); + if (string.IsNullOrEmpty(filterValue)) + { + // initial trigger state to get existing items + filterValue = DateTimeOffset.UtcNow.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + else + { + // remove triggerState + query.Remove("triggerState"); + } + + query["from_date"] = filterValue; + uriBuilder.Query = query.ToString(); + this.Context.Request.RequestUri = uriBuilder.Uri; + } + + if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("/signers/accounts/", "/accounts/"); + this.Context.Request.RequestUri = uriBuilder.Uri; + } + + if ("GetLoginAccounts".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + query["include_account_id_guid"] = "true"; + uriBuilder.Query = query.ToString(); + this.Context.Request.RequestUri = uriBuilder.Uri; + } + + // update Accept Header + this.Context.Request.Headers.Accept.Clear(); + var acceptHeaderValue = "application/json"; + if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + acceptHeaderValue = "application/pdf"; + } + + this.Context.Request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeaderValue)); + } + + private async Task UpdateResponse(HttpResponseMessage response) + { + if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) + && response.Headers?.Location != null) + { + var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + var body = ParseContentAsJObject(content, false); + response.Headers.Location = new Uri(string.Format( + "{0}/{1}", + this.Context.OriginalRequestUri.ToString(), + body.GetValue("connectId").ToString())); + } + + if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); + var itemProperties = new JObject(); + var basePropertyDefinition = new JObject + { + ["type"] = "string", + ["x-ms-keyOrder"] = 0, + ["x-ms-keyType"] = "none", + ["x-ms-sort"] = "none", + }; + + foreach (var signer in (body["signers"] as JArray) ?? new JArray()) + { + var roleName = signer["roleName"]; + itemProperties[roleName + " Name"] = basePropertyDefinition.DeepClone(); + itemProperties[roleName + " Email"] = basePropertyDefinition.DeepClone(); + } + + var newBody = new JObject + { + ["name"] = "dynamicSchema", + ["title"] = "dynamicSchema", + ["x-ms-permission"] = "read-write", + ["schema"] = new JObject + { + ["type"] = "array", + ["items"] = new JObject + { + ["type"] = "object", + ["properties"] = itemProperties, + }, + }, + }; + + response.Content = new StringContent(newBody.ToString(), Encoding.UTF8, "application/json"); + } + + if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var originalQuery = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var triggerState = originalQuery.Get("triggerState"); + var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); + var items = body.SelectToken("envelopes") as JArray; + + if (string.IsNullOrEmpty(triggerState) || items == null || items.Count == 0) + { + response.Content = null; + response.StatusCode = HttpStatusCode.Accepted; + } + + if (string.IsNullOrEmpty(triggerState)) + { + // initial trigger call + triggerState = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + + if (items?.Count > 0) + { + triggerState = items.Max(x => DateTimeOffset.Parse(x["statusChangedDateTime"].ToString())).AddMilliseconds(10).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + + var locationUriBuilder = new UriBuilder(this.Context.OriginalRequestUri); + originalQuery["triggerState"] = triggerState; + locationUriBuilder.Query = originalQuery.ToString(); + response.Headers.Location = locationUriBuilder.Uri; + response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(120)); + } + + if (response.Content?.Headers?.ContentType != null) + { + if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); + } + else + { + response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + } + } + } + + public class ConnectorException : Exception + { + public ConnectorException( + HttpStatusCode statusCode, + string message, + Exception innerException = null) + : base( + message, + innerException) + { + this.StatusCode = statusCode; + } + + public HttpStatusCode StatusCode { get; } + + public override string ToString() + { + var error = new StringBuilder($"ConnectorException: Status code={this.StatusCode}, Message='{this.Message}'"); + var inner = this.InnerException; + var level = 0; + while (inner != null && level < 10) + { + level += 1; + error.AppendLine($"Inner exception {level}: {inner.Message}"); + inner = inner.InnerException; + } + + error.AppendLine($"Stack trace: {this.StackTrace}"); + return error.ToString(); + } + } +} \ No newline at end of file From 226a33c05377bddbad5e7daa70dc24cbea06eae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Arantes?= <91188523+AntonioArantesDevscope@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:57:16 +0100 Subject: [PATCH 067/219] PowerBI Robots Connector PR (#1122) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Adding PowerBI Robtos Connector - DevScope SA, certified-connector * Update configs * update color * Identation, response and missing properties corrections * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json * Connector title change * json Identation * Connector name change Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- certified-connectors/PowerBI Robots/README.md | 13 + .../PowerBI Robots/apiDefinition.swagger.json | 326 ++++++++++++++++++ .../PowerBI Robots/apiProperties.json | 23 ++ 3 files changed, 362 insertions(+) create mode 100644 certified-connectors/PowerBI Robots/README.md create mode 100644 certified-connectors/PowerBI Robots/apiDefinition.swagger.json create mode 100644 certified-connectors/PowerBI Robots/apiProperties.json diff --git a/certified-connectors/PowerBI Robots/README.md b/certified-connectors/PowerBI Robots/README.md new file mode 100644 index 0000000000..12dbea9a31 --- /dev/null +++ b/certified-connectors/PowerBI Robots/README.md @@ -0,0 +1,13 @@ +## Robots for Power BI +Robots for Power BI is a connector to execute the internal API across the multiple Power Platform products + +## Prerequisites +You will need the following to proceed: +* A PowerBI Robots license +* An AccountId provided by PowerBI Robots + +## Supported Operations +The connector supports the following operations: +* `Playlist enable` Action to enable a PBI Robots playlist +* `Playlist disable` Action to disable a PBI Robots playlist +* `Playlist execute` Action to execute a PBI Robots playlist \ No newline at end of file diff --git a/certified-connectors/PowerBI Robots/apiDefinition.swagger.json b/certified-connectors/PowerBI Robots/apiDefinition.swagger.json new file mode 100644 index 0000000000..b0befa86e5 --- /dev/null +++ b/certified-connectors/PowerBI Robots/apiDefinition.swagger.json @@ -0,0 +1,326 @@ +{ + "swagger": "2.0", + "info": { + "title": "Robots for Power BI", + "description": "PowerBI Robots connector to execute the internal API across the multiple Power Platform products", + "version": "1.0", + "contact": { + "name": "DevScope Support", + "url": "https://devscope.net/contacts/", + "email": "support@devscope.net" + } + }, + "host": "powerbitiles.com", + "basePath": "/PBIRobots", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/v1/playlist.enable": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist enable", + "description": "Enable a specific playlist", + "operationId": "Playlist-enable", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + }, + "/api/v1/playlist.disable": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist disable", + "description": "Disable a specific playlist", + "operationId": "Playlist-disable", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + }, + "/api/v1/playlist.execute": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist execute", + "description": "Execute a specific playlist", + "operationId": "Playlist-execute", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://devscope.net/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://devscope.net/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Business Management" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "AccountId" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/PowerBI Robots/apiProperties.json b/certified-connectors/PowerBI Robots/apiProperties.json new file mode 100644 index 0000000000..169f4ec80b --- /dev/null +++ b/certified-connectors/PowerBI Robots/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "Account Id", + "description": "The Account Id for this api", + "tooltip": "Provide your Account Id", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#0577bd", + "capabilities": [], + "publisher": "DevScope S.A.", + "stackOwner": "DevScope S.A." + } +} \ No newline at end of file From dbbcc6d4f44890f46ebde026e987ae31386e9b07 Mon Sep 17 00:00:00 2001 From: Dan Sargeant Date: Wed, 20 Oct 2021 04:09:26 +1000 Subject: [PATCH 068/219] fix: Way We Do connector update (#1198) Expose the Get By Id endpoints as actions --- .../Way We Do/apiDefinition.swagger.json | 68 +++++-------------- certified-connectors/Way We Do/readme.md | 3 + 2 files changed, 21 insertions(+), 50 deletions(-) diff --git a/certified-connectors/Way We Do/apiDefinition.swagger.json b/certified-connectors/Way We Do/apiDefinition.swagger.json index 5819f49c54..60a2a17a70 100644 --- a/certified-connectors/Way We Do/apiDefinition.swagger.json +++ b/certified-connectors/Way We Do/apiDefinition.swagger.json @@ -138,7 +138,7 @@ "tags": ["Checklist Instances"], "operationId": "GetAll_ChecklistInstances", "summary": "Get All Checklist Instances", - "description": "Retrieves a list of all activated checklist instances.", + "description": "Retrieve a list of all activated checklist instances.", "x-ms-visibility": "internal", "parameters": [ { @@ -267,8 +267,8 @@ "tags": ["Checklist Instances"], "operationId": "ChecklistInstances_Get", "summary": "Get A Checklist Instance", - "description": "Retrieves a specific activated checklist instance", - "x-ms-visibility": "internal", + "description": "Retrieve a specific checklist instance by ID", + "x-ms-visibility": "advanced", "parameters": [ { "type": "string", @@ -277,18 +277,10 @@ "required": true, "x-nullable": false, "format": "guid", - "description": "Select the checklist instance", + "description": "The ID of the checklist instance", "x-ms-url-encoding": "single", "x-ms-summary": "Instance ID", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "Find_Checklist", - "value-path": "id", - "value-title": "title", - "parameters": { - "type": 2 - } - } + "x-ms-visibility": "important" } ], "responses": { @@ -417,48 +409,32 @@ "tags": ["Checklist Instance Steps"], "operationId": "ChecklistSteps_Get", "summary": "Get A Checklist Step", - "description": "Retrieves a specific checklist step", - "x-ms-visibility": "internal", + "description": "Retrieve a specific checklist step by ID", + "x-ms-visibility": "advanced", "parameters": [ { "type": "string", "name": "instanceId", - "description": "Select the checklist instance", + "description": "The ID of the checklist instance", "x-ms-summary": "Instance Id", "in": "path", "required": true, "x-nullable": false, "format": "guid", "x-ms-url-encoding": "single", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetAll_ChecklistInstances", - "value-path": "id", - "value-collection": "results", - "value-title": "title" - } + "x-ms-visibility": "important" }, { "type": "string", "name": "stepId", - "description": "Select the checklist step", + "description": "The ID of the checklist step", "x-ms-summary": "Step Id", "in": "path", "required": true, "x-nullable": false, "format": "guid", "x-ms-url-encoding": "single", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "Find_Steps", - "value-path": "id", - "value-title": "title", - "parameters": { - "instanceId": { - "parameter": "instanceId" - } - } - } + "x-ms-visibility": "important" } ], "responses": { @@ -564,7 +540,7 @@ "tags": ["Company"], "operationId": "Company_GetCompany", "summary": "Get Company", - "description": "Retrieves your company ID and Name", + "description": "Retrieve your company ID and Name", "x-ms-visibility": "internal", "parameters": [], "responses": { @@ -636,7 +612,7 @@ "tags": ["Procedure Acceptance"], "operationId": "ProcedureAcceptances_GetAll", "summary": "Get All Procedure Acceptances", - "description": "Retrieves a list of all procedure acceptances.", + "description": "Retrieve a list of all procedure acceptances.", "x-ms-visibility": "internal", "parameters": [ { @@ -723,28 +699,20 @@ "get": { "tags": ["Procedures"], "operationId": "Procedures_Get", - "summary": "Get A Checklist", - "description": "Retrieves a specific checklist or procedure by ID.", - "x-ms-visibility": "internal", + "summary": "Get A Checklist Or Procedure", + "description": "Retrieve a specific checklist or procedure by ID", + "x-ms-visibility": "advanced", "parameters": [ { "type": "integer", "name": "procedureId", "in": "path", - "description": "Select a checklist", + "description": "The ID of the checklist or procedure", "x-ms-summary": "Procedure ID", "required": true, "x-nullable": false, "format": "int32", "x-ms-url-encoding": "single", - "x-ms-dynamic-values": { - "operationId": "Find_Checklist", - "value-path": "id", - "value-title": "title", - "parameters": { - "type": 2 - } - }, "x-ms-visibility": "important" } ], @@ -891,7 +859,7 @@ "tags": ["Users"], "operationId": "Users_Get", "summary": "Get User", - "description": "Retrieves a specific user by ID", + "description": "Retrieve a specific user by ID", "x-ms-visibility": "internal", "parameters": [ { diff --git a/certified-connectors/Way We Do/readme.md b/certified-connectors/Way We Do/readme.md index 50dee9406f..3cde911aa7 100644 --- a/certified-connectors/Way We Do/readme.md +++ b/certified-connectors/Way We Do/readme.md @@ -21,6 +21,9 @@ The connector supports the following operations: - `Find Checklist Instance` : Search for a checklist instance by title. - `Find Checklist Step` : Find a step of a checklist instance - `Find User` : Search for a user by name or email. +- `Get A Checklist Instance` : Retrieve a specific checklist instance by ID +- `Get A Checklist Step` : Retrieve a specific checklist step by ID +- `Get A Checklist Or Procedure` : Retrieve a specific checklist or procedure by ID - `Get Checklist Instance Activity` : Retrieve all activity for a checklist instance From 4397d277660d3075180cef6d70ff250ea74a3166 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 19 Oct 2021 14:52:39 -0400 Subject: [PATCH 069/219] r/SpaceX (Independent Publisher) (#1126) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Add files via upload * Fixed response schemas * Delete settings.json * Add files via upload * Fix color and stackOwner * Fix launchpad details * Update readme.md * Update apiDefinition.swagger.json * Reused are booleans * Recovery_attempt also a boolean * recovered is another boolean * stactic_fire_date_unix is an integer * windows are integers * successes are booleans * Type changes * Update apiDefinition.swagger.json * Typo --- .../rSpaceX/apiDefinition.swagger.json | 11145 ++++++++++++++++ .../rSpaceX/apiProperties.json | 9 + .../rSpaceX/readme.md | 97 + 3 files changed, 11251 insertions(+) create mode 100644 independent-publisher-connectors/rSpaceX/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/rSpaceX/apiProperties.json create mode 100644 independent-publisher-connectors/rSpaceX/readme.md diff --git a/independent-publisher-connectors/rSpaceX/apiDefinition.swagger.json b/independent-publisher-connectors/rSpaceX/apiDefinition.swagger.json new file mode 100644 index 0000000000..e0e9c03580 --- /dev/null +++ b/independent-publisher-connectors/rSpaceX/apiDefinition.swagger.json @@ -0,0 +1,11145 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "r/SpaceX", + "description": "r/SpaceX is an open Source REST API for SpaceX launch, rocket, core, capsule, Starlink, launchpad, and landing pad data. r/SpaceX is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Space Exploration Technologies Corp (SpaceX), or any of its subsidiaries or its affiliates. The names SpaceX as well as related names, marks, emblems and images are registered trademarks of their respective owners.", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.spacexdata.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/v4/capsules": { + "get": { + "summary": "Get all capsules", + "description": "Detailed info for all serialized Dragon capsules.", + "operationId": "GetAllCapsules", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "reuse_count": { + "type": "integer", + "format": "int32", + "description": "The reuse count.", + "title": "Reuse Count" + }, + "water_landings": { + "type": "integer", + "format": "int32", + "description": "The number of water landings.", + "title": "Water Landings" + }, + "land_landings": { + "type": "integer", + "format": "int32", + "description": "The number of land landings.", + "title": "Land Landings" + }, + "last_update": { + "type": "string", + "description": "When last updated.", + "title": "Last Update" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "serial": { + "type": "string", + "description": "The serial number.", + "title": "Serial" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/capsules/{capsuleID}": { + "get": { + "summary": "Get a capsule", + "description": "Detailed info for a serialized Dragon capsule.", + "operationId": "GetACapsule", + "parameters": [ + { + "name": "capsuleID", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the capsule.", + "x-ms-summary": "Capsule ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "reuse_count": { + "type": "integer", + "format": "int32", + "description": "The reuse count.", + "title": "Reuse Count" + }, + "water_landings": { + "type": "integer", + "format": "int32", + "description": "The number of water landings.", + "title": "Water Landings" + }, + "land_landings": { + "type": "integer", + "format": "int32", + "description": "The number of land landings.", + "title": "Land Landings" + }, + "last_update": { + "type": "string", + "description": "When last updated.", + "title": "Last Update" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "serial": { + "type": "string", + "description": "The serial number.", + "title": "Serial" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/capsules/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query capsules", + "description": "Detailed info for queried serialized Dragon capsules.", + "operationId": "QueryCapsules", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "reuse_count": { + "type": "integer", + "format": "int32", + "description": "The reuse count.", + "title": "Reuse Count" + }, + "water_landings": { + "type": "integer", + "format": "int32", + "description": "The number of water landings.", + "title": "Water Landings" + }, + "land_landings": { + "type": "integer", + "format": "int32", + "description": "The number of land landings.", + "title": "Land Landings" + }, + "last_update": { + "type": "string", + "description": "When last updated.", + "title": "Last Update" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "serial": { + "type": "string", + "description": "The serial number.", + "title": "Serial" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/company": { + "get": { + "summary": "Get company info", + "description": "Detailed info about SpaceX as a company.", + "operationId": "GetCompanyInfo", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "headquarters": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The street address.", + "title": "Address" + }, + "city": { + "type": "string", + "description": "The city.", + "title": "City" + }, + "state": { + "type": "string", + "description": "The state.", + "title": "State" + } + }, + "description": "The headquarter address.", + "title": "Headquarters" + }, + "links": { + "type": "object", + "properties": { + "website": { + "type": "string", + "description": "The website address.", + "title": "Website" + }, + "flickr": { + "type": "string", + "description": "The Flickr address.", + "title": "Flickr" + }, + "twitter": { + "type": "string", + "description": "The Twitter address.", + "title": "Twitter" + }, + "elon_twitter": { + "type": "string", + "description": "Elon Musk's Twitter address.", + "title": "Elon's Twitter" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "founder": { + "type": "string", + "description": "The founder.", + "title": "Founder" + }, + "founded": { + "type": "integer", + "format": "int32", + "description": "The year founded.", + "title": "Founded" + }, + "employees": { + "type": "integer", + "format": "int32", + "description": "The number of employees.", + "title": "Employees" + }, + "vehicles": { + "type": "integer", + "format": "int32", + "description": "The number of vehicles.", + "title": "Vehicles" + }, + "launch_sites": { + "type": "integer", + "format": "int32", + "description": "The number of launch sites.", + "title": "Launch Sites" + }, + "test_sites": { + "type": "integer", + "format": "int32", + "description": "The number of test sites.", + "title": "Test Sites" + }, + "ceo": { + "type": "string", + "description": "The current CEO.", + "title": "CEO" + }, + "cto": { + "type": "string", + "description": "The current CTO.", + "title": "CTO" + }, + "coo": { + "type": "string", + "description": "The current COO.", + "title": "COO" + }, + "cto_propulsion": { + "type": "string", + "description": "The CTO of Propulsion.", + "title": "CTO Propulsion" + }, + "valuation": { + "type": "integer", + "format": "int32", + "description": "The current valuation.", + "title": "Valuation" + }, + "summary": { + "type": "string", + "description": "The company summary.", + "title": "Summary" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/cores": { + "get": { + "summary": "Get all cores", + "description": "Detailed info for all serialized first stage cores.", + "operationId": "GetAllCores", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "headquarters": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The street address.", + "title": "Address" + }, + "city": { + "type": "string", + "description": "The city.", + "title": "City" + }, + "state": { + "type": "string", + "description": "The state.", + "title": "State" + } + }, + "description": "The state.", + "title": "State" + }, + "links": { + "type": "object", + "properties": { + "website": { + "type": "string", + "description": "The website address.", + "title": "Website" + }, + "flickr": { + "type": "string", + "description": "The Flickr address.", + "title": "Flickr" + }, + "twitter": { + "type": "string", + "description": "The Twitter address.", + "title": "Twitter" + }, + "elon_twitter": { + "type": "string", + "description": "Elon Musk's Twitter address.", + "title": "Elon's Twitter" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "founder": { + "type": "string", + "description": "The founder.", + "title": "Founder" + }, + "founded": { + "type": "integer", + "format": "int32", + "description": "The year founded.", + "title": "Founded" + }, + "employees": { + "type": "integer", + "format": "int32", + "description": "The number of employees.", + "title": "Employees" + }, + "vehicles": { + "type": "integer", + "format": "int32", + "description": "The number of vehicles.", + "title": "Vehicles" + }, + "launch_sites": { + "type": "integer", + "format": "int32", + "description": "The number of launch sites.", + "title": "Launch Sites" + }, + "test_sites": { + "type": "integer", + "format": "int32", + "description": "The number of test sites.", + "title": "Test Sites" + }, + "ceo": { + "type": "string", + "description": "The current CEO.", + "title": "CEO" + }, + "cto": { + "type": "string", + "description": "The current CTO.", + "title": "CTO" + }, + "coo": { + "type": "string", + "description": "The current COO.", + "title": "COO" + }, + "cto_propulsion": { + "type": "string", + "description": "The CTO of Propulsion.", + "title": "CTO Propulsion" + }, + "valuation": { + "type": "integer", + "format": "int32", + "description": "The current valuation.", + "title": "Valuation" + }, + "summary": { + "type": "string", + "description": "The company summary.", + "title": "Summary" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/cores/{coreID}": { + "get": { + "summary": "Get a core", + "description": "Detailed info for a serialized first stage core.", + "operationId": "GetACore", + "parameters": [ + { + "name": "coreID", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the core.", + "x-ms-summary": "Core ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "block": { + "type": "string", + "description": "The block.", + "title": "Block" + }, + "reuse_count": { + "type": "integer", + "format": "int32", + "description": "The reuse count.", + "title": "Reuse Count" + }, + "rtls_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of RTLS attempts.", + "title": "RTLS Attempts" + }, + "rtls_landings": { + "type": "integer", + "format": "int32", + "description": "The number of RTLS landings.", + "title": "RTLS Landings" + }, + "asds_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of ASDS attempts.", + "title": "ASDS Attempts" + }, + "asds_landings": { + "type": "integer", + "format": "int32", + "description": "The number of ASDS landings.", + "title": "ASDS Landings" + }, + "last_update": { + "type": "string", + "description": "When last updated.", + "title": "Last Update" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "serial": { + "type": "string", + "description": "The serial number.", + "title": "Serial" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/cores/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query cores", + "description": "Detailed info for queried serialized first stage cores.", + "operationId": "QueryCores", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "block": { + "type": "integer", + "format": "int32", + "description": "The number of blocks.", + "title": "Block" + }, + "reuse_count": { + "type": "integer", + "format": "int32", + "description": "The reuse count.", + "title": "Reuse Count" + }, + "rtls_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of RTLS attempts.", + "title": "RTLS Attempts" + }, + "rtls_landings": { + "type": "integer", + "format": "int32", + "description": "The number of RTLS landings.", + "title": "RTLS Landings" + }, + "asds_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of ASDS attempts.", + "title": "ASDS Attempts" + }, + "asds_landings": { + "type": "integer", + "format": "int32", + "description": "The number of ASDS landings.", + "title": "ASDS Landings" + }, + "last_update": { + "type": "string", + "description": "When last updated.", + "title": "Last Update" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "serial": { + "type": "string", + "description": "The serial number.", + "title": "Serial" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/crew": { + "get": { + "summary": "Get all crew members", + "description": "Detailed info on all Dragon crew members.", + "operationId": "GetAllCrew", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "agency": { + "type": "string", + "description": "The space agency.", + "title": "Agency" + }, + "image": { + "type": "string", + "description": "An image.", + "title": "Image" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/crew/{id}": { + "get": { + "summary": "Get a crew member", + "description": "Detailed info on a Dragon crew member.", + "operationId": "GetACrewMember", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the crew member.", + "x-ms-summary": "Crew Member ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "agency": { + "type": "string", + "description": "The space agency.", + "title": "Agency" + }, + "image": { + "type": "string", + "description": "Image.", + "title": "Image" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "launches": { + "type": "array", + "items": {}, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/crew/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query crew members", + "description": "Detailed info on queried Dragon crew members.", + "operationId": "QueryCrewMembers", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "agency": { + "type": "string", + "description": "The space agency.", + "title": "Agency" + }, + "image": { + "type": "string", + "description": "An image.", + "title": "Image" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/dragons": { + "get": { + "summary": "Get all Dragons", + "description": "Detailed info about all Dragon capsule versions.", + "operationId": "GetAllDragons", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "heat_shield": { + "type": "object", + "properties": { + "material": { + "type": "string", + "description": "The heat shield material.", + "title": "Heat Shield Material" + }, + "size_meters": { + "type": "number", + "format": "float", + "description": "The heat shield size in meters.", + "title": "Heat Shield Size in Meters" + }, + "temp_degrees": { + "type": "integer", + "format": "int32", + "description": "The heat shield temperature rating in degrees.", + "title": "Heat Shield Temperature in Degrees" + }, + "dev_partner": { + "type": "string", + "description": "The heat shield developing partner.", + "title": "Heat Shield Developing Partner" + } + }, + "description": "The heat shield.", + "title": "Heat Shield" + }, + "launch_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The launch mass in kilograms.", + "title": "Launch Payload Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The launch mass in pounds", + "title": "Launch Payload Lb" + } + }, + "description": "The launch payload mass.", + "title": "Launch Payload Mass" + }, + "launch_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The volume in cubic meters. ", + "title": "Launch Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The volume in cubic feet.", + "title": "Launch Payload Cubic Feet" + } + }, + "description": "The launch payload volume", + "title": "Launch Payload Volume" + }, + "return_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Return Payload Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds", + "title": "Return Payload Lb" + } + }, + "description": "return_payload_mass" + }, + "return_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The volume in cubic meters. ", + "title": "Return Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The volume in cubic feet.", + "title": "Return Payload Cubic Feet" + } + }, + "description": "The return payload volume.", + "title": "Return Payload Volume" + }, + "pressurized_capsule": { + "type": "object", + "properties": { + "payload_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsule's volume in cubic meters.", + "title": "Pressurized Capsule Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsule's volume in cubic feet.", + "title": "Pressurized Capsule Cubic Feet" + } + }, + "description": "The Pressurized Capsule's Volume.", + "title": "Pressurized Capsule Volume" + } + }, + "description": "The Pressurized Capsule.", + "title": "Pressurized Capsule" + }, + "trunk": { + "type": "object", + "properties": { + "trunk_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic meters.", + "title": "Trunk Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic feet.", + "title": "Trunk Cubic Feet" + } + }, + "description": "The trunk volume.", + "title": "Trunk Volume" + }, + "cargo": { + "type": "object", + "properties": { + "solar_array": { + "type": "integer", + "format": "int32", + "description": "The number of solar arrays in cargo.", + "title": "solar_array" + }, + "unpressurized_cargo": { + "type": "boolean", + "description": "Whether the cargo is unpressurized.", + "title": "Unpressurized Cargo" + } + }, + "description": "The cargo.", + "title": "Cargo" + } + }, + "description": "The trunk.", + "title": "Trunk" + }, + "height_w_trunk": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height with trunk in meters.", + "title": "Meters" + }, + "feet": { + "type": "number", + "format": "float", + "description": "The height with trunk in feet.", + "title": "Feet" + } + }, + "description": "The height with trunk.", + "title": "Height with Trunk" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diameter in meters.", + "title": "Diameter Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The diameter in feet.", + "title": "Diameter Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The Flickr image links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "crew_capacity": { + "type": "integer", + "format": "int32", + "description": "The crew capacity.", + "title": "Crew Capacity" + }, + "sidewall_angle_deg": { + "type": "integer", + "format": "int32", + "description": "The sidewall angle in degrees.", + "title": "Sidewall Angle Degrees" + }, + "orbit_duration_yr": { + "type": "integer", + "format": "int32", + "description": "The orbit duration in years.", + "title": "Orbit Duration Years" + }, + "dry_mass_kg": { + "type": "integer", + "format": "int32", + "description": "The dry mass in kilograms.", + "title": "Dry Mass Kilograms" + }, + "dry_mass_lb": { + "type": "integer", + "format": "int32", + "description": "The dry mass in kilograms.", + "title": "Dry Mass Pounds" + }, + "thrusters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The thruster type.", + "title": "Thruster Type" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The thruster amount.", + "title": "Thruster Amount" + }, + "pods": { + "type": "integer", + "format": "int32", + "description": "The number of thruster pods.", + "title": "Thruster Pods" + }, + "fuel_1": { + "type": "string", + "description": "The thruster fuel 1 type.", + "title": "Thruster Fuel 1" + }, + "fuel_2": { + "type": "string", + "description": "The thruster fuel 2 type", + "title": "Thruster Fuel 2" + }, + "isp": { + "type": "integer", + "format": "int32", + "description": "The specific impulse.", + "title": "Isp" + }, + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in newtons.", + "title": "Thrust kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in total impulse.", + "title": "Thrust lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + } + } + }, + "description": "The thrusters.", + "title": "Thrusters" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/dragons/{id}": { + "get": { + "summary": "Get a Dragon", + "description": "Detailed info about a Dragon capsule version.", + "operationId": "GetADragon", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the Dragon.", + "x-ms-summary": "Dragon ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "heat_shield": { + "type": "object", + "properties": { + "material": { + "type": "string", + "description": "The heat shield material", + "title": "Heat Shield Material" + }, + "size_meters": { + "type": "number", + "format": "float", + "description": "The heat shield size in meters.", + "title": "Heat Shield Size Meters" + }, + "temp_degrees": { + "type": "integer", + "format": "int32", + "description": "The heat shield maximum temperature in degrees.", + "title": "temp_degrees" + }, + "dev_partner": { + "type": "string", + "description": "The heat shield developing partner.", + "title": "Heat Shield Dev Partner" + } + }, + "description": "The heat shield.", + "title": "Heat Shield" + }, + "launch_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The launch payload mass in kilograms.", + "title": "Launch Payload Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Launch Payload Lb" + } + }, + "description": "The launch payload mass.", + "title": "Launch Payload Mass" + }, + "launch_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The launch payload volume in cubic meters.", + "title": "Launch Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The launch payload volume in cubic feet.", + "title": "Launch Payload Cubic Feet" + } + }, + "description": "The launch payload volume", + "title": "Launch Payload Volume" + }, + "return_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The return payload mass in kilograms.", + "title": "Return Payload Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The return payload mass in pounds.", + "title": "Return Payload Lb" + } + }, + "description": "The return payload mass.", + "title": "Return Payload Mass" + }, + "return_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The return payload volume in cubic meters.", + "title": "Return Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The return payload volume in cubic feet.", + "title": "Return Payload Cubic Feet" + } + }, + "description": "The return payload volume.", + "title": "Return Payload Volume" + }, + "pressurized_capsule": { + "type": "object", + "properties": { + "payload_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsule volume in cubic meters.", + "title": "Pressurized Capsule Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsulevolume in cubic feet.", + "title": "Pressurized Cubic Feet" + } + }, + "description": "The payload volume.", + "title": "Payload Volume" + } + }, + "description": "The pressurized capsule.", + "title": "Pressurized Capsule" + }, + "trunk": { + "type": "object", + "properties": { + "trunk_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic meters.", + "title": "Trunk Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic feet.", + "title": "Trunk Cubic Feet" + } + }, + "description": "The trunk volume.", + "title": "Trunk Volume" + }, + "cargo": { + "type": "object", + "properties": { + "solar_array": { + "type": "integer", + "format": "int32", + "description": "The solar array in cargo.", + "title": "solar_array" + }, + "unpressurized_cargo": { + "type": "boolean", + "description": "The unpressurized cargo.", + "title": "unpressurized_cargo" + } + }, + "description": "The cargo.", + "title": "Cargo" + } + }, + "description": "The trunk.", + "title": "Trunk" + }, + "height_w_trunk": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height with trunk in meters", + "title": "Meters" + }, + "feet": { + "type": "number", + "format": "float", + "description": "The height with trunk in feet.", + "title": "Feet" + } + }, + "description": "The height with trunk.", + "title": "Height with Trunk" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diameter in meters", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The diaameter in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Flickr image links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "crew_capacity": { + "type": "integer", + "format": "int32", + "description": "The crew capacity.", + "title": "Crew Capacity" + }, + "sidewall_angle_deg": { + "type": "integer", + "format": "int32", + "description": "The sidewall angle in degrees.", + "title": "Sidewall Angle Degrees" + }, + "orbit_duration_yr": { + "type": "integer", + "format": "int32", + "description": "The orbit duration in years.", + "title": "Orbit Duration Years" + }, + "dry_mass_kg": { + "type": "integer", + "format": "int32", + "description": "The dry mass in kilograms.", + "title": "Dry Mass Kg" + }, + "dry_mass_lb": { + "type": "integer", + "format": "int32", + "description": "The dry mass in pounds.", + "title": "Dry Mass Lb" + }, + "thrusters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The thruster type.", + "title": "Thruster Type" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The thruster amount.", + "title": "Thruster Amount" + }, + "pods": { + "type": "integer", + "format": "int32", + "description": "The number of thruster pods.", + "title": "Thruster Pods" + }, + "fuel_1": { + "type": "string", + "description": "The thruster fuel 1 type.", + "title": "Thruster Fuel 1" + }, + "fuel_2": { + "type": "string", + "description": "The thruster fuel 2 type.", + "title": "Thruster Fuel 2" + }, + "isp": { + "type": "integer", + "format": "int32", + "description": "The specific impulse.", + "title": "Isp" + }, + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + } + } + }, + "description": "The thrusters.", + "title": "Thrusters" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/dragons/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query Dragons", + "description": "Detailed info about queried Dragon capsule versions.", + "operationId": "QueryDragons", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "heat_shield": { + "type": "object", + "properties": { + "material": { + "type": "string", + "description": "The heat shield material type.", + "title": "Heat Shield Material" + }, + "size_meters": { + "type": "number", + "format": "float", + "description": "The heat shield size in meters.", + "title": "Heat Shield Size Meters" + }, + "temp_degrees": { + "type": "integer", + "format": "int32", + "description": "The heat shield maximum temperature in degrees.", + "title": "Heat Sheild Temp Degrees" + }, + "dev_partner": { + "type": "string", + "description": "The heat shield developing partner.", + "title": "Heat Shield Dev Partner" + } + }, + "description": "The heat shield.", + "title": "Heat Shield" + }, + "launch_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The launch payload mass in kilograms.", + "title": "Launch Payload Mass Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The launch payload mass in pounds.", + "title": "Launch Payload Mass Lb" + } + }, + "description": "The launch payload mass.", + "title": "Launch Payload Mass" + }, + "launch_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The launch payload volume in cubic meters.", + "title": "Launch Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The launch payload volume in cubic feet.", + "title": "Launch Payload Cubic Feet" + } + }, + "description": "The launch payload.", + "title": "Launch Payload Volume" + }, + "return_payload_mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The return payload mass in kilograms.", + "title": "Return Payload Mass Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The return payload mass in pounds.", + "title": "Return Payload Mass Lb" + } + }, + "description": "The return payload mass.", + "title": "Return Payload Mass" + }, + "return_payload_vol": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The return payload volume in cubic meters.", + "title": "Return Payload Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The return payload volume in cubic feet.", + "title": "Return Payload Cubic Feet" + } + }, + "description": "The return payload volume.", + "title": "Return Payload Volume" + }, + "pressurized_capsule": { + "type": "object", + "properties": { + "payload_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsule volume in cubic meter.", + "title": "Pressurized Capsule Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The pressurized capsule volume in cubic feet.", + "title": "Pressurized Capsule Cubic Feet" + } + }, + "description": "The pressurized capsule payload volume.", + "title": "Pressurized Capsule Payload Volume" + } + }, + "description": "The pressurized capsule.", + "title": "Pressurized Capsule" + }, + "trunk": { + "type": "object", + "properties": { + "trunk_volume": { + "type": "object", + "properties": { + "cubic_meters": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic meter.", + "title": "Trunk Cubic Meters" + }, + "cubic_feet": { + "type": "integer", + "format": "int32", + "description": "The trunk volume in cubic feet.", + "title": "Trunk Cubic Feet" + } + }, + "description": "The trunk volume.", + "title": "Trunk Volume" + }, + "cargo": { + "type": "object", + "properties": { + "solar_array": { + "type": "integer", + "format": "int32", + "description": "The solar array in cargo.", + "title": "Cargo Solar Array" + }, + "unpressurized_cargo": { + "type": "boolean", + "description": "Whether the cargo is unpressurized.", + "title": "Unpressurized Cargo" + } + }, + "description": "The cargo.", + "title": "Cargo" + } + }, + "description": "The trunk.", + "title": "Trunk" + }, + "height_w_trunk": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height with trunk in meters.", + "title": "Height with Trunk Meters" + }, + "feet": { + "type": "number", + "format": "float", + "description": "The height with trunk in feet.", + "title": "Height with Trunk Feet" + } + }, + "description": "The height with trunk.", + "title": "Height with Trunk" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diamter in meters.", + "title": "Diameter Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The diameter in feet.", + "title": "Diameter Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The Flickr images links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "crew_capacity": { + "type": "integer", + "format": "int32", + "description": "The crew capacity.", + "title": "Crew Capacity" + }, + "sidewall_angle_deg": { + "type": "integer", + "format": "int32", + "description": "The sidewall angle in degrees.", + "title": "Sidewall Angle Degrees" + }, + "orbit_duration_yr": { + "type": "integer", + "format": "int32", + "description": "The orbit duration in years.", + "title": "Orbit Duration Years" + }, + "dry_mass_kg": { + "type": "integer", + "format": "int32", + "description": "The dry mass in kilograms.", + "title": "Dry Mass Kg" + }, + "dry_mass_lb": { + "type": "integer", + "format": "int32", + "description": "The dry mass in pounds.", + "title": "Dry Mass Lb" + }, + "thrusters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The thruster type.", + "title": "Thruster Type" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The thruster amount.", + "title": "Thruster Amount" + }, + "pods": { + "type": "integer", + "format": "int32", + "description": "The thruster pods.", + "title": "Thruster Pods" + }, + "fuel_1": { + "type": "string", + "description": "The thruster fuel 1.", + "title": "Thruster Fuel 1" + }, + "fuel_2": { + "type": "string", + "description": "The thruster fuel 2.", + "title": "Thruster Fuel 2" + }, + "isp": { + "type": "integer", + "format": "int32", + "description": "The thruster Isp.", + "title": "Thruster Isp" + }, + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kN.", + "title": "Thrust kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in lbf.", + "title": "Thrust lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + } + } + }, + "description": "The thrusters.", + "title": "Thrusters" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "string", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/history": { + "get": { + "summary": "Get all history events", + "description": "Detailed info on all SpaceX historical events.", + "operationId": "GetAllHistory", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "links": { + "type": "object", + "properties": { + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "event_date_utc": { + "type": "string", + "description": "The event date in UTC.", + "title": "Event Date UTC" + }, + "event_date_unix": { + "type": "integer", + "format": "int32", + "description": "The event date in UNIX.", + "title": "Event Date UNIX" + }, + "details": { + "type": "string", + "description": "The event details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/history/{id}": { + "get": { + "summary": "Get a historic event", + "description": "Detailed info on a SpaceX historical event.", + "operationId": "GetAHistory", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the historic event.", + "x-ms-summary": "Historic Event ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "links": { + "type": "object", + "properties": { + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "event_date_utc": { + "type": "string", + "description": "The event date in UTC.", + "title": "event_date UTC" + }, + "event_date_unix": { + "type": "integer", + "format": "int32", + "description": "The event date in UNIX.", + "title": "Event Date UNIX" + }, + "details": { + "type": "string", + "description": "The event details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/history/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query historic events", + "description": "Detailed info on queried SpaceX historical events.", + "operationId": "QueryHistory", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "links": { + "type": "object", + "properties": { + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + } + }, + "description": "The links.", + "title": "Links" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "event_date_utc": { + "type": "string", + "description": "The event date in UTC.", + "title": "Event Date UTC" + }, + "event_date_unix": { + "type": "integer", + "format": "int32", + "description": "The event date in UNIX.", + "title": "Event Date UNIX" + }, + "details": { + "type": "string", + "description": "The event details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/landpads": { + "get": { + "summary": "Get all landpads", + "description": "Detailed info about all landing pads and ships.", + "operationId": "GetAllLandpads", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images" + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "landing_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of landing attempts.", + "title": "Landing Attempts" + }, + "landing_successes": { + "type": "integer", + "format": "int32", + "description": "The number of landing successes.", + "title": "Landing Successes" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "details": { + "type": "string", + "description": "The landpad details.", + "title": "Details" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/landpads/{id}": { + "get": { + "summary": "Get a landpad", + "description": "Detailed info about a landing pad or ship.", + "operationId": "GetALandpad", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the landpad.", + "x-ms-summary": "Landpad ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images." + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "landing_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of landing attempts.", + "title": "landing_attempts" + }, + "landing_successes": { + "type": "integer", + "format": "int32", + "description": "The number of landing successes.", + "title": "Landing Successes" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "details": { + "type": "string", + "description": "The landpad details.", + "title": "Details" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/landpads/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query landpads", + "description": "Detailed info about queried landing pads and ships.", + "operationId": "QueryLandpads", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images" + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "landing_attempts": { + "type": "integer", + "format": "int32", + "description": "The number of landind attempts.", + "title": "Landing Attempts" + }, + "landing_successes": { + "type": "integer", + "format": "int32", + "description": "The landing successes.", + "title": "Landing Successes" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + }, + "details": { + "type": "string", + "description": "The landpad details.", + "title": "Details" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "string", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/launches": { + "get": { + "summary": "Get all launches", + "description": "Detailed info about all launches.", + "operationId": "GetAllLaunches", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fairings": { + "type": "object", + "properties": { + "reused": { + "type": "boolean", + "description": "Reused.", + "title": "Reused" + }, + "recovery_attempt": { + "type": "boolean", + "description": "The recovery attempt.", + "title": "Recovery Attempt" + }, + "recovered": { + "type": "boolean", + "description": "Recovered.", + "title": "Recovered" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + } + }, + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The campaign.", + "title": "Campaign" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "media": { + "type": "string", + "description": "The media.", + "title": "Media" + }, + "recovery": { + "type": "string", + "description": "The recovery.", + "title": "Recovery" + } + }, + "description": "Reddit.", + "title": "Reddit" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The small images on Flickr.", + "title": "Small Flickr Images" + }, + "original": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The original images on Flickr.", + "title": "Original Flickr Images" + } + }, + "description": "The Flickr images.", + "title": "Flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "description": "The static fire date in UNIX.", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether by net.", + "title": "Net" + }, + "window": { + "type": "integer", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "The success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int32", + "description": "The time.", + "title": "Time" + }, + "altitude": { + "type": "integer", + "format": "int32", + "description": "The altitue.", + "title": "Altitude" + }, + "reason": { + "type": "string", + "description": "The reason.", + "title": "Reason" + } + } + }, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The ships.", + "title": "Ships" + }, + "capsules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The local date.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The core.", + "title": "Core" + }, + "flight": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "Whether has gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "Whether has legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted.", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "The landing success.", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updating.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "Whether to-be-determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/launches/{id}": { + "get": { + "summary": "Get a launch", + "description": "Detailed info about a launch.", + "operationId": "GetALaunch", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the launch.", + "x-ms-summary": "Launch ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "fairings": { + "type": "object", + "properties": { + "reused": { + "type": "boolean", + "description": "The fairings reused.", + "title": "Reused" + }, + "recovery_attempt": { + "type": "boolean", + "description": "The recovery attempt.", + "title": "Recovery Attempt" + }, + "recovered": { + "type": "boolean", + "description": "The recovered.", + "title": "Recovered" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + } + }, + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The reddit campaign", + "title": "Reddit campaign" + }, + "launch": { + "type": "string", + "description": "The reddit launch.", + "title": "Reddit Launch" + }, + "media": { + "type": "string", + "description": "The reddit media.", + "title": "Reddit Media" + }, + "recovery": { + "type": "string", + "description": "The reddit recovery.", + "title": "Reddit eecovery" + } + }, + "description": "The reddit links", + "title": "Reddit Links" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The Flickr small images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": {}, + "description": "The Flickr original images.", + "title": "Flickr Original" + } + }, + "description": "The Flickr images.", + "title": "Flickr Images" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "description": "The static fire date in ", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether used a net.", + "title": "Net" + }, + "window": { + "type": "integer", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "The success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": {}, + "description": "The failures.", + "title": "Failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": {}, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + }, + "capsules": { + "type": "array", + "items": {}, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "Date in UNIX", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The date at local.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The precision date.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The cores' core.", + "title": "Cores' Core" + }, + "flight": { + "type": "string", + "description": "The cores' flight.", + "title": "Cores' Flight" + }, + "gridfins": { + "type": "string", + "description": "The cores' gridfins.", + "title": "Cores' Gridfins" + }, + "legs": { + "type": "string", + "description": "The cores' legs.", + "title": "Cores' Legs" + }, + "reused": { + "type": "boolean", + "description": "Reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "string", + "description": "The landing attempt.", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "The landing success.", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updated.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "To be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/launches/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query launches", + "description": "Detailed info about queried launches.", + "operationId": "QueryLaunches", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fairings": { + "type": "string", + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The reddit campaign.", + "title": "Reddit Campaign" + }, + "launch": { + "type": "string", + "description": "The reddit launch.", + "title": "Reddit Launch" + }, + "media": { + "type": "string", + "description": "The reddit media.", + "title": "Reddit Media" + }, + "recovery": { + "type": "string", + "description": "The reddit recovery.", + "title": "Reddit Recovery" + } + }, + "description": "Reddit links.", + "title": "reddit" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The Flickr small images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": {}, + "description": "The Flickr original images.", + "title": "Flickr Originals" + } + }, + "description": "Flickr images.", + "title": "Flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia.", + "title": "Wikipedia" + } + }, + "description": "The links.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "format": "int32", + "description": "The static fire date in UNIX", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether a net was used.", + "title": "Net" + }, + "window": { + "type": "integer", + "format": "int32", + "description": "The number of windows.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "Whether a success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int32", + "description": "The failure time.", + "title": "Failure Time" + }, + "altitude": { + "type": "integer", + "format": "int32", + "description": "The failure altitude.", + "title": "Failure Altitude" + }, + "reason": { + "type": "string", + "description": "The failure reason.", + "title": "Failure Reason" + } + } + }, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": {}, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The ships.", + "title": "Ships" + }, + "capsules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The date at local.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The cores core.", + "title": "Core" + }, + "flight": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "The gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "The legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted.", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "Whether landing successful.", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updating.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "Whether to be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/launches/past": { + "get": { + "summary": "Get past launches", + "description": "Detailed info about past launches.", + "operationId": "GetPastLaunches", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fairings": { + "type": "string", + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The reddit campaign.", + "title": "Reddit Campaign" + }, + "launch": { + "type": "string", + "description": "The reddit launch.", + "title": "Reddit Launch" + }, + "media": { + "type": "string", + "description": "The reddit media.", + "title": "Reddit Media" + }, + "recovery": { + "type": "string", + "description": "The reddit recovery.", + "title": "Reddit Recovery" + } + }, + "description": "Reddit.", + "title": "Reddit Campaign" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The Flickr small images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": { + "type": "string", + "title": "Items" + }, + "description": "The Flickr original images.", + "title": "Flickr Originals" + } + }, + "description": "The Flickr images.", + "title": "flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "format": "int32", + "description": "The static fire date in UNIX.", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether by net", + "title": "Net" + }, + "window": { + "type": "integer", + "format": "int32", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "The success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int32", + "description": "The failure time.", + "title": "Failure Time" + }, + "altitude": { + "type": "integer", + "format": "int32", + "description": "The failure altitude.", + "title": "Failure Altitude" + }, + "reason": { + "type": "string", + "description": "The failure reason.", + "title": "Failure Reason" + } + } + }, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The ships.", + "title": "Ships" + }, + "capsules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The local date.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The core.", + "title": "Core" + }, + "flight": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "Whether has gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "Whether has legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted.", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "The landing success", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updated.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "To be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/launches/upcoming": { + "get": { + "summary": "Get upcoming launches", + "description": "Detailed info about upcoming launches.", + "operationId": "GetUpcomingLaunches", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fairings": { + "type": "object", + "properties": { + "reused": { + "type": "boolean", + "description": "Reused.", + "title": "Reused" + }, + "recovery_attempt": { + "type": "boolean", + "description": "The recovery attempt.", + "title": "Recovery Attempt" + }, + "recovered": { + "type": "boolean", + "description": "Recovered.", + "title": "Recovered" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + } + }, + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The campaign.", + "title": "Campaign" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "media": { + "type": "string", + "description": "The media.", + "title": "Media" + }, + "recovery": { + "type": "string", + "description": "The recovery.", + "title": "Recovery" + } + }, + "description": "Reddit.", + "title": "Reddit" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The Flickr small images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": {}, + "description": "The Flickr original images.", + "title": "Flickr Originals" + } + }, + "description": "The Flickr images.", + "title": "flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "description": "The static fire date in UNIX.", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether by net", + "title": "Net" + }, + "window": { + "type": "integer", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "The success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": {}, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + }, + "capsules": { + "type": "array", + "items": {}, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The local date.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The core.", + "title": "Core" + }, + "flight": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "Whether has gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "Whether has legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted.", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "The landing success", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updated.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "To be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/launches/latest": { + "get": { + "summary": "Get latest launch", + "description": "Detailed info about latest launch.", + "operationId": "GetLatestLaunch", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "fairings": { + "type": "string", + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The reddit campaign.", + "title": "Reddit Campaign" + }, + "launch": { + "type": "string", + "description": "The reddit launch.", + "title": "Reddit Launch" + }, + "media": { + "type": "string", + "description": "The reddit media.", + "title": "Reddit Media" + }, + "recovery": { + "type": "string", + "description": "The reddit recovery.", + "title": "Reddit Recovery" + } + }, + "description": "The reddit links.", + "title": "Reddit" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The small Flickr images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": {}, + "description": "The original Flickr images.", + "title": "Flickr Originals" + } + }, + "description": "Flickr Images", + "title": "Flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "integer", + "description": "The static fire date in UNIX.", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether used a net.", + "title": "Net" + }, + "window": { + "type": "integer", + "format": "int32", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "Whether a success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": {}, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": { + "type": "string", + "title": "Items" + }, + "description": "The ships.", + "title": "ships" + }, + "capsules": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The date at local.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The core's core.", + "title": "Core" + }, + "flight": { + "type": "integer", + "format": "int32", + "description": "The flight.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "Whether had gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "Whether had legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "Whether landing successful.", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updating.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "Whether to be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/launches/next": { + "get": { + "summary": "Get next launch", + "description": "Detailed info about next launches.", + "operationId": "GetNextLaunch", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "fairings": { + "type": "object", + "properties": { + "reused": { + "type": "boolean", + "description": "The reused fairings.", + "title": "Reused" + }, + "recovery_attempt": { + "type": "boolean", + "description": "The recovery attempt.", + "title": "Recovery Attempt" + }, + "recovered": { + "type": "boolean", + "description": "The recovered.", + "title": "Recovered" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "Ships" + } + }, + "description": "The fairings.", + "title": "Fairings" + }, + "links": { + "type": "object", + "properties": { + "patch": { + "type": "object", + "properties": { + "small": { + "type": "string", + "description": "The small patch.", + "title": "Small Patch" + }, + "large": { + "type": "string", + "description": "The large patch.", + "title": "Large Patch" + } + }, + "description": "The patch.", + "title": "Patch" + }, + "reddit": { + "type": "object", + "properties": { + "campaign": { + "type": "string", + "description": "The reddit campaign.", + "title": "Reddit Campaign" + }, + "launch": { + "type": "string", + "description": "The reddit launch.", + "title": "Reddit Launch" + }, + "media": { + "type": "string", + "description": "The reddit media.", + "title": "Reddit Media" + }, + "recovery": { + "type": "string", + "description": "The reddit recovery.", + "title": "Reddit Recovery" + } + }, + "description": "The reddit links.", + "title": "Reddit" + }, + "flickr": { + "type": "object", + "properties": { + "small": { + "type": "array", + "items": {}, + "description": "The Flickr small images.", + "title": "Flickr Small" + }, + "original": { + "type": "array", + "items": {}, + "description": "The Flickr original images.", + "title": "Flicrk Originals" + } + }, + "description": "Flickr Images", + "title": "Flickr" + }, + "presskit": { + "type": "string", + "description": "The presskit.", + "title": "Presskit" + }, + "webcast": { + "type": "string", + "description": "The webcast.", + "title": "Webcast" + }, + "youtube_id": { + "type": "string", + "description": "The YouTube ID.", + "title": "YouTube ID" + }, + "article": { + "type": "string", + "description": "The article.", + "title": "Article" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia.", + "title": "Wikipedia" + } + }, + "description": "Link addresses.", + "title": "Links" + }, + "static_fire_date_utc": { + "type": "string", + "description": "The static fire date in UTC.", + "title": "Static Fire Date UTC" + }, + "static_fire_date_unix": { + "type": "string", + "description": "The static fire date in UNIX.", + "title": "Static Fire Date UNIX" + }, + "net": { + "type": "boolean", + "description": "Whether used a net.", + "title": "Net" + }, + "window": { + "type": "integer", + "description": "The window.", + "title": "Window" + }, + "rocket": { + "type": "string", + "description": "The rocket.", + "title": "Rocket" + }, + "success": { + "type": "boolean", + "description": "Whether a success.", + "title": "Success" + }, + "failures": { + "type": "array", + "items": {}, + "description": "The failures.", + "title": "failures" + }, + "details": { + "type": "string", + "description": "The launch details.", + "title": "Details" + }, + "crew": { + "type": "array", + "items": {}, + "description": "The crew.", + "title": "Crew" + }, + "ships": { + "type": "array", + "items": {}, + "description": "The ships.", + "title": "ships" + }, + "capsules": { + "type": "array", + "items": {}, + "description": "The capsules.", + "title": "Capsules" + }, + "payloads": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The payloads.", + "title": "Payloads" + }, + "launchpad": { + "type": "string", + "description": "The launchpad.", + "title": "Launchpad" + }, + "flight_number": { + "type": "integer", + "format": "int32", + "description": "The flight number.", + "title": "Flight Number" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "date_utc": { + "type": "string", + "description": "The date in UTC.", + "title": "Date UTC" + }, + "date_unix": { + "type": "integer", + "format": "int32", + "description": "The date in UNIX.", + "title": "Date UNIX" + }, + "date_local": { + "type": "string", + "description": "The date at local.", + "title": "Date Local" + }, + "date_precision": { + "type": "string", + "description": "The date precision.", + "title": "Date Precision" + }, + "upcoming": { + "type": "boolean", + "description": "Whether upcoming.", + "title": "Upcoming" + }, + "cores": { + "type": "array", + "items": { + "type": "object", + "properties": { + "core": { + "type": "string", + "description": "The core's core.", + "title": "Core" + }, + "flight": { + "type": "string", + "description": "The flight.", + "title": "Flight" + }, + "gridfins": { + "type": "boolean", + "description": "Whether had gridfins.", + "title": "Gridfins" + }, + "legs": { + "type": "boolean", + "description": "Whether had legs.", + "title": "Legs" + }, + "reused": { + "type": "boolean", + "description": "Reused.", + "title": "Reused" + }, + "landing_attempt": { + "type": "boolean", + "description": "Whether landing attempted", + "title": "Landing Attempt" + }, + "landing_success": { + "type": "boolean", + "description": "Whether landing successful.", + "title": "Landing Success" + }, + "landing_type": { + "type": "string", + "description": "The landing type.", + "title": "Landing Type" + }, + "landpad": { + "type": "string", + "description": "The landpad.", + "title": "Landpad" + } + } + }, + "description": "The cores.", + "title": "Cores" + }, + "auto_update": { + "type": "boolean", + "description": "Whether auto-updating.", + "title": "Auto-update" + }, + "tbd": { + "type": "boolean", + "description": "Whether to be determined.", + "title": "TBD" + }, + "launch_library_id": { + "type": "string", + "description": "The launch library ID.", + "title": "Launch Library ID" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/launchpads": { + "get": { + "summary": "Get all launchpads", + "description": "Detailed info about all launchpads.", + "operationId": "GetAllLaunchpads", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images" + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "launch_attempts": { + "type": "integer", + "format": "int32", + "description": "The launch attempts.", + "title": "Launch Attempts" + }, + "launch_successes": { + "type": "integer", + "format": "int32", + "description": "The launch successes.", + "title": "Launch Successes" + }, + "rockets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The rockets.", + "title": "Rockets" + }, + "timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "details": { + "type": "string", + "description": "The launchpad details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/launchpads/{id}": { + "get": { + "summary": "Get a launchpad", + "description": "Detailed info about a launchpad.", + "operationId": "GetALaunchpad", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the launchpad.", + "x-ms-summary": "Launchpad ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images." + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "launch_attempts": { + "type": "integer", + "format": "int32", + "description": "The launch attempts.", + "title": "Launch Attempts" + }, + "launch_successes": { + "type": "integer", + "format": "int32", + "description": "The launch successes.", + "title": "Launch Successes" + }, + "rockets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The rockets.", + "title": "Rockets" + }, + "timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "details": { + "type": "string", + "description": "The launchpad details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/launchpads/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query launchpads", + "description": "Detailed info about queried launchpads.", + "operationId": "QueryLaunchpads", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "images": { + "type": "object", + "properties": { + "large": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The large images.", + "title": "Large Images" + } + }, + "description": "The images.", + "title": "images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "full_name": { + "type": "string", + "description": "The full name.", + "title": "Full Name" + }, + "locality": { + "type": "string", + "description": "The locality.", + "title": "Locality" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "launch_attempts": { + "type": "integer", + "format": "int32", + "description": "The launch attempts.", + "title": "Launch Attempts" + }, + "launch_successes": { + "type": "integer", + "format": "int32", + "description": "The launch successes.", + "title": "Launch Successes" + }, + "rockets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The rockets.", + "title": "Rockets" + }, + "timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "details": { + "type": "string", + "description": "The launchpad details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "string", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/payloads": { + "get": { + "summary": "Get all payloads", + "description": "Detailed info about all launch payloads.", + "operationId": "GetAllPayloads", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dragon": { + "type": "object", + "properties": { + "capsule": { + "type": "string", + "description": "The Dragon capsule.", + "title": "Dragon Capsule" + }, + "mass_returned_kg": { + "type": "string", + "description": "The mass returned in kilograms.", + "title": "Mass Returned Kg" + }, + "mass_returned_lbs": { + "type": "string", + "description": "The mass returned in pounds.", + "title": "Mass Returned Lbs" + }, + "flight_time_sec": { + "type": "string", + "description": "The flight time in seconds.", + "title": "Flight Time Seconds" + }, + "manifest": { + "type": "string", + "description": "The manifest.", + "title": "Manifest" + }, + "water_landing": { + "type": "string", + "description": "The water landing.", + "title": "Water Landing" + }, + "land_landing": { + "type": "string", + "description": "The land landing.", + "title": "Land Landing" + } + }, + "description": "The Dragon", + "title": "Dragon" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "customers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The customers.", + "title": "Customers" + }, + "norad_ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The NORAD IDs.", + "title": "NORAD IDs" + }, + "nationalities": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The nationalities.", + "title": "Nationalities" + }, + "manufacturers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The manufacturers.", + "title": "Manufacturers" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "orbit": { + "type": "string", + "description": "The orbit.", + "title": "Orbit" + }, + "reference_system": { + "type": "string", + "description": "The reference system.", + "title": "Reference System" + }, + "regime": { + "type": "string", + "description": "the regime.", + "title": "Regime" + }, + "longitude": { + "type": "string", + "description": "The longitude.", + "title": "Longitude" + }, + "semi_major_axis_km": { + "type": "string", + "description": "The semi-major axix in kilometers.", + "title": "Semi-major Axis Km" + }, + "eccentricity": { + "type": "string", + "description": "The eccentricity.", + "title": "Eccentricity" + }, + "periapsis_km": { + "type": "string", + "description": "The periapsis in kilometers.", + "title": "Periapsis Km" + }, + "apoapsis_km": { + "type": "string", + "description": "The apoapsis in kilometers.", + "title": "Apoapsis Km" + }, + "inclination_deg": { + "type": "string", + "description": "The inclination degree.", + "title": "Inclination Degree" + }, + "period_min": { + "type": "string", + "description": "The period minimum.", + "title": "Period Minimum" + }, + "lifespan_years": { + "type": "string", + "description": "The lifespan in years.", + "title": "Lifespan Years" + }, + "epoch": { + "type": "string", + "description": "The epoch.", + "title": "Epoch" + }, + "mean_motion": { + "type": "string", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "raan": { + "type": "string", + "description": "The right ascension of the ascending node.", + "title": "RAAN" + }, + "arg_of_pericenter": { + "type": "string", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "mean_anomaly": { + "type": "string", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/payloads/{id}": { + "get": { + "summary": "Get a payload", + "description": "Detailed info about a launch payload.", + "operationId": "GetAPayload", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the payload.", + "x-ms-summary": "Payload ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "dragon": { + "type": "object", + "properties": { + "capsule": { + "type": "string", + "description": "The Dragon capsule.", + "title": "Capsule" + }, + "mass_returned_kg": { + "type": "string", + "description": "The mass returned in kilograms.", + "title": "Mass Returned Kg" + }, + "mass_returned_lbs": { + "type": "string", + "description": "The mass returned in pounds.", + "title": "Mass Returned Lbs" + }, + "flight_time_sec": { + "type": "string", + "description": "The flight time in seconds.", + "title": "Flight Time Seconds" + }, + "manifest": { + "type": "string", + "description": "The manifest.", + "title": "Manifest" + }, + "water_landing": { + "type": "string", + "description": "The water landing.", + "title": "Water Landing" + }, + "land_landing": { + "type": "string", + "description": "The land landing.", + "title": "Land Landing" + } + }, + "description": "The Dragon.", + "title": "dragon" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "customers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The customers.", + "title": "Customers" + }, + "norad_ids": { + "type": "array", + "items": {}, + "description": "The NORAD IDs.", + "title": "NORAD IDs" + }, + "nationalities": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The nationalities.", + "title": "Nationalities" + }, + "manufacturers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The manufacturers.", + "title": "Manufacturers" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "orbit": { + "type": "string", + "description": "The orbit.", + "title": "Orbit" + }, + "reference_system": { + "type": "string", + "description": "The reference system.", + "title": "Reference System" + }, + "regime": { + "type": "string", + "description": "The regime.", + "title": "Regime" + }, + "longitude": { + "type": "string", + "description": "The longitude.", + "title": "Longitude" + }, + "semi_major_axis_km": { + "type": "string", + "description": "The semi-major axis in kilometers.", + "title": "Semi-major Axis Km" + }, + "eccentricity": { + "type": "string", + "description": "The eccesntricity.", + "title": "Eccentricity" + }, + "periapsis_km": { + "type": "string", + "description": "The periapsis in kilometers.", + "title": "Periapsis Km" + }, + "apoapsis_km": { + "type": "string", + "description": "The apoapsis in kilometers.", + "title": "Apoapsis Km" + }, + "inclination_deg": { + "type": "string", + "description": "The inclination in degrees.", + "title": "Inclination Degree" + }, + "period_min": { + "type": "string", + "description": "The period minimum.", + "title": "Period Minimum" + }, + "lifespan_years": { + "type": "string", + "description": "The lifespan in years.", + "title": "Lifespan Years" + }, + "epoch": { + "type": "string", + "description": "The epoch.", + "title": "Epoch" + }, + "mean_motion": { + "type": "string", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "raan": { + "type": "string", + "description": "The right ascension of the ascending node.", + "title": "RAAN" + }, + "arg_of_pericenter": { + "type": "string", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "mean_anomaly": { + "type": "string", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/payloads/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query payloads", + "description": "Detailed info about queried launch payloads.", + "operationId": "QueryPayloads", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dragon": { + "type": "object", + "properties": { + "capsule": { + "type": "string", + "description": "The capsule.", + "title": "Capsule" + }, + "mass_returned_kg": { + "type": "string", + "description": "The mass returned in kilograms.", + "title": "Mass Returned Kg" + }, + "mass_returned_lbs": { + "type": "string", + "description": "The mass returned in pounds.", + "title": "Mass Returned Lbs" + }, + "flight_time_sec": { + "type": "integer", + "format": "int32", + "description": "The flight time seconds.", + "title": "Flight Time Seconds" + }, + "manifest": { + "type": "string", + "description": "The manifest.", + "title": "Manifest" + }, + "water_landing": { + "type": "boolean", + "description": "The water landing.", + "title": "Water Landing" + }, + "land_landing": { + "type": "boolean", + "description": "The land landing.", + "title": "Land Landing" + } + }, + "description": "The Dragon.", + "title": "Dragon" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "reused": { + "type": "boolean", + "description": "Whether reused.", + "title": "Reused" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "customers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The customers.", + "title": "Customers" + }, + "norad_ids": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "description": "The NORAG IDs.", + "title": "NORAD IDs" + }, + "nationalities": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The nationalities.", + "title": "Nationalities" + }, + "manufacturers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The manufacturers.", + "title": "Manufacturers" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "orbit": { + "type": "string", + "description": "The orbit.", + "title": "Orbit" + }, + "reference_system": { + "type": "string", + "description": "The reference system.", + "title": "Reference System" + }, + "regime": { + "type": "string", + "description": "The regime.", + "title": "Regime" + }, + "longitude": { + "type": "string", + "description": "The longitude.", + "title": "Longitude" + }, + "semi_major_axis_km": { + "type": "number", + "format": "float", + "description": "The semi-major axis in kilometers.", + "title": "Semi-major Axis Km" + }, + "eccentricity": { + "type": "number", + "format": "float", + "description": "The excentricity.", + "title": "Eccentricity" + }, + "periapsis_km": { + "type": "number", + "format": "float", + "description": "The periapsis in kilometers.", + "title": "Periapsis Km" + }, + "apoapsis_km": { + "type": "number", + "format": "float", + "description": "The apoapsis in kilometers.", + "title": "Apoapsis Km" + }, + "inclination_deg": { + "type": "number", + "format": "float", + "description": "The inclination in degrees.", + "title": "Inclination Degree" + }, + "period_min": { + "type": "number", + "format": "float", + "description": "The period minimum.", + "title": "Period Minimum" + }, + "lifespan_years": { + "type": "string", + "description": "The lifespan in years.", + "title": "Lifespan Years" + }, + "epoch": { + "type": "string", + "description": "The epoch.", + "title": "Epoch" + }, + "mean_motion": { + "type": "number", + "format": "float", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "raan": { + "type": "number", + "format": "float", + "description": "The right ascension of the ascending node.", + "title": "RAAN" + }, + "arg_of_pericenter": { + "type": "number", + "format": "float", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "mean_anomaly": { + "type": "number", + "format": "float", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/roadster": { + "get": { + "summary": "Get Roadster Info", + "description": "Detailed info about Elon's Tesla Roadster's current position.", + "operationId": "GetRoadsterInfo", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "launch_date_utc": { + "type": "string", + "description": "The launch date in UTC.", + "title": "Launch Date UTC" + }, + "launch_date_unix": { + "type": "integer", + "format": "int32", + "description": "The launch date in UNIX.", + "title": "Launch Date UNIX" + }, + "launch_mass_kg": { + "type": "integer", + "format": "int32", + "description": "The launch mass in kilograms.", + "title": "Launch Mass Kg" + }, + "launch_mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The launch mass in pounds.", + "title": "Launch Mass Lbs" + }, + "norad_id": { + "type": "integer", + "format": "int32", + "description": "The NORAD ID", + "title": "NORAD ID" + }, + "epoch_jd": { + "type": "number", + "format": "float", + "description": "The discrete epoch.", + "title": "Epoch JD" + }, + "orbit_type": { + "type": "string", + "description": "The orbit type.", + "title": "Orbit Type" + }, + "apoapsis_au": { + "type": "number", + "format": "float", + "description": "The apoapsis astromical unit", + "title": "apoapsis_au" + }, + "periapsis_au": { + "type": "number", + "format": "float", + "description": "The periapsis astronomical unit.", + "title": "Periapsis AU" + }, + "semi_major_axis_au": { + "type": "number", + "format": "float", + "description": "The semi-major axis astronomical unit.", + "title": "Semi-major Axis AU" + }, + "eccentricity": { + "type": "number", + "format": "float", + "description": "The eccentricity.", + "title": "Eccentricity" + }, + "inclination": { + "type": "number", + "format": "float", + "description": "The inclination.", + "title": "Inclination" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "periapsis_arg": { + "type": "number", + "format": "float", + "description": "The periapsis argument.", + "title": "Periapsis Arg" + }, + "period_days": { + "type": "number", + "format": "float", + "description": "The period in days.", + "title": "Period Days" + }, + "speed_kph": { + "type": "number", + "format": "float", + "description": "The speed in kilometers per hour.", + "title": "Speed KPH" + }, + "speed_mph": { + "type": "number", + "format": "float", + "description": "The speed in miles per hour.", + "title": "Speed MPH" + }, + "earth_distance_km": { + "type": "number", + "format": "float", + "description": "The Earth distance in kilomters.", + "title": "Earth Distance Km" + }, + "earth_distance_mi": { + "type": "number", + "format": "float", + "description": "The Earth distance in miles.", + "title": "Earth Distance Miles" + }, + "mars_distance_km": { + "type": "number", + "format": "float", + "description": "The Mars distance in kilometers.", + "title": "Mars Distance Km" + }, + "mars_distance_mi": { + "type": "number", + "format": "float", + "description": "The Mars distance in miles.", + "title": "Mars Distance Miles" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Flickr image links.", + "title": "Flickr Images" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "video": { + "type": "string", + "description": "The video.", + "title": "Video" + }, + "details": { + "type": "string", + "description": "The Roadster details.", + "title": "Details" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/rockets": { + "get": { + "summary": "Get all rockets", + "description": "Detailed info about all rockets.", + "operationId": "GetAllRockets", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds", + "title": "Lb" + } + }, + "description": "The mass.", + "title": "Mass" + }, + "first_stage": { + "type": "object", + "properties": { + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The engines", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The first stage.", + "title": "First Stage" + }, + "second_stage": { + "type": "object", + "properties": { + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + }, + "payloads": { + "type": "object", + "properties": { + "composite_fairing": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diameter in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The diameter in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + } + }, + "description": "The fairing composite.", + "title": "Composite Fairing" + }, + "option_1": { + "type": "string", + "description": "The option 1.", + "title": "Option 1" + } + }, + "description": "The payloads.", + "title": "Payloads" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The engines", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The second stage.", + "title": "Second Stage" + }, + "engines": { + "type": "object", + "properties": { + "isp": { + "type": "object", + "properties": { + "sea_level": { + "type": "integer", + "format": "int32", + "description": "The Isp at sea level.", + "title": "Sea Level" + }, + "vacuum": { + "type": "integer", + "format": "int32", + "description": "The vacuum at sea level.", + "title": "Vacuum" + } + }, + "description": "The specific impulse.", + "title": "Isp" + }, + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust in kilogram newtons.", + "title": "Thurst kN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust in pounds of force.", + "title": "Thurst Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number.", + "title": "Number" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "version": { + "type": "string", + "description": "The version.", + "title": "Version" + }, + "layout": { + "type": "string", + "description": "The layout.", + "title": "Layout" + }, + "engine_loss_max": { + "type": "integer", + "description": "The engine loss maximum.", + "title": "Engine Loss Maximum" + }, + "propellant_1": { + "type": "string", + "description": "The propellant 1.", + "title": "Propellant 1" + }, + "propellant_2": { + "type": "string", + "description": "The propellant 2.", + "title": "Propellant 2" + }, + "thrust_to_weight": { + "type": "integer", + "format": "int32", + "description": "The thrust to weight ratio.", + "title": "Thrust to Weight" + } + }, + "description": "The engines.", + "title": "Engines" + }, + "landing_legs": { + "type": "object", + "properties": { + "number": { + "type": "integer", + "format": "int32", + "description": "The number of landing legs.", + "title": "Number" + }, + "material": { + "type": "string", + "description": "The landing legs material.", + "title": "material" + } + }, + "description": "The landing legs.", + "title": "Landing Legs" + }, + "payload_weights": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The item name.", + "title": "Name" + }, + "kg": { + "type": "integer", + "format": "int32", + "description": "The weight in kilograms.", + "title": "Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The weight in pounds.", + "title": "Lb" + } + } + }, + "description": "The payload weights.", + "title": "Payload Weights" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The Flickr image links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "stages": { + "type": "integer", + "format": "int32", + "description": "The stages.", + "title": "Stages" + }, + "boosters": { + "type": "integer", + "format": "int32", + "description": "The boosters.", + "title": "Boosters" + }, + "cost_per_launch": { + "type": "integer", + "format": "int32", + "description": "The cost per launch.", + "title": "Cost Per Launch" + }, + "success_rate_pct": { + "type": "integer", + "format": "int32", + "description": "The success rate percentage.", + "title": "Success Rate PCT" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/rockets/{id}": { + "get": { + "summary": "Get a rocket", + "description": "Detailed info about a rocket.", + "operationId": "GetARocket", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the rocket.", + "x-ms-summary": "Rocket ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Lb" + } + }, + "description": "The mass.", + "title": "Mass" + }, + "first_stage": { + "type": "object", + "properties": { + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The number of engines.", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The first stage.", + "title": "First Stage" + }, + "second_stage": { + "type": "object", + "properties": { + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + }, + "payloads": { + "type": "object", + "properties": { + "composite_fairing": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diamter in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The diameter in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + } + }, + "description": "The composite fairing.", + "title": "Composite Fairing" + }, + "option_1": { + "type": "string", + "description": "Option 1", + "title": "Option 1" + } + }, + "description": "The payloads.", + "title": "Payloads" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The number of engines.", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The second stage.", + "title": "Second Stage" + }, + "engines": { + "type": "object", + "properties": { + "isp": { + "type": "object", + "properties": { + "sea_level": { + "type": "integer", + "format": "int32", + "description": "The Isp at sea level.", + "title": "Sea Level" + }, + "vacuum": { + "type": "integer", + "format": "int32", + "description": "The Isp vacuum.", + "title": "Vacuum" + } + }, + "description": "The Isp.", + "title": "Isp" + }, + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust at sea level in kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust at sea level in pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "integer", + "format": "int32", + "description": "The thrust vacuum in kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The thrust vacuum in pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number.", + "title": "Number" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "version": { + "type": "string", + "description": "The version.", + "title": "Version" + }, + "layout": { + "type": "string", + "description": "The layout.", + "title": "Layout" + }, + "engine_loss_max": { + "type": "integer", + "description": "The engine loss maximum.", + "title": "Engine Loss Maximum" + }, + "propellant_1": { + "type": "string", + "description": "The propellant 1.", + "title": "Propellant 1" + }, + "propellant_2": { + "type": "string", + "description": "The propellant 2.", + "title": "Propellant 2" + }, + "thrust_to_weight": { + "type": "integer", + "format": "int32", + "description": "The thrust to weight.", + "title": "Thrust to Weight" + } + }, + "description": "The engines.", + "title": "Engines" + }, + "landing_legs": { + "type": "object", + "properties": { + "number": { + "type": "integer", + "format": "int32", + "description": "The number of landing legs.", + "title": "Number" + }, + "material": { + "type": "string", + "description": "The material.", + "title": "Material" + } + }, + "description": "The landing legs.", + "title": "Landing Legs" + }, + "payload_weights": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds", + "title": "Lb" + } + } + }, + "description": "The payload weights.", + "title": "Payload Weights" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Flickr image links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "stages": { + "type": "integer", + "format": "int32", + "description": "The number of stages.", + "title": "Stages" + }, + "boosters": { + "type": "integer", + "format": "int32", + "description": "The number of boosters.", + "title": "Boosters" + }, + "cost_per_launch": { + "type": "integer", + "format": "int32", + "description": "The cost per launch.", + "title": "Cost Per Launch" + }, + "success_rate_pct": { + "type": "integer", + "format": "int32", + "description": "The success rate PCT.", + "title": "Success Rate PCT" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia address.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/rockets/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query rockets", + "description": "Detailed info about queried rockets.", + "operationId": "QueryRockets", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "integer", + "format": "int32", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "number", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + }, + "mass": { + "type": "object", + "properties": { + "kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lb" + } + }, + "description": "The mass.", + "title": "Mass" + }, + "first_stage": { + "type": "object", + "properties": { + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "number", + "format": "float", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "number", + "format": "float", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The engines.", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The first stage.", + "title": "First Stage" + }, + "second_stage": { + "type": "object", + "properties": { + "thrust": { + "type": "object", + "properties": { + "kN": { + "type": "number", + "format": "float", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust.", + "title": "Thrust" + }, + "payloads": { + "type": "object", + "properties": { + "composite_fairing": { + "type": "object", + "properties": { + "height": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The height in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The height in feet.", + "title": "Feet" + } + }, + "description": "The height.", + "title": "Height" + }, + "diameter": { + "type": "object", + "properties": { + "meters": { + "type": "number", + "format": "float", + "description": "The diameter in meters.", + "title": "Meters" + }, + "feet": { + "type": "string", + "description": "The diameter in feet.", + "title": "Feet" + } + }, + "description": "The diameter.", + "title": "Diameter" + } + }, + "description": "The composite fairing.", + "title": "Composite Fairing" + }, + "option_1": { + "type": "string", + "description": "The option 1.", + "title": "Option 1" + } + }, + "description": "The payloads.", + "title": "Payloads" + }, + "reusable": { + "type": "boolean", + "description": "Whether reusable.", + "title": "Reusable" + }, + "engines": { + "type": "integer", + "format": "int32", + "description": "The engines.", + "title": "Engines" + }, + "fuel_amount_tons": { + "type": "number", + "description": "The fuel amount in tons.", + "title": "Fuel Amount Tons" + }, + "burn_time_sec": { + "type": "integer", + "description": "The burn time in seconds.", + "title": "Burn Time Seconds" + } + }, + "description": "The second stage.", + "title": "Second Stage" + }, + "engines": { + "type": "object", + "properties": { + "isp": { + "type": "object", + "properties": { + "sea_level": { + "type": "integer", + "format": "int32", + "description": "The Isp at sea level.", + "title": "Sea Level" + }, + "vacuum": { + "type": "integer", + "format": "int32", + "description": "The vacuum at sea level.", + "title": "Vacuum" + } + }, + "description": "The Isp.", + "title": "Isp" + }, + "thrust_sea_level": { + "type": "object", + "properties": { + "kN": { + "type": "number", + "format": "float", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust at sea level.", + "title": "Thrust Sea Level" + }, + "thrust_vacuum": { + "type": "object", + "properties": { + "kN": { + "type": "number", + "format": "float", + "description": "The kilonewtons.", + "title": "KN" + }, + "lbf": { + "type": "integer", + "format": "int32", + "description": "The pounds of force.", + "title": "Lbf" + } + }, + "description": "The thrust vacuum.", + "title": "Thrust Vacuum" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number.", + "title": "Number" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "version": { + "type": "string", + "description": "The version", + "title": "Version" + }, + "layout": { + "type": "string", + "description": "The layout.", + "title": "Layout" + }, + "engine_loss_max": { + "type": "integer", + "description": "The engine loss maximum.", + "title": "Engine Loss Maximum" + }, + "propellant_1": { + "type": "string", + "description": "The propellant 1.", + "title": "Propellant 1" + }, + "propellant_2": { + "type": "string", + "description": "The propellant 2.", + "title": "Propellant 2" + }, + "thrust_to_weight": { + "type": "integer", + "format": "int32", + "description": "The thrust to weight.", + "title": "Thrust to Weight" + } + }, + "description": "The engines", + "title": "Engines" + }, + "landing_legs": { + "type": "object", + "properties": { + "number": { + "type": "integer", + "format": "int32", + "description": "The number of landing legs.", + "title": "Number" + }, + "material": { + "type": "string", + "description": "The material type.", + "title": "Material" + } + }, + "description": "The landing legs.", + "title": "Landing Legs" + }, + "payload_weights": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "name" + }, + "kg": { + "type": "integer", + "format": "int32", + "description": "The weight in kilograms.", + "title": "Kg" + }, + "lb": { + "type": "integer", + "format": "int32", + "description": "The weight in pounds.", + "title": "Lb" + } + } + }, + "description": "The payload weights.", + "title": "Payload Weights" + }, + "flickr_images": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The Flickr images links.", + "title": "Flickr Images" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "active": { + "type": "boolean", + "description": "Whether active", + "title": "Active" + }, + "stages": { + "type": "integer", + "format": "int32", + "description": "The number of stages.", + "title": "Stages" + }, + "boosters": { + "type": "integer", + "format": "int32", + "description": "The number of boosters.", + "title": "Boosters" + }, + "cost_per_launch": { + "type": "integer", + "format": "int32", + "description": "The cost per launch.", + "title": "Cost Per Launch" + }, + "success_rate_pct": { + "type": "integer", + "format": "int32", + "description": "The success rate percentage.", + "title": "Success Rate PCT" + }, + "first_flight": { + "type": "string", + "description": "The first flight.", + "title": "First Flight" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "company": { + "type": "string", + "description": "The company.", + "title": "Company" + }, + "wikipedia": { + "type": "string", + "description": "The Wikipedia link.", + "title": "Wikipedia" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "string", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/ships": { + "get": { + "summary": "Get all ships", + "description": "Detailed info about all ships in the SpaceX fleet.", + "operationId": "GetAllShips", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "last_ais_update": { + "type": "string", + "description": "The last AIS update.", + "title": "Last AIS Update" + }, + "legacy_id": { + "type": "string", + "description": "The legacy ID.", + "title": "Legacy ID" + }, + "model": { + "type": "string", + "description": "The model.", + "title": "Model" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The roles.", + "title": "Roles" + }, + "imo": { + "type": "integer", + "format": "int32", + "description": "The International Maritime Organization number.", + "title": "IMO" + }, + "mmsi": { + "type": "integer", + "format": "int32", + "description": "The Maritime Mobile Service Identity number.", + "title": "MMSI" + }, + "abs": { + "type": "integer", + "format": "int32", + "description": "The number of autonomous spaceport drone ships.", + "title": "ABS" + }, + "class": { + "type": "integer", + "format": "int32", + "description": "The class number.", + "title": "Class" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "year_built": { + "type": "integer", + "format": "int32", + "description": "The year built.", + "title": "Year Built" + }, + "home_port": { + "type": "string", + "description": "The home port.", + "title": "Home Port" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "speed_kn": { + "type": "string", + "description": "The speed in KN.", + "title": "Speed KN" + }, + "course_deg": { + "type": "string", + "description": "The course in degrees.", + "title": "Course Degrees" + }, + "latitude": { + "type": "number", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "The longitude.", + "title": "Longitude" + }, + "link": { + "type": "string", + "description": "The link.", + "title": "Link" + }, + "image": { + "type": "string", + "description": "An image.", + "title": "image" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/ships/{id}": { + "get": { + "summary": "Get a ship", + "description": "Detailed info about a ship in the SpaceX fleet.", + "operationId": "GetAShip", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the ship.", + "x-ms-summary": "Ship ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "last_ais_update": { + "type": "string", + "description": "The last AIS update.", + "title": "Last AIS Update" + }, + "legacy_id": { + "type": "string", + "description": "The legacy ID.", + "title": "Legacy ID" + }, + "model": { + "type": "string", + "description": "The model", + "title": "Model" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The roles.", + "title": "Roles" + }, + "imo": { + "type": "integer", + "format": "int32", + "description": "The International Maritime Organization number", + "title": "IMO" + }, + "mmsi": { + "type": "integer", + "format": "int32", + "description": "The Maritime Mobile Service Identity number.", + "title": "MMSI" + }, + "abs": { + "type": "string", + "description": "The autonomous spaceport drone ship.", + "title": "ABS" + }, + "class": { + "type": "string", + "description": "The class.", + "title": "Class" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "year_built": { + "type": "integer", + "format": "int32", + "description": "The year built.", + "title": "Year Built" + }, + "home_port": { + "type": "string", + "description": "The home port.", + "title": "Home Port" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "speed_kn": { + "type": "string", + "description": "The speed in KN.", + "title": "Speed KN" + }, + "course_deg": { + "type": "string", + "description": "The course in degrees.", + "title": "Course Degrees" + }, + "latitude": { + "type": "number", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "The longitude.", + "title": "Longitude" + }, + "link": { + "type": "string", + "description": "The link.", + "title": "Link" + }, + "image": { + "type": "string", + "description": "Image.", + "title": "Image" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "active": { + "type": "boolean", + "description": "Whether active.", + "title": "Active" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/ships/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query ships", + "description": "Detailed info about queried ships in the SpaceX fleet.", + "operationId": "QueryShips", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "last_ais_update": { + "type": "string", + "description": "The last AIS update.", + "title": "Last AIS Update" + }, + "legacy_id": { + "type": "string", + "description": "", + "title": "Legacy ID" + }, + "model": { + "type": "string", + "description": "The model.", + "title": "Model" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The roles.", + "title": "Roles" + }, + "imo": { + "type": "integer", + "format": "int32", + "description": "The International Maritime Organization number.", + "title": "IMO" + }, + "mmsi": { + "type": "integer", + "format": "int32", + "description": "The Maritime Mobile Service Identity number.", + "title": "MMSI" + }, + "abs": { + "type": "integer", + "format": "int32", + "description": "The autonomous spaceport drone ship number.", + "title": "ABS" + }, + "class": { + "type": "integer", + "format": "int32", + "description": "The class.", + "title": "Class" + }, + "mass_kg": { + "type": "integer", + "format": "int32", + "description": "The mass in kilograms.", + "title": "Mass Kg" + }, + "mass_lbs": { + "type": "integer", + "format": "int32", + "description": "The mass in pounds.", + "title": "Mass Lbs" + }, + "year_built": { + "type": "integer", + "format": "int32", + "description": "The year built.", + "title": "Year Built" + }, + "home_port": { + "type": "string", + "description": "The home port.", + "title": "Home Port" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "speed_kn": { + "type": "string", + "description": "The speed in KN.", + "title": "Speed KN" + }, + "course_deg": { + "type": "string", + "description": "The course in degrees.", + "title": "Course Degrees" + }, + "latitude": { + "type": "number", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "The longitude.", + "title": "Longitude" + }, + "link": { + "type": "string", + "description": "The link.", + "title": "Link" + }, + "image": { + "type": "string", + "description": "An image.", + "title": "Image" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "active": { + "type": "boolean", + "description": "Whether active", + "title": "Active" + }, + "launches": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The launch identifiers.", + "title": "Launches" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + }, + "/v4/starlink": { + "get": { + "summary": "Get all Starlink sats", + "description": "Detailed info about all Starlink satellites and orbits.", + "operationId": "GetAllStarlinkSats", + "parameters": [], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "spaceTrack": { + "type": "object", + "properties": { + "CCSDS_OMM_VERS": { + "type": "string", + "description": "The Consultative Committee for Space Data Systems Orbit Mean-Elements Message version.", + "title": "CCSDS OMM Version" + }, + "COMMENT": { + "type": "string", + "description": "The comment", + "title": "Comment" + }, + "CREATION_DATE": { + "type": "string", + "description": "The creation date.", + "title": "Creation Date" + }, + "ORIGINATOR": { + "type": "string", + "description": "The originator.", + "title": "Originator" + }, + "OBJECT_NAME": { + "type": "string", + "description": "The object name.", + "title": "Object Name" + }, + "OBJECT_ID": { + "type": "string", + "description": "The object ID.", + "title": "Object ID" + }, + "CENTER_NAME": { + "type": "string", + "description": "The center name.", + "title": "Center Name" + }, + "REF_FRAME": { + "type": "string", + "description": "The refernece frame.", + "title": "Reference Frame" + }, + "TIME_SYSTEM": { + "type": "string", + "description": "The time system.", + "title": "Time System" + }, + "MEAN_ELEMENT_THEORY": { + "type": "string", + "description": "The mean element theory.", + "title": "Mean Element Theory" + }, + "EPOCH": { + "type": "string", + "description": "The epoch", + "title": "Epoch" + }, + "MEAN_MOTION": { + "type": "number", + "format": "float", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "ECCENTRICITY": { + "type": "number", + "format": "float", + "description": "The excentricity.", + "title": "Eccentricity" + }, + "INCLINATION": { + "type": "number", + "format": "float", + "description": "The inclination.", + "title": "Inclination" + }, + "RA_OF_ASC_NODE": { + "type": "number", + "format": "float", + "description": "The RA of ASC node.", + "title": "RA of ASC Node" + }, + "ARG_OF_PERICENTER": { + "type": "number", + "format": "float", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "MEAN_ANOMALY": { + "type": "number", + "format": "float", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "EPHEMERIS_TYPE": { + "type": "integer", + "format": "int32", + "description": "The ephemeris type.", + "title": "Ephemeris Type" + }, + "CLASSIFICATION_TYPE": { + "type": "string", + "description": "The classification type.", + "title": "Classification Type" + }, + "NORAD_CAT_ID": { + "type": "integer", + "format": "int32", + "description": "The NORAD catalog ID.", + "title": "NORAD Catalog ID" + }, + "ELEMENT_SET_NO": { + "type": "integer", + "format": "int32", + "description": "The number of element sets.", + "title": "ELEMENT_SET_NO" + }, + "REV_AT_EPOCH": { + "type": "integer", + "format": "int32", + "description": "The rev at epoch.", + "title": "Rev at Epoch" + }, + "BSTAR": { + "type": "number", + "format": "float", + "description": "The BSTAR.", + "title": "BSTAR" + }, + "MEAN_MOTION_DOT": { + "type": "number", + "format": "float", + "description": "The mean motion at DOT.", + "title": "Mean Motion DOT" + }, + "MEAN_MOTION_DDOT": { + "type": "integer", + "format": "int32", + "description": "The mean motion at DDOT.", + "title": "Mean Motion DDOT" + }, + "SEMIMAJOR_AXIS": { + "type": "number", + "format": "float", + "description": "The semimajor axis.", + "title": "Semimajor Axis" + }, + "PERIOD": { + "type": "number", + "format": "float", + "description": "The period.", + "title": "Period" + }, + "APOAPSIS": { + "type": "number", + "format": "float", + "description": "The apoapsis.", + "title": "Apoapsis" + }, + "PERIAPSIS": { + "type": "number", + "format": "float", + "description": "The periapsis.", + "title": "Periapsis" + }, + "OBJECT_TYPE": { + "type": "string", + "description": "The object type.", + "title": "Object Type" + }, + "RCS_SIZE": { + "type": "string", + "description": "The radar cross-section size.", + "title": "RCS Size" + }, + "COUNTRY_CODE": { + "type": "string", + "description": "The country code.", + "title": "Country Code" + }, + "LAUNCH_DATE": { + "type": "string", + "description": "The launch date.", + "title": "Launch Date" + }, + "SITE": { + "type": "string", + "description": "The SITE.", + "title": "SITE" + }, + "DECAY_DATE": { + "type": "string", + "description": "The decay date.", + "title": "Decay Date" + }, + "DECAYED": { + "type": "integer", + "format": "int32", + "description": "The decayed number.", + "title": "Decayed" + }, + "FILE": { + "type": "integer", + "format": "int32", + "description": "The file.", + "title": "File" + }, + "GP_ID": { + "type": "integer", + "format": "int32", + "description": "The GP ID.", + "title": "GP ID" + }, + "TLE_LINE0": { + "type": "string", + "description": "The TLE line 0.", + "title": "TLE Line 0" + }, + "TLE_LINE1": { + "type": "string", + "description": "The TLE line 1.", + "title": "TLE Line 1" + }, + "TLE_LINE2": { + "type": "string", + "description": "The TLE line 2.", + "title": "TLE Line 2" + } + }, + "description": "The space track.", + "title": "Space Track" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "version": { + "type": "string", + "description": "The version.", + "title": "Version" + }, + "height_km": { + "type": "number", + "format": "float", + "description": "The height in kilometers.", + "title": "Height KM" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "velocity_kms": { + "type": "number", + "format": "float", + "description": "The velocity kilometers per second.", + "title": "Velocity KMS" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + } + }, + "/v4/starlink/{id}": { + "get": { + "summary": "Get a Starlink sat", + "description": "Detailed info about a Starlink satellite and orbit.", + "operationId": "GetAStarlinkSat", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The ID of the Starlink.", + "x-ms-summary": "Starlink ID" + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "spaceTrack": { + "type": "object", + "properties": { + "CCSDS_OMM_VERS": { + "type": "string", + "description": "The Consultative Committee for Space Data Systems Orbit Mean-Elements Message version.", + "title": "CCSDS OMM Version" + }, + "COMMENT": { + "type": "string", + "description": "The comment.", + "title": "Comment" + }, + "CREATION_DATE": { + "type": "string", + "description": "The creation date.", + "title": "Creation Date" + }, + "ORIGINATOR": { + "type": "string", + "description": "The originator.", + "title": "Originator" + }, + "OBJECT_NAME": { + "type": "string", + "description": "The object name.", + "title": "Object Name" + }, + "OBJECT_ID": { + "type": "string", + "description": "The object ID.", + "title": "Object ID" + }, + "CENTER_NAME": { + "type": "string", + "description": "The center name.", + "title": "Center Name" + }, + "REF_FRAME": { + "type": "string", + "description": "The reference frame.", + "title": "Reference Frame" + }, + "TIME_SYSTEM": { + "type": "string", + "description": "The time system.", + "title": "Time System" + }, + "MEAN_ELEMENT_THEORY": { + "type": "string", + "description": "The mean element theory.", + "title": "Mean Element Theory" + }, + "EPOCH": { + "type": "string", + "description": "The epoch.", + "title": "Epoch" + }, + "MEAN_MOTION": { + "type": "number", + "format": "float", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "ECCENTRICITY": { + "type": "number", + "format": "float", + "description": "The eccentricity.", + "title": "Eccentricity" + }, + "INCLINATION": { + "type": "number", + "format": "float", + "description": "The inclination.", + "title": "Inclination" + }, + "RA_OF_ASC_NODE": { + "type": "number", + "format": "float", + "description": "The RA of ASC node.", + "title": "RA of ASC Node" + }, + "ARG_OF_PERICENTER": { + "type": "number", + "format": "float", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "MEAN_ANOMALY": { + "type": "number", + "format": "float", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "EPHEMERIS_TYPE": { + "type": "integer", + "format": "int32", + "description": "The ephemeris type.", + "title": "Ephemeris Type" + }, + "CLASSIFICATION_TYPE": { + "type": "string", + "description": "The classification type.", + "title": "Classification Type" + }, + "NORAD_CAT_ID": { + "type": "integer", + "format": "int32", + "description": "The NORAD catalog ID.", + "title": "NORAD Catalog ID" + }, + "ELEMENT_SET_NO": { + "type": "integer", + "format": "int32", + "description": "The number of element sets.", + "title": "ELEMENT_SET_NO" + }, + "REV_AT_EPOCH": { + "type": "integer", + "format": "int32", + "description": "The rev at epoch.", + "title": "Rev at Epoch" + }, + "BSTAR": { + "type": "number", + "format": "float", + "description": "The BSTAR.", + "title": "BSTAR" + }, + "MEAN_MOTION_DOT": { + "type": "number", + "format": "float", + "description": "The mean motion at DOT.", + "title": "Mean Motion DOT" + }, + "MEAN_MOTION_DDOT": { + "type": "integer", + "format": "int32", + "description": "The mean motion at DDOT.", + "title": "Mean Motion DDOT" + }, + "SEMIMAJOR_AXIS": { + "type": "number", + "format": "float", + "description": "The semimajor axis.", + "title": "Semimajor Axis" + }, + "PERIOD": { + "type": "number", + "format": "float", + "description": "The period.", + "title": "PERIOD" + }, + "APOAPSIS": { + "type": "number", + "format": "float", + "description": "The apoapsis.", + "title": "Apoapsis" + }, + "PERIAPSIS": { + "type": "number", + "format": "float", + "description": "The periapsis.", + "title": "Periapsis" + }, + "OBJECT_TYPE": { + "type": "string", + "description": "The object type.", + "title": "Object Type" + }, + "RCS_SIZE": { + "type": "string", + "description": "The radar cross-section size.", + "title": "RCS Size" + }, + "COUNTRY_CODE": { + "type": "string", + "description": "The country code.", + "title": "Country Code" + }, + "LAUNCH_DATE": { + "type": "string", + "description": "The launch date", + "title": "Launch Date" + }, + "SITE": { + "type": "string", + "description": "The site.", + "title": "SITE" + }, + "DECAY_DATE": { + "type": "string", + "description": "The decay date.", + "title": "Decay Date" + }, + "DECAYED": { + "type": "integer", + "format": "int32", + "description": "The decayed number.", + "title": "Decayed" + }, + "FILE": { + "type": "integer", + "format": "int32", + "description": "The file.", + "title": "File" + }, + "GP_ID": { + "type": "integer", + "format": "int32", + "description": "The GP ID.", + "title": "GP ID" + }, + "TLE_LINE0": { + "type": "string", + "description": "The TLE line 0.", + "title": "TLE Line 0" + }, + "TLE_LINE1": { + "type": "string", + "description": "The TLE line 1.", + "title": "TLE Line 1" + }, + "TLE_LINE2": { + "type": "string", + "description": "The TLE line 2.", + "title": "TLE Line 2" + } + }, + "description": "The space track.", + "title": "Space Track" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "version": { + "type": "string", + "description": "The version.", + "title": "Version" + }, + "height_km": { + "type": "number", + "format": "float", + "description": "The height in kilometers.", + "title": "Height KM" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude.", + "title": "Longitude" + }, + "velocity_kms": { + "type": "number", + "format": "float", + "description": "The velocity kilometers per second.", + "title": "Velocity KMS" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + } + } + } + } + }, + "/v4/starlink/query": { + "post": { + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "description": "Accepts any valid MongoDB find() query.", + "title": "Query" + }, + "options": { + "type": "object", + "properties": { + "select": { + "type": "string", + "description": "Fields to return (by default returns all fields).", + "title": "Select" + }, + "collation": { + "type": "object", + "properties": {}, + "description": "Specify the collation", + "title": "collation" + }, + "sort": { + "type": "string", + "description": "Sort order.", + "title": "Sort" + }, + "populate": { + "type": "array", + "items": {}, + "description": "Paths which should be populated with other documents.", + "title": "Populate" + }, + "projection": { + "type": "string", + "description": "Get/set the query projection.", + "title": "Projection" + }, + "lean": { + "type": "boolean", + "description": "Should return plain javascript objects instead of Mongoose documents.", + "title": "Lean" + }, + "leanWithId": { + "type": "boolean", + "description": "If lean and leanWithId are true adds id field with string representation of _id to every document.", + "title": "Lean With Id" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "Use offset or page to set skip position.", + "title": "Offset" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page number.", + "title": "Page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The limit per page.", + "title": "Limit" + }, + "customLabels": { + "type": "object", + "properties": {}, + "description": "Developers can provide custom labels for manipulating the response data.", + "title": "Custom Labels" + }, + "pagination": { + "type": "boolean", + "description": "If pagination is set to false it will return all docs without adding limit condition.", + "title": "Pagination" + }, + "useEstimatedCount": { + "type": "boolean", + "description": "Enable estimatedDocumentCount for larger datasets. Does not count based on given query so the count will match entire collection size.", + "title": "Use Estimated Count" + }, + "useCustomCountFn": { + "type": "boolean", + "description": "Enable custom function for count datasets.", + "title": "Use Custom Count Function" + }, + "forceCountFn": { + "type": "boolean", + "description": "Set this to true if you need to support $geo queries.", + "title": "Force Count Function" + }, + "allowDiskUse": { + "type": "boolean", + "description": "Set this to true which allows the MongoDB server to use more than 100 MB for query. This option can let you work around QueryExceededMemoryLimitNoDiskUseAllowed errors from the MongoDB server.", + "title": "Allow Disk Use" + }, + "options": { + "type": "object", + "properties": { + "pref": { + "type": "string", + "description": "A of the listed preference options or aliases.", + "title": "Preference" + }, + "tags": { + "type": "string", + "description": "Optional tags for this query (must be used with pref).", + "title": "Tags" + } + }, + "description": "Determines the MongoDB nodes from which to read.", + "title": "Options" + } + }, + "description": "Requested options", + "title": "Options" + } + } + } + } + ], + "summary": "Query Starlink sats", + "description": "Detailed info about queried Starlink satellites and orbits.", + "operationId": "QueryStarlinkSats", + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "spaceTrack": { + "type": "object", + "properties": { + "CCSDS_OMM_VERS": { + "type": "string", + "description": "The Consultative Committee for Space Data Systems Orbit Mean-Elements Message version.", + "title": "CCSDS OMM Version" + }, + "COMMENT": { + "type": "string", + "description": "The comment.", + "title": "Comment" + }, + "CREATION_DATE": { + "type": "string", + "description": "The creation date.", + "title": "Creation Date" + }, + "ORIGINATOR": { + "type": "string", + "description": "The originator.", + "title": "Originator" + }, + "OBJECT_NAME": { + "type": "string", + "description": "The object name.", + "title": "Object Name" + }, + "OBJECT_ID": { + "type": "string", + "description": "The object ID.", + "title": "Object ID" + }, + "CENTER_NAME": { + "type": "string", + "description": "The center name.", + "title": "Center Name" + }, + "REF_FRAME": { + "type": "string", + "description": "The reference frame.", + "title": "Reference Frame" + }, + "TIME_SYSTEM": { + "type": "string", + "description": "The time system.", + "title": "Time System" + }, + "MEAN_ELEMENT_THEORY": { + "type": "string", + "description": "The mean element theory.", + "title": "Mean Element Theory" + }, + "EPOCH": { + "type": "string", + "description": "The epoch.", + "title": "Epoch" + }, + "MEAN_MOTION": { + "type": "number", + "format": "float", + "description": "The mean motion.", + "title": "Mean Motion" + }, + "ECCENTRICITY": { + "type": "number", + "format": "float", + "description": "The eccentricity.", + "title": "Eccentricity" + }, + "INCLINATION": { + "type": "number", + "format": "float", + "description": "The inclination.", + "title": "Inclination" + }, + "RA_OF_ASC_NODE": { + "type": "number", + "format": "float", + "description": "he RA of ASC node.", + "title": "RA of ASC Node" + }, + "ARG_OF_PERICENTER": { + "type": "number", + "format": "float", + "description": "The argument of pericenter.", + "title": "Argument of Pericenter" + }, + "MEAN_ANOMALY": { + "type": "number", + "format": "float", + "description": "The mean anomaly.", + "title": "Mean Anomaly" + }, + "EPHEMERIS_TYPE": { + "type": "integer", + "format": "int32", + "description": "The ephemeris type.", + "title": "Ephemeris Type" + }, + "CLASSIFICATION_TYPE": { + "type": "string", + "description": "The classification type.", + "title": "Classification Type" + }, + "NORAD_CAT_ID": { + "type": "integer", + "format": "int32", + "description": "The NORAD catalog ID.", + "title": "NORAD Catalog ID" + }, + "ELEMENT_SET_NO": { + "type": "integer", + "format": "int32", + "description": "The element set number.", + "title": "ELEMENT_SET_NO" + }, + "REV_AT_EPOCH": { + "type": "integer", + "format": "int32", + "description": "The rev at epoch.", + "title": "Rev at Epoch" + }, + "BSTAR": { + "type": "number", + "format": "float", + "description": "The BSTAR.", + "title": "BSTAR" + }, + "MEAN_MOTION_DOT": { + "type": "number", + "format": "float", + "description": "The mean motion at DOT.", + "title": "Mean Motion DOT" + }, + "MEAN_MOTION_DDOT": { + "type": "number", + "format": "float", + "description": "The mean motion at DDOT.", + "title": "Mean Motion DDOT" + }, + "SEMIMAJOR_AXIS": { + "type": "number", + "format": "float", + "description": "The semimajor axis.", + "title": "Semimajor Axis" + }, + "PERIOD": { + "type": "number", + "format": "float", + "description": "The period.", + "title": "Period" + }, + "APOAPSIS": { + "type": "number", + "format": "float", + "description": "The apoapsis.", + "title": "Apoapsis" + }, + "PERIAPSIS": { + "type": "number", + "format": "float", + "description": "The periapsis.", + "title": "Periapsis" + }, + "OBJECT_TYPE": { + "type": "string", + "description": "The object type.", + "title": "Object Type" + }, + "RCS_SIZE": { + "type": "string", + "description": "The RCS size.", + "title": "RCS Size" + }, + "COUNTRY_CODE": { + "type": "string", + "description": "The country code.", + "title": "Country Code" + }, + "LAUNCH_DATE": { + "type": "string", + "description": "The launch date.", + "title": "Launch Date" + }, + "SITE": { + "type": "string", + "description": "The SITE.", + "title": "SITE" + }, + "DECAY_DATE": { + "type": "string", + "description": "The decay date.", + "title": "Decay Date" + }, + "DECAYED": { + "type": "integer", + "format": "int32", + "description": "The decayed.", + "title": "Decayed" + }, + "FILE": { + "type": "integer", + "format": "int32", + "description": "The file.", + "title": "File" + }, + "GP_ID": { + "type": "integer", + "format": "int32", + "description": "The GP ID.", + "title": "GP ID" + }, + "TLE_LINE0": { + "type": "string", + "description": "The TLE line 0.", + "title": "TLE Line 0" + }, + "TLE_LINE1": { + "type": "string", + "description": "The TLE line 1.", + "title": "TLE Line 1" + }, + "TLE_LINE2": { + "type": "string", + "description": "The TLE line 2.", + "title": "TLE Line 2" + } + }, + "description": "The space track.", + "title": "Space Track" + }, + "launch": { + "type": "string", + "description": "The launch.", + "title": "Launch" + }, + "version": { + "type": "string", + "description": "The version.", + "title": "Version" + }, + "height_km": { + "type": "string", + "description": "The height in kilometers.", + "title": "Height KM" + }, + "latitude": { + "type": "number", + "description": "The latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "The longitude.", + "title": "Longitude" + }, + "velocity_kms": { + "type": "string", + "description": "The veloity in kilometers per second.", + "title": "Velocity KMS" + }, + "id": { + "type": "string", + "description": "The identifier.", + "title": "ID" + } + } + }, + "description": "The documentation.", + "title": "Docs" + }, + "totalDocs": { + "type": "integer", + "format": "int32", + "description": "The total number of documentations.", + "title": "Total Docs" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The response offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The response limit.", + "title": "Limit" + }, + "totalPages": { + "type": "integer", + "format": "int32", + "description": "The total number of pages.", + "title": "Total Pages" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The current page.", + "title": "Page" + }, + "pagingCounter": { + "type": "integer", + "format": "int32", + "description": "The paging counter.", + "title": "Paging Counter" + }, + "hasPrevPage": { + "type": "boolean", + "description": "Whether has previous page.", + "title": "Has Previous Page" + }, + "hasNextPage": { + "type": "boolean", + "description": "Whether has next page.", + "title": "Has Next Page" + }, + "prevPage": { + "type": "string", + "description": "The previous page.", + "title": "Previous Page" + }, + "nextPage": { + "type": "integer", + "format": "int32", + "description": "The next page.", + "title": "Next Page" + } + } + } + } + } + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://github.com/r-spacex/SpaceX-API" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://github.com/r-spacex/SpaceX-API" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} diff --git a/independent-publisher-connectors/rSpaceX/apiProperties.json b/independent-publisher-connectors/rSpaceX/apiProperties.json new file mode 100644 index 0000000000..447f458a4e --- /dev/null +++ b/independent-publisher-connectors/rSpaceX/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "r/SpaceX" + } +} diff --git a/independent-publisher-connectors/rSpaceX/readme.md b/independent-publisher-connectors/rSpaceX/readme.md new file mode 100644 index 0000000000..6f1fbb5ddc --- /dev/null +++ b/independent-publisher-connectors/rSpaceX/readme.md @@ -0,0 +1,97 @@ +# r/SpaceX +r/SpaceX is an open source REST API for SpaceX launch, rocket, core, capsule, Starlink, launchpad, and landing pad data. r/SpaceX is not affiliated, associated, authorized, endorsed by, or in any way officially connected with Space Exploration Technologies Corp (SpaceX), or any of its subsidiaries or its affiliates. The names SpaceX as well as related names, marks, emblems and images are registered trademarks of their respective owners. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +This API requires no authentication for all of the actions provided in this connector. All create, update, and delete endpoints are not included. The query actions support pagination, custom queries, and other output controls. See the [pagination + query guide](https://github.com/r-spacex/SpaceX-API/blob/master/docs/queries.md) for more details and examples. + +## Supported Operations + +### Get all capsules +Detailed info for all serialized Dragon capsules. +### Get a capsule +Detailed info for a serialized Dragon capsule. +### Query capsules +Detailed info for queried serialized Dragon capsules. +### Get company info +Detailed info about SpaceX as a company. +### Get all cores +Detailed info for all serialized first stage cores. +### Get a core +Detailed info for a serialized first stage core. +### Query cores +Detailed info for queried serialized first stage cores. +### Get all crew members +Detailed info on all Dragon crew members. +### Get a crew member +Detailed info on a Dragon crew member. +### Query crew members +Detailed info on queried Dragon crew members. +### Get all Dragons +Detailed info about all Dragon capsule versions. +### Get a Dragon +Detailed info about a Dragon capsule version. +### Query Dragons +Detailed info about queried Dragon capsule versions. +### Get all history events +Detailed info on all SpaceX historical events. +### Get a historic event +Detailed info on a SpaceX historical event. +### Query historic events +Detailed info on queried SpaceX historical events. +### Get all landpads +Detailed info about all landing pads and ships. +### Get a landpad +Detailed info about a landing pad or ship. +### Query landpads +Detailed info about queried landing pads and ships. +### Get all launches +Detailed info about all launches. +### Get a launch +Detailed info about a launch. +### Query launches +Detailed info about queried launches. +### Get past launches +Detailed info about past launches. +### Get upcoming launches +Detailed info about upcoming launches. +### Get latest launch +Detailed info about latest launch. +### Get next launch +Detailed info about next launches. +### Get all launchpads +Detailed info about all launchpads. +### Get a launchpad +Detailed info about a launchpad. +### Query launchpads +Detailed info about queried launchpads. +### Get all payloads +Detailed info about all launch payloads. +### Get a payload +Detailed info about a launch payload. +### Query payloads +Detailed info about queried launch payloads. +### Get Roadster Info +Detailed info about Elon's Tesla Roadster's current position. +### Get all rockets +Detailed info about all rockets. +### Get a rocket +Detailed info about a rocket. +### Query rockets +Detailed info about queried rockets. +### Get all ships +Detailed info about all ships in the SpaceX fleet. +### Get a ship +Detailed info about a ship in the SpaceX fleet. +### Query ships +Detailed info about queried ships in the SpaceX fleet. +### Get all Starlink sats +Detailed info about all Starlink satellites and orbits. +### Get a Starlink sat +Detailed info about a Starlink satellite and orbit. +### Query Starlink sats +Detailed info about queried Starlink satellites and orbits. + +#### Launch dates +Why does the date appear wrong? This is usually due to the way partial dates are stored and displayed in the API. For example, a launch scheduled for July 2020 would be represented as 2020-07-01T00:00:00.000Z. In this case, the field date_precision would be set as month, meaning the date is only valid to the month level, or 2020-07. From 3a287a6afd51bed7f8921dbf3dbd5a5985fdeb2f Mon Sep 17 00:00:00 2001 From: Duke DeVan <75541079+marsurice@users.noreply.github.com> Date: Tue, 19 Oct 2021 13:54:46 -0500 Subject: [PATCH 070/219] ClickUp Team Manager (Independent Publisher) (#1120) * Add files via upload * Update ClickUp Team Manager.md * Rename ClickUp Team Manager.md to readme.md * Update readme.md * Update apiProperties.json Updated iconBrandColor * Update apiDefinition.swagger.json Made updates to descriptions and spacing. * Update apiDefinition.swagger.json * Update readme.md * Update apiDefinition.swagger.json --- .../apiDefinition.swagger.json | 1136 +++++++++++++++++ .../ClickUp Team Manager/apiProperties.json | 23 + .../ClickUp Team Manager/readme.md | 46 + 3 files changed, 1205 insertions(+) create mode 100644 independent-publisher-connectors/ClickUp Team Manager/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/ClickUp Team Manager/apiProperties.json create mode 100644 independent-publisher-connectors/ClickUp Team Manager/readme.md diff --git a/independent-publisher-connectors/ClickUp Team Manager/apiDefinition.swagger.json b/independent-publisher-connectors/ClickUp Team Manager/apiDefinition.swagger.json new file mode 100644 index 0000000000..df0bda9b7c --- /dev/null +++ b/independent-publisher-connectors/ClickUp Team Manager/apiDefinition.swagger.json @@ -0,0 +1,1136 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "ClickUp Team Manager", + "description": "Connects to the ClickUp team to manage tasks, folders, and lists from within Power Platform", + "contact": { + "name": "Duke DeVan", + "url": "https://dukedevan.com", + "email": "ddevan@hitachisolutions.com" + } + }, + "host": "api.clickup.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/v2/space/{space_id}/folder": { + "post": { + "summary": "Create a Folder", + "description": "Creates a new folder in your space", + "operationId": "CreateAFolder", + "parameters": [ + { + "name": "space_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Create folder", + "x-ms-url-encoding": "single", + "description": "Create a new folder in your space" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID of the newly created folder" + }, + "name": { + "type": "string", + "description": "Name of folder being created", + "x-ms-summary": "Folder Name" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "Task order index", + "x-ms-summary": "Order Index" + }, + "override_statuses": { + "type": "boolean", + "description": "Status override enabled", + "x-ms-summary": "Override Statuses" + }, + "hidden": { + "type": "boolean", + "description": "Hidden folder enabled", + "x-ms-summary": "Hidden Folder" + }, + "space": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Space ID where the folder lives", + "x-ms-summary": "Space ID", + "x-ms-visibility": "internal" + }, + "name": { + "type": "string", + "description": "Name of space where folder lives", + "x-ms-summary": "Space Name", + "x-ms-visibility": "internal" + }, + "access": { + "type": "boolean", + "description": "Access to folder enabled", + "x-ms-visibility": "internal" + } + }, + "description": "space" + }, + "task_count": { + "type": "string", + "description": "Count of tasks", + "x-ms-summary": "Task Count" + }, + "archived": { + "type": "boolean", + "description": "Is folder archived" + }, + "statuses": { + "type": "array", + "items": {}, + "description": "statuses", + "x-ms-summary": "Statuses" + }, + "lists": { + "type": "array", + "items": {}, + "description": "Lists in folder", + "x-ms-visibility": "internal", + "x-ms-summary": "Lists" + }, + "permission_level": { + "type": "string", + "description": "Permission level for folder", + "x-ms-summary": "Permission Level" + } + } + } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Folder ID" + }, + "name": { + "type": "string", + "description": "Name of the folder" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "Folder's order index" + }, + "override_statuses": { + "type": "boolean", + "description": "Status override enabled" + }, + "hidden": { + "type": "boolean", + "description": "Folder visibility" + }, + "space": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Space ID" + }, + "name": { + "type": "string", + "description": "Space name" + }, + "access": { + "type": "boolean", + "description": "Space access enabled" + } + }, + "description": "space" + }, + "task_count": { + "type": "string", + "description": "Count of tasks in folder" + }, + "archived": { + "type": "boolean", + "description": "Is the folder archived" + }, + "statuses": { + "type": "array", + "items": {}, + "description": "Statuses in the folder" + }, + "lists": { + "type": "array", + "items": {}, + "description": "lists" + }, + "permission_level": { + "type": "string", + "description": "Folder permission level" + } + } + } + } + } + } + }, + "/api/v2/team": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "teams": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Team ID" + }, + "name": { + "type": "string", + "description": "Team Name" + }, + "color": { + "type": "string", + "description": "Team color" + }, + "avatar": { + "type": "string", + "description": "Team avatar" + }, + "members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "user": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Member ID" + }, + "username": { + "type": "string", + "description": "Name of team owner" + }, + "email": { + "type": "string", + "description": "Owner email" + }, + "color": { + "type": "string", + "description": "Owner's picked color" + }, + "profilePicture": { + "type": "string", + "description": "Owner profile picture" + }, + "initials": { + "type": "string", + "description": "Owner initials" + }, + "role": { + "type": "integer", + "format": "int32", + "description": "Owner Role" + }, + "custom_role": { + "type": "string", + "description": "Custom role name" + }, + "last_active": { + "type": "string", + "description": "Last time user was active" + }, + "date_joined": { + "type": "string", + "description": "Date joined team" + }, + "date_invited": { + "type": "string", + "description": "Date invited to team" + } + }, + "description": "user" + } + } + }, + "description": "members" + } + } + }, + "description": "teams" + } + } + } + } + }, + "summary": "Get Teams", + "operationId": "GetTeams", + "parameters": [], + "description": "Returns the teams for your ClickUp instance", + "x-ms-summary": "Get Teams in clickup instance" + } + }, + "/api/v2/team/{team_id}/space": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Space id" + }, + "name": { + "type": "string", + "description": "Space name" + }, + "private": { + "type": "boolean", + "description": "Private space enabled?" + }, + "statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Status ID" + }, + "status": { + "type": "string", + "description": "Status name" + }, + "type": { + "type": "string", + "description": "Type of status" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "Index order of status" + }, + "color": { + "type": "string", + "description": "Status color" + } + } + }, + "description": "statuses" + }, + "multiple_assignees": { + "type": "boolean", + "description": "Multiple assignees to space" + }, + "features": { + "type": "object", + "properties": { + "due_dates": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Due dates enabled?" + }, + "start_date": { + "type": "boolean", + "description": "Start dates enabled?" + }, + "remap_due_dates": { + "type": "boolean", + "description": "Remap due dates enabled?" + }, + "remap_closed_due_date": { + "type": "boolean", + "description": "Remap closed due dates enabled?" + } + }, + "description": "Due dates for folder" + }, + "sprints": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Sprints enabled?" + } + }, + "description": "Sprints" + }, + "points": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Story points enabled" + } + }, + "description": "Story points enabled" + }, + "custom_items": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Custom items enabled?" + } + }, + "description": "Custom items enabled?" + }, + "tags": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Tags enabled?" + } + }, + "description": "Tags enabled?" + }, + "time_estimates": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Time estimates enabled?" + } + }, + "description": "Time estimates enabled" + }, + "checklists": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are checklists enabled?" + } + }, + "description": "Are checklists enabled" + }, + "zoom": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Is zoom enabled?" + } + }, + "description": "Is zoom enabled?" + }, + "milestones": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are milestones enabled?" + } + }, + "description": "Are milestones enabled?" + }, + "custom_fields": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are custom fields enabled?" + } + }, + "description": "Are custom fields enabled?" + }, + "remap_dependencies": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Is remapping of dependencies enabled?" + } + }, + "description": "Is remapping of dependencies enabled?" + }, + "dependency_warning": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are dependency warnings enabled?" + } + }, + "description": "Are dependency warnings enabled?" + }, + "multiple_assignees": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are multiple assignees enabled?" + } + }, + "description": "Are multiple assignees enabled?" + }, + "portfolios": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are portfolios enabled?" + } + }, + "description": "Are portfolios enabled?" + }, + "emails": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are emails enabled?" + } + }, + "description": "Are emails enabled?" + } + }, + "description": "Space features." + }, + "archived": { + "type": "boolean", + "description": "Is archive for space enabled?" + } + } + } + } + }, + "summary": "Create A Space", + "operationId": "CreateSpace", + "parameters": [ + { + "name": "team_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-summary": "Team ID", + "description": "ID for the team where the space is being created" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of space.", + "x-ms-summary": "Space Name" + }, + "multiple_assignees": { + "type": "boolean", + "description": "Are multiple assignees allowed for the space.", + "x-ms-summary": "Multiple Assignees" + }, + "features": { + "type": "object", + "properties": { + "due_dates": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are due dates enabled for the space?", + "x-ms-summary": "Due Dates" + }, + "start_date": { + "type": "boolean", + "description": "Are start dates enabled for the space?", + "x-ms-summary": "Start Date" + }, + "remap_due_dates": { + "type": "boolean", + "description": "Is the remapping of due dates allowed?", + "x-ms-summary": "Remap Due Date" + }, + "remap_closed_due_date": { + "type": "boolean", + "description": "Is the remapping of the closed due date allowed?", + "x-ms-summary": "Remap Closed Due Date" + } + }, + "description": "Due dates for the space." + }, + "time_tracking": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Time Tracking", + "description": "Is time tracking enabled for the space?" + } + }, + "description": "Is time tracking enabled for the space?" + }, + "tags": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Tags", + "description": "Are tags enabled for the space?" + } + }, + "description": "Are tags enabled for the space?tags" + }, + "time_estimates": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Time Estimates", + "description": "Are time estimates enabled?" + } + }, + "description": "Are time estimates enabled?" + }, + "checklists": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Checklist", + "description": "Are checklists enabled for the space?" + } + }, + "description": "Are checklists enabled for the space?" + }, + "custom_fields": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Custom Fields", + "description": "Custom fields allowed" + } + }, + "description": "custom_fields" + }, + "remap_dependencies": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Remap dependencies", + "description": "Is the remapping of dependencies allowed in the space?" + } + }, + "description": "Is the remapping of dependencies allowed in the space?" + }, + "dependency_warning": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "x-ms-summary": "Dependency Warning", + "description": "Are dependency warnings enabled?" + } + }, + "description": "Are dependency warnings enabled?" + }, + "portfolios": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Are portfolios enabled in the space?", + "x-ms-summary": "Portfolios" + } + }, + "description": "Are portfolios enabled in the space?" + } + }, + "description": "Space features" + } + } + } + } + ], + "description": "Creates new workspace in your team" + } + }, + "/api/v2/folder/{folder_id}/list": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Folder ID" + }, + "name": { + "type": "string", + "description": "List name." + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "List order index." + }, + "content": { + "type": "string", + "description": "List content." + }, + "status": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "List status." + }, + "color": { + "type": "string", + "description": "List color." + }, + "hide_label": { + "type": "boolean", + "description": "Hide list labels." + } + }, + "description": "List status." + }, + "priority": { + "type": "object", + "properties": { + "priority": { + "type": "string", + "description": "List priority" + }, + "color": { + "type": "string", + "description": "List priority color." + } + }, + "description": "List priority." + }, + "assignee": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Assignee ID" + }, + "color": { + "type": "string", + "description": "Assignee color." + }, + "username": { + "type": "string", + "description": "Assignee username." + }, + "initials": { + "type": "string", + "description": "Assignee initials" + }, + "profilePicture": { + "type": "string", + "description": "Assignee profile picture." + } + }, + "description": "Person the list is assigned to." + }, + "task_count": { + "type": "string", + "description": "task_count" + }, + "due_date": { + "type": "string", + "description": "due_date" + }, + "due_date_time": { + "type": "boolean", + "description": "due_date_time" + }, + "start_date": { + "type": "string", + "description": "start_date" + }, + "start_date_time": { + "type": "string", + "description": "start_date_time" + }, + "folder": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + }, + "hidden": { + "type": "boolean", + "description": "hidden" + }, + "access": { + "type": "boolean", + "description": "access" + } + }, + "description": "folder" + }, + "space": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + }, + "access": { + "type": "boolean", + "description": "access" + } + }, + "description": "space" + }, + "statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "status" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "orderindex" + }, + "color": { + "type": "string", + "description": "color" + }, + "type": { + "type": "string", + "description": "type" + } + } + }, + "description": "statuses" + }, + "inbound_address": { + "type": "string", + "description": "inbound_address" + } + } + } + } + }, + "summary": "Create A list", + "operationId": "CreateAList", + "parameters": [ + { + "name": "folder_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-summary": "Folder ID", + "description": "folder where the list is being created" + }, + { + "name": "Content-Type:application/json", + "in": "header", + "required": false, + "type": "string", + "x-ms-summary": "header", + "description": "header", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "x-ms-summary": "ID", + "x-ms-visibility": "internal" + }, + "name": { + "type": "string", + "description": "Name of list", + "x-ms-visibility": "important", + "x-ms-summary": "Name" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "orderindex", + "x-ms-summary": "Order Index" + }, + "content": { + "type": "string", + "description": "content", + "x-ms-visibility": "internal" + }, + "status": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "status", + "x-ms-visibility": "internal" + }, + "color": { + "type": "string", + "description": "color", + "x-ms-visibility": "internal" + }, + "hide_label": { + "type": "boolean", + "description": "hide_label", + "x-ms-visibility": "internal" + } + }, + "description": "status" + }, + "priority": { + "type": "object", + "properties": { + "priority": { + "type": "string", + "description": "priority", + "x-ms-visibility": "internal" + }, + "color": { + "type": "string", + "description": "color", + "x-ms-visibility": "internal" + } + }, + "description": "priority" + }, + "assignee": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "id", + "x-ms-visibility": "internal" + }, + "color": { + "type": "string", + "description": "color", + "x-ms-visibility": "internal" + }, + "username": { + "type": "string", + "description": "username", + "x-ms-visibility": "internal" + }, + "initials": { + "type": "string", + "description": "initials", + "x-ms-visibility": "internal" + }, + "profilePicture": { + "type": "string", + "description": "profilePicture", + "x-ms-visibility": "internal" + } + }, + "description": "assignee" + }, + "task_count": { + "type": "string", + "description": "task_count", + "x-ms-visibility": "internal" + }, + "due_date": { + "type": "string", + "description": "due_date", + "x-ms-visibility": "internal" + }, + "due_date_time": { + "type": "boolean", + "description": "due_date_time", + "x-ms-visibility": "important", + "x-ms-summary": "Due Date" + }, + "start_date": { + "type": "string", + "description": "start_date", + "x-ms-visibility": "internal" + }, + "start_date_time": { + "type": "string", + "description": "start_date_time", + "x-ms-visibility": "internal" + }, + "folder": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "x-ms-visibility": "internal" + }, + "name": { + "type": "string", + "description": "name", + "x-ms-visibility": "internal" + }, + "hidden": { + "type": "boolean", + "description": "hidden", + "x-ms-visibility": "internal" + }, + "access": { + "type": "boolean", + "description": "access", + "x-ms-visibility": "internal" + } + }, + "description": "folder" + }, + "space": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "x-ms-visibility": "internal" + }, + "name": { + "type": "string", + "description": "name", + "x-ms-visibility": "internal" + }, + "access": { + "type": "boolean", + "description": "access", + "x-ms-visibility": "internal" + } + }, + "description": "space" + }, + "statuses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "status", + "x-ms-visibility": "internal" + }, + "orderindex": { + "type": "integer", + "format": "int32", + "description": "orderindex", + "x-ms-visibility": "internal" + }, + "color": { + "type": "string", + "description": "color", + "x-ms-visibility": "internal" + }, + "type": { + "type": "string", + "description": "type", + "x-ms-visibility": "internal" + } + } + }, + "description": "statuses" + }, + "inbound_address": { + "type": "string", + "description": "inbound_address", + "x-ms-visibility": "internal" + } + } + } + } + ], + "description": "Create a new list inside of a folder", + "x-ms-url-encoding": "single", + "x-ms-summary": "Create a new list inside of a folder" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.clickup.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.clickup.com/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Collaboration;Business Management" + } + ] +} diff --git a/independent-publisher-connectors/ClickUp Team Manager/apiProperties.json b/independent-publisher-connectors/ClickUp Team Manager/apiProperties.json new file mode 100644 index 0000000000..3ace80e278 --- /dev/null +++ b/independent-publisher-connectors/ClickUp Team Manager/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Duke DeVan", + "stackOwner":"ClickUp" + } +} diff --git a/independent-publisher-connectors/ClickUp Team Manager/readme.md b/independent-publisher-connectors/ClickUp Team Manager/readme.md new file mode 100644 index 0000000000..2d9fac0bf0 --- /dev/null +++ b/independent-publisher-connectors/ClickUp Team Manager/readme.md @@ -0,0 +1,46 @@ +# ClickUp Team Manager + +ClickUp is a productivity platform that helps teams manage projects and tasks. Leveraging the API in App or Automation, allows users to create spaces, folders, and lists. + +## Publisher: Duke DeVan - Hitachi Solutions + +## Prerequisites +To use the connector you will need: +- ClickUp account + +## Supported Operations + +### Get Teams +Returns every team in organization. + +### Create A Folder +Creates a new folder in designated space. + +### Create A Space +Creates a new space in designated team. + +### Create A List +Creates a new list in designated folder. + +## Obtaining Credentials + +Sign in to ClickUp account and take the following steps. +1. Go to settings + - Select Integrations + - Select ClickUp API + - Select Create an App + - Name App + - Provide redirect url - global.consent.azure-apim.net + - Select Create App – you will receive AppID and App Secret +2.Generate Code + - Navigate to [https://app.clickup.com/api?client_id={client_id}&redirect_uri={redirect_url}](https://app.clickup.com/api?client_id={client_id}&redirect_uri={redirect_url}) + - Select Workspace + - Select Connect + - Copy Code from address bar – paste into notepad or text editor will be needed to generate authorization token +3. Use Code to generate Authorization Token (auth token does not expire) + - Navigate to [https://api.clickup.com/api/v2/oauth/token?client_id={client_id}&client_secret{client_secret}=&code={code}](https://api.clickup.com/api/v2/oauth/token?client_id={client_id}&client_secret{client_secret}=&code={code}) + - Copy Authorization token and paste into text editor – will be used to create connection in power platform. +4. Create Connection (see deployment instructions) + +## Known Issues and Limitations +No known issues or limitations at this point. From 1e032c3bf79eeabd0132614811b23c3bb2ed5e05 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 19 Oct 2021 16:33:52 -0400 Subject: [PATCH 071/219] AccuWeather (Independent Publisher) v1.1 (#1151) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Added 'Get location by location key' and fixed validation errors * Add 'Search by location key' and 'Get alerts by location key' * Update readme.md * Add 'Search location by IP address' * Added 'Get location by IP address' --- .../AccuWeather/apiDefinition.swagger.json | 898 +++++++++++++++++- .../AccuWeather/readme.md | 8 +- 2 files changed, 859 insertions(+), 47 deletions(-) diff --git a/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json index fa6d02dfe9..ff4980cded 100644 --- a/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json +++ b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "AccuWeather", "description": "AccuWeather provides commercial weather forecasting services worldwide.", - "version": "1.0", + "version": "1.1", "contact": { "name": "Ahmad Najjar", "email": "ahmadn82@hotmail.com" @@ -20,7 +20,7 @@ "/locations/v1/adminareas/{countryCode}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -69,6 +69,7 @@ { "name": "countryCode", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "string", "description": "The country code to return administrative areas for", @@ -99,7 +100,7 @@ "/locations/v1/countries/{regionCode}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -131,6 +132,7 @@ { "name": "regionCode", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "string", "description": "The region code to return country list for", @@ -157,7 +159,7 @@ "/locations/v1/regions": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -191,7 +193,9 @@ "in": "query", "required": false, "type": "string", - "x-ms-visibility": "advanced" + "description": "String indicating the language in which to return the resource.", + "x-ms-visibility": "advanced", + "x-ms-summary": "Language" } ] } @@ -199,7 +203,7 @@ "/locations/v1/topcities/{group}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -548,6 +552,7 @@ { "name": "group", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Group", @@ -588,7 +593,7 @@ "/locations/v1/cities/autocomplete": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -679,7 +684,7 @@ "/locations/v1/cities/geoposition/search": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "object", @@ -1119,7 +1124,7 @@ "/forecasts/v1/daily/{duration}day/{locationKey}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "object", @@ -2065,6 +2070,7 @@ { "name": "duration", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Duration (days)", @@ -2081,6 +2087,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -2129,7 +2136,7 @@ "/forecasts/v1/hourly/{duration}hour/{locationKey}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -2563,6 +2570,7 @@ { "name": "duration", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Duration (hours)", @@ -2580,6 +2588,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -2628,7 +2637,7 @@ "/currentconditions/v1/{locationKey}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -4077,6 +4086,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -4112,7 +4122,7 @@ "/currentconditions/v1/topcities/{group}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -4358,6 +4368,7 @@ { "name": "group", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Group", @@ -4385,7 +4396,7 @@ "/currentconditions/v1/{locationKey}/historical/24": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -5834,6 +5845,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -5869,7 +5881,7 @@ "/currentconditions/v1/{locationKey}/historical": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7318,6 +7330,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -7353,7 +7366,7 @@ "/indices/v1/daily/{duration}day/{locationKey}/groups/{groupId}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7421,6 +7434,7 @@ { "name": "duration", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Duration (days)", @@ -7437,6 +7451,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -7447,6 +7462,7 @@ { "name": "groupId", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "string", "x-ms-summary": "Indices Group", @@ -7486,7 +7502,7 @@ "/indices/v1/daily/{duration}day/{locationKey}/{indexId}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7554,6 +7570,7 @@ { "name": "duration", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Duration (days)", @@ -7570,6 +7587,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -7580,6 +7598,7 @@ { "name": "indexId", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Index", @@ -7620,7 +7639,7 @@ "/indices/v1/daily/{duration}day/{locationKey}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7688,6 +7707,7 @@ { "name": "locationKey", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Location Key", @@ -7698,6 +7718,7 @@ { "name": "duration", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "x-ms-summary": "Duration (days)", @@ -7739,7 +7760,7 @@ "/indices/v1/daily": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7778,7 +7799,7 @@ "/indices/v1/daily/groups": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7809,7 +7830,7 @@ "/indices/v1/daily/groups/{groupId}": { "get": { "responses": { - "default": { + "200": { "description": "default", "schema": { "type": "array", @@ -7846,6 +7867,7 @@ { "name": "groupId", "in": "path", + "x-ms-url-encoding": "single", "required": true, "type": "integer", "description": "Index group Id", @@ -7869,32 +7891,816 @@ } ] } - } - }, - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": { - "API Key": { - "type": "apiKey", - "in": "query", - "name": "apikey" - } - }, - "security": [ - { - "API Key": [] - } - ], - "tags": [], - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.accuweather.com/" }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.accuweather.com/en/privacy" + "/locations/v1/{locationKey}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Version": { + "type": "integer", + "format": "int32", + "description": "The response version.", + "title": "Version" + }, + "Key": { + "type": "string", + "description": "The location key.", + "title": "Key" + }, + "Type": { + "type": "string", + "description": "The location type.", + "title": "Type" + }, + "Rank": { + "type": "integer", + "format": "int32", + "description": "The location rank.", + "title": "Rank" + }, + "LocalizedName": { + "type": "string", + "description": "The localized name.", + "title": "Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The English name.", + "title": "English Name" + }, + "PrimaryPostalCode": { + "type": "string", + "description": "The location postal code.", + "title": "Primary Postal Code" + }, + "Region": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The region ID.", + "title": "Region ID" + }, + "LocalizedName": { + "type": "string", + "description": "The region localized name.", + "title": "Region Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The region English name.", + "title": "Region English Name" + } + }, + "description": "Region" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The country ID.", + "title": "Country ID" + }, + "LocalizedName": { + "type": "string", + "description": "The country localized name.", + "title": "Country Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The country English name.", + "title": "Country English Name" + } + }, + "description": "Country" + }, + "AdministrativeArea": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The administrative area ID.", + "title": "Administrative Area ID" + }, + "LocalizedName": { + "type": "string", + "description": "The administrative area name.", + "title": "Administrative Area Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The administrative area English name.", + "title": "Administrative Area English Name" + }, + "Level": { + "type": "integer", + "format": "int32", + "description": "The administrative area level.", + "title": "Administrative Area Level" + }, + "LocalizedType": { + "type": "string", + "description": "The administrative area localized type.", + "title": "Administrative Area Localized Type" + }, + "EnglishType": { + "type": "string", + "description": "The administrative area English type.", + "title": "Administrative Area English Type" + }, + "CountryID": { + "type": "string", + "description": "The administrative area country ID.", + "title": "Administrative Area Country ID" + } + }, + "description": "Administrative Area" + }, + "TimeZone": { + "type": "object", + "properties": { + "Code": { + "type": "string", + "description": "The time zone code.", + "title": "Time Zone Code" + }, + "Name": { + "type": "string", + "description": "The time zone name.", + "title": "Time Zone Name" + }, + "GmtOffset": { + "type": "integer", + "format": "int32", + "description": "The time zone GMT offset.", + "title": "Time Zone GMT Offset" + }, + "IsDaylightSaving": { + "type": "boolean", + "description": "Whether he time zone is Daylight Saving.", + "title": "Time Zone Is Daylight Saving" + }, + "NextOffsetChange": { + "type": "string", + "description": "The time zone next offset change.", + "title": "Time Zone Next Offset Change" + } + }, + "description": "Time Zone" + }, + "GeoPosition": { + "type": "object", + "properties": { + "Latitude": { + "type": "number", + "format": "float", + "description": "The geoposition latitude.", + "title": "Latitude" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "The geoposition longitude.", + "title": "Longitude" + }, + "Elevation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "format": "int32", + "description": "The elevation in metric value.", + "title": "Elevation Metric Value" + }, + "Unit": { + "type": "string", + "description": "The elevation in metric unit.", + "title": "Elevation Metric Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "The elevation in metric unit type.", + "title": "Elevation Metric Unit Type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "format": "int32", + "description": "The elevation in imperial value.", + "title": "Elevation Imperial Value" + }, + "Unit": { + "type": "string", + "description": "The elevation in imperial unit.", + "title": "Elevation Imperial Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "The elevation in imperial unit type.", + "title": "Elevation Imperial Unit Type" + } + }, + "description": "Imperial" + } + }, + "description": "Elevation" + } + }, + "description": "GeoPosition" + }, + "IsAlias": { + "type": "boolean", + "description": "Whether location is alias.", + "title": "Is Alias" + }, + "SupplementalAdminAreas": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Level": { + "type": "integer", + "format": "int32", + "description": "The supplemental administrative level.", + "title": "Supplemental Administrative Level" + }, + "LocalizedName": { + "type": "string", + "description": "The supplemental administrative localized name.", + "title": "Supplemental Administrative Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The supplemental administrative English name.", + "title": "Supplemental Administrative English Name" + } + } + }, + "description": "SupplementalAdminAreas" + }, + "DataSets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The data sets.", + "title": "Data Sets" + } + } + } + } + }, + "summary": "Search by location key", + "description": "Returns information about a specific location, by location key. You must know the location key to perform this query.", + "operationId": "SearchLocationKey", + "parameters": [ + { + "name": "locationKey", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "The key for the location being searched.", + "x-ms-summary": "Location Key" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "default": "en-us", + "description": "String indicating the language in which to return the resource.", + "x-ms-summary": "Language" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Boolean value specifies whether or not to include full details in the response.", + "x-ms-summary": "Details", + "enum": [ + false, + true + ] + } + ] + } + }, + "/locations/v1/cities/ipaddress": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Version": { + "type": "integer", + "format": "int32", + "description": "The response version.", + "title": "Version" + }, + "Key": { + "type": "string", + "description": "The location key.", + "title": "Key" + }, + "Type": { + "type": "string", + "description": "The location type.", + "title": "Type" + }, + "Rank": { + "type": "integer", + "format": "int32", + "description": "The location rank.", + "title": "Rank" + }, + "LocalizedName": { + "type": "string", + "description": "The location localized name.", + "title": "Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The location English name.", + "title": "English Name" + }, + "PrimaryPostalCode": { + "type": "string", + "description": "The location postal code.", + "title": "Primary Postal Code" + }, + "Region": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The region ID.", + "title": "Region ID." + }, + "LocalizedName": { + "type": "string", + "description": "The region localized name.", + "title": "Region Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The region English name.", + "title": "Region English Name" + } + }, + "description": "Region" + }, + "Country": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The country ID.", + "title": "Country ID" + }, + "LocalizedName": { + "type": "string", + "description": "The country localized name.", + "title": "Country Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The country English name.", + "title": "Country English Name" + } + }, + "description": "Country" + }, + "AdministrativeArea": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The administrative area ID.", + "title": "Administrative Area ID" + }, + "LocalizedName": { + "type": "string", + "description": "The administrative area localized name.", + "title": "Administrative Area Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The administrative area English name.", + "title": "Administrative Area English Name" + }, + "Level": { + "type": "integer", + "format": "int32", + "description": "The administrative area level.", + "title": "Administrative Area Level" + }, + "LocalizedType": { + "type": "string", + "description": "The administrative area localized type.", + "title": "Administrative Area Localized Type" + }, + "EnglishType": { + "type": "string", + "description": "The administrative area English type.", + "title": "Administrative Area English Type" + }, + "CountryID": { + "type": "string", + "description": "The administrative area country ID.", + "title": "Administrative Area Country ID" + } + }, + "description": "AdministrativeArea" + }, + "TimeZone": { + "type": "object", + "properties": { + "Code": { + "type": "string", + "description": "The time zone code.", + "title": "Time Zone Code" + }, + "Name": { + "type": "string", + "description": "The time zone name.", + "title": "Time Zone Name" + }, + "GmtOffset": { + "type": "integer", + "format": "int32", + "description": "The time zone GMT offset.", + "title": "Time Zone GMT Offset" + }, + "IsDaylightSaving": { + "type": "boolean", + "description": "Whether the time zone is Daylight Saving.", + "title": "Time Zone Is Daylight Saving" + }, + "NextOffsetChange": { + "type": "string", + "description": "The time zone next offset change.", + "title": "Time Zone Next Offset Change" + } + }, + "description": "TimeZone" + }, + "GeoPosition": { + "type": "object", + "properties": { + "Latitude": { + "type": "number", + "format": "float", + "description": "The location latitude.", + "title": "Latitude" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "The location longitude.", + "title": "Longitude" + }, + "Elevation": { + "type": "object", + "properties": { + "Metric": { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "format": "int32", + "description": "The elevation in metric.", + "title": "Elevation Metric Value" + }, + "Unit": { + "type": "string", + "description": "The elevation in metric unit.", + "title": "Elevation Metric Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "The elevation in metric unit type.", + "title": "Elevation Metric Unit Type" + } + }, + "description": "Metric" + }, + "Imperial": { + "type": "object", + "properties": { + "Value": { + "type": "integer", + "format": "int32", + "description": "The elevation in imperial.", + "title": "Elevation Imperial Value" + }, + "Unit": { + "type": "string", + "description": "The elevation in imperial unit.", + "title": "Elevation Imperial Unit" + }, + "UnitType": { + "type": "integer", + "format": "int32", + "description": "The elevation in imperial unit type.", + "title": "Elevation Imperial Unit Type" + } + }, + "description": "Imperial" + } + }, + "description": "Elevation" + } + }, + "description": "GeoPosition" + }, + "IsAlias": { + "type": "boolean", + "description": "Whether location is alias.", + "title": "Is Alias" + }, + "SupplementalAdminAreas": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Level": { + "type": "integer", + "format": "int32", + "description": "The supplemental administrative area level.", + "title": "Supplemental Administrative Area Level" + }, + "LocalizedName": { + "type": "string", + "description": "The supplemental administrative area localized name.", + "title": "Supplemental Administrative Area Localized Name" + }, + "EnglishName": { + "type": "string", + "description": "The supplemental administrative area English name.", + "title": "Supplemental Administrative Area English Name" + } + } + }, + "description": "SupplementalAdminAreas" + }, + "DataSets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The data sets.", + "title": "Data Sets" + }, + "Details": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The details key.", + "title": "Details Key" + }, + "StationCode": { + "type": "string", + "description": "The details station code.", + "title": "Details Station Code" + }, + "StationGmtOffset": { + "type": "integer", + "format": "int32", + "description": "The details station GMT offset.", + "title": "Details Station GMT Offset" + }, + "BandMap": { + "type": "string", + "description": "The details band map.", + "title": "Details Band Map" + }, + "Climo": { + "type": "string", + "description": "The details source of the climatology data.", + "title": "Details Climo" + }, + "LocalRadar": { + "type": "string", + "description": "The details local radar.", + "title": "Details Local Radar" + }, + "MediaRegion": { + "type": "string", + "description": "The details media region.", + "title": "Details Media Region" + }, + "Metar": { + "type": "string", + "description": "The details metar station.", + "title": "Details Metar" + }, + "NXMetro": { + "type": "string", + "description": "The details city level radar code.", + "title": "Details NX Metro" + }, + "NXState": { + "type": "string", + "description": "The details state level radar code.", + "title": "Details NX State" + }, + "Population": { + "type": "integer", + "format": "int32", + "description": "The details population.", + "title": "Details Population" + }, + "PrimaryWarningCountyCode": { + "type": "string", + "description": "The details primary warning county code.", + "title": "Details Primary Warning County Code" + }, + "PrimaryWarningZoneCode": { + "type": "string", + "description": "The details primary warning zone code.", + "title": "Details Primary Warning Zone Code" + }, + "Satellite": { + "type": "string", + "description": "The details satellite.", + "title": "Details Satellite" + }, + "Synoptic": { + "type": "string", + "description": "The details synoptic station.", + "title": "Details Synoptic" + }, + "MarineStation": { + "type": "string", + "description": "The details marine station.", + "title": "Details Marine Station" + }, + "MarineStationGMTOffset": { + "type": "string", + "description": "The details marine station GMT offset.", + "title": "Details Marine Station GMT Offset" + }, + "VideoCode": { + "type": "string", + "description": "The details video code.", + "title": "Details Video Code" + }, + "LocationStem": { + "type": "string", + "description": "The details location stem.", + "title": "Details Location Stem" + }, + "DMA": { + "type": "object", + "properties": { + "ID": { + "type": "string", + "description": "The details Designated Marketing Area ID.", + "title": "Details DMA ID" + }, + "EnglishName": { + "type": "string", + "description": "The details Designated Marketing Area English name.", + "title": "Details DMA English Name" + } + }, + "description": "DMA" + }, + "PartnerID": { + "type": "string", + "description": "The details partner ID.", + "title": "Details Partner ID" + }, + "Sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DataType": { + "type": "string", + "description": "The details source data type.", + "title": "Details Source Data Type" + }, + "Source": { + "type": "string", + "description": "The details source.", + "title": "Details Source" + }, + "SourceId": { + "type": "integer", + "format": "int32", + "description": "The details source ID.", + "title": "Details Source ID" + } + } + }, + "description": "Sources" + }, + "CanonicalPostalCode": { + "type": "string", + "description": "The details canonical postal code.", + "title": "Details Canonical Postal Code" + }, + "CanonicalLocationKey": { + "type": "string", + "description": "The details canonical location key.", + "title": "Details Canonical Location Key" + } + }, + "description": "Details" + } + } + } + } + }, + "summary": "Search location by IP address", + "description": "Returns information about a specific location, by IP Address.", + "operationId": "SearchLocationIP", + "parameters": [ + { + "name": "q", + "in": "query", + "required": true, + "type": "string", + "description": "A valid IP address to search for.", + "x-ms-summary": "IP Address" + }, + { + "name": "language", + "in": "query", + "required": false, + "type": "string", + "default": "en-us", + "description": "The language in which to return the resource.", + "x-ms-summary": "language" + }, + { + "name": "details", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "x-ms-summary": "Details", + "description": "Whether or not to include full details in the response.", + "enum": [ + false, + true + ] + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "apikey" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.accuweather.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.accuweather.com/en/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" } ] -} \ No newline at end of file +} diff --git a/independent-publisher-connectors/AccuWeather/readme.md b/independent-publisher-connectors/AccuWeather/readme.md index 6ae4f109d6..8a72783f80 100644 --- a/independent-publisher-connectors/AccuWeather/readme.md +++ b/independent-publisher-connectors/AccuWeather/readme.md @@ -66,6 +66,12 @@ Returns metadata for all index groups. #### Get List of Indices in a Specific Group Returns metadata for all indices in a specified group. +#### Search by location key +Returns information about a specific location, by location key. + +#### Search location by IP address +Returns information about a specific location, by IP Address. + ## API Documentation Visit [AccuWeather APIs reference](https://developer.accuweather.com/apis) page for further details. @@ -74,4 +80,4 @@ Visit [AccuWeather APIs reference](https://developer.accuweather.com/apis) page * Operation "Get Daily Index Values for a Specific Index" Not all daily indices/groups' indices data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices) -#### Not all operations provided by AccuWeather are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) \ No newline at end of file +#### Not all operations provided by AccuWeather are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) From d8ae4353c1b54ce94334586225dda52cf57f8234 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 19 Oct 2021 16:34:42 -0400 Subject: [PATCH 072/219] Etsy (Independent Publisher) v1.1 (#1074) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Add files via upload * Fix typos * Added response schemas * Updated response schemas * Defined response schema properties x-ms-summary * Delete apiDefinition.swagger.json * New upload to fix merge conflict * Remove undefined headers * Remove components * Fix additional errors --- .../Etsy/apiDefinition.swagger.json | 6252 ++++++++++++++++- 1 file changed, 6022 insertions(+), 230 deletions(-) diff --git a/independent-publisher-connectors/Etsy/apiDefinition.swagger.json b/independent-publisher-connectors/Etsy/apiDefinition.swagger.json index ca88bb63e4..1553535cdc 100644 --- a/independent-publisher-connectors/Etsy/apiDefinition.swagger.json +++ b/independent-publisher-connectors/Etsy/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "Etsy", "description": "This connector uses your API key to access various Etsy.com features. It supports actions for inventory, sales orders, and shop management. All actions are based on Etsy Open API v3 which does have endpoints that are still in beta. If such as actions use the beta API, the action with include Beta in the title and will return a 501 response code.", - "version": "1.0", + "version": "1.1", "contact": { "name": "Troy Taylor", "url": "https://www.hitachisolutions.com", @@ -17,13 +17,98 @@ ], "consumes": [], "produces": [], + "tags": [ + { + "name": "User" + }, + { + "name": "UserAddress" + }, + { + "name": "Shop Receipt Transactions" + }, + { + "name": "Shop" + }, + { + "name": "Shop ShippingProfile" + }, + { + "name": "ShopListing" + }, + { + "name": "Shop Section" + }, + { + "name": "Shop ProductionPartner" + }, + { + "name": "SellerTaxonomy" + }, + { + "name": "Review" + }, + { + "name": "Shop Receipt" + }, + { + "name": "Other" + }, + { + "name": "Payment" + }, + { + "name": "Ledger Entry" + }, + { + "name": "ShopListing VariationImage" + }, + { + "name": "ShopListing Translation" + }, + { + "name": "ShopListing Inventory" + }, + { + "name": "ShopListing Offering" + }, + { + "name": "ShopListing Product" + }, + { + "name": "ShopListing Image" + }, + { + "name": "ShopListing File" + } + ], "paths": { "/openapi-ping": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A confirmation that the current application has access to the Open API", + "schema": { + "$ref": "#/definitions/Pong" + } + }, + "401": { + "description": "Missing or invalid API key.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "App does not have the proper permissions to access this resource.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Ping", @@ -35,9 +120,29 @@ "/shops/{shop_id}/payment-account/ledger-entries": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of p ayment account ledger entries.", + "schema": { + "$ref": "#/definitions/PaymentAccountLedgerEntries" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a shop payment account ledger's entries", @@ -94,9 +199,29 @@ "/shops/{shop_id}/payment-account/ledger-entries/payments": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of payments.", + "schema": { + "$ref": "#/definitions/Payments" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a payment from a payment account ledger entry ID", @@ -126,9 +251,35 @@ "/shops/{shop_id}/receipts/{receipt_id}/payments": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single payment.", + "schema": { + "$ref": "#/definitions/Payments" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a payment from a specific receipt", @@ -159,9 +310,11 @@ "/shops/{shop_id}/payments": { "get": { "responses": { - "default": { + "200": { "description": "default", - "schema": {} + "schema": { + "$ref": "#/definitions/Payments" + } } }, "operationId": "PaymentsGet", @@ -191,9 +344,35 @@ "/shops/{shop_id}/receipts/{receipt_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shop receipt.", + "schema": { + "$ref": "#/definitions/ShopReceipt" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "ReceiptGet", @@ -224,9 +403,35 @@ "/shops/{shop_id}/receipts": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of shop receipts.", + "schema": { + "$ref": "#/definitions/ShopReceipts" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get receipts", @@ -322,9 +527,41 @@ "/shops/{shop_id}/receipts/{receipt_id}/tracking": { "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shop receipt.", + "schema": { + "$ref": "#/definitions/ShopReceipt" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "ReceiptCreateShipment", @@ -392,9 +629,35 @@ "/shops/{shop_id}/listings/{listing_id}/transactions": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of transactions.", + "schema": { + "$ref": "#/definitions/ShopReceiptTransactions" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "TransactionsListing", @@ -443,9 +706,35 @@ "/shops/{shop_id}/receipts/{receipt_id}/transactions": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of transactions.", + "schema": { + "$ref": "#/definitions/ShopReceiptTransactions" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "TransactionReceipt", @@ -476,9 +765,35 @@ "/shops/{shop_id}/transactions/{transaction_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single transaction.", + "schema": { + "$ref": "#/definitions/ShopReceiptTransaction" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a transaction", @@ -509,9 +824,29 @@ "/shops/{shop_id}/transactions": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of transactions.", + "schema": { + "$ref": "#/definitions/ShopReceiptTransactions" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a shop's transaction", @@ -551,9 +886,29 @@ "/shops/{shop_id}/reviews": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A set of transaction reviews.", + "schema": { + "$ref": "#/definitions/TransactionReviews" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get reviews", @@ -593,9 +948,23 @@ "/shipping-carriers": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A set of ShippingCarriers", + "schema": { + "$ref": "#/definitions/ShippingCarriers" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shipping carriers", @@ -616,9 +985,29 @@ "/shops/{shop_id}/shipping-profiles": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shipping profile.", + "schema": { + "$ref": "#/definitions/ShopShippingProfile" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shipping profiles", @@ -638,10 +1027,30 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} - } + "200": { + "description": "A single ShippingProfile", + "schema": { + "$ref": "#/definitions/ShopShippingProfile" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + } }, "summary": "Create a shipping profile", "description": "Creates a new shipping profile. You can pass a country ISO code or a region when creating a shipping profile, but not both. Only one is required. You must pass either a shipping carrier ID and mail class, or both min and max delivery days.", @@ -762,7 +1171,7 @@ }, "destination_region": { "type": "string", - "description": "The code of the region to which the listing ships. A region represents a set of countries. Supported regions are Europe Union and Non-Europe Union (countries in Europe not in EU). If \"none\", request sets destination to destination country ISO, or \"everywhere\" if destination country ISO is also null.", + "description": "The code of the region to which the listing ships. A region represents a set of countries. Supported regions are Europe Union and Non-Europe Union (countries in Europe not in EU). If none, request sets destination to destination country ISO, or everywhere if destination country ISO is also null.", "title": "Destination Region", "default": "none", "enum": [ @@ -917,9 +1326,32 @@ "/shops/{shop_id}/shipping-profiles/{shipping_profile_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "204": { + "description": "The ShopShippingProfile resource was correctly deleted" + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "ShippingGetProfile", @@ -948,10 +1380,36 @@ }, "delete": { "responses": { - "default": { - "description": "default", - "schema": {} - } + "200": { + "description": "A single shipping profile.", + "schema": { + "$ref": "#/definitions/ShopShippingProfile" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + } }, "summary": "Delete a shipping profile", "description": "Deletes a shipping profile by given ID.", @@ -979,9 +1437,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "The updated shipping profile.", + "schema": { + "$ref": "#/definitions/ShopShippingProfile" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a shipping profile", @@ -1067,7 +1551,7 @@ }, "processing_time_unit": { "type": "string", - "description": "The unit used to represent how long a processing time is. A week is equivalent to 5 business days. If none is provided, the unit is set to \"business_days\".", + "description": "The unit used to represent how long a processing time is. A week is equivalent to 5 business days. If none is provided, the unit is set to business_days.", "title": "Processing Time Unit", "enum": [ "business_days", @@ -1088,9 +1572,35 @@ "/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of shipping destination objects.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileDestinations" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get profile destinations by shipping profile", @@ -1137,9 +1647,29 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "201": { + "description": "A single shipping destination.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileDestination" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Create a shipping profile destination", @@ -1232,9 +1762,32 @@ "/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/destinations/{shipping_profile_destination_id}": { "delete": { "responses": { - "default": { - "description": "default", - "schema": {} + "204": { + "description": "The deleted shipping profile destination." + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Delete a shipping profile destination", @@ -1272,9 +1825,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shipping destination.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileDestination" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a shipping profile destination", @@ -1367,9 +1946,35 @@ "/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of shipping profile upgrades.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileUpgrades" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shipping profile upgrades", @@ -1398,9 +2003,35 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shipping profile upgrade.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileUpgrade" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Create a shipping profile upgrade", @@ -1602,9 +2233,32 @@ "/shops/{shop_id}/shipping-profiles/{shipping_profile_id}/upgrades/{upgrade_id}": { "delete": { "responses": { - "default": { - "description": "default", - "schema": {} + "204": { + "description": "Etsy deleted the shipping profile upgrade." + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Delete a shipping profile upgrade", @@ -1642,9 +2296,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shipping profile upgrade.", + "schema": { + "$ref": "#/definitions/ShopShippingProfileUpgrade" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a shipping profile upgrade", @@ -1849,9 +2529,29 @@ "/shops/{shop_id}": { "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shop.", + "schema": { + "$ref": "#/definitions/Shop" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a shop", @@ -1911,9 +2611,29 @@ "/users/{user_id}/shops": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shop.", + "schema": { + "$ref": "#/definitions/Shop" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shop by owner ID", @@ -1935,9 +2655,17 @@ "/shops": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of shops.", + "schema": { + "$ref": "#/definitions/Shops" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Search shops", @@ -1977,9 +2705,29 @@ "/shops/{shop_id}/sections": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of shop sections.", + "schema": { + "$ref": "#/definitions/ShopSections" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shop sections", @@ -1999,9 +2747,35 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A shop section resource.", + "schema": { + "$ref": "#/definitions/ShopSection" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "503": { + "description": "This function is temporarily unavailable. Please try again later.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Create a shop section", @@ -2049,9 +2823,29 @@ "/users/{user_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single user.", + "schema": { + "$ref": "#/definitions/User" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get user", @@ -2073,9 +2867,29 @@ "/shops/{shop_id}/sections/{shop_section_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A shop section resource.", + "schema": { + "$ref": "#/definitions/ShopSection" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get shop section", @@ -2106,9 +2920,29 @@ "/user/addresses/{user_address_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single user address.", + "schema": { + "$ref": "#/definitions/UserAddress" + } + }, + "501": { + "description": "This endpoint is not functional at this time.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get user's address", @@ -2130,9 +2964,17 @@ "/user/addresses": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of user address records.", + "schema": { + "$ref": "#/definitions/UserAddresses" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get user addresses", @@ -2163,9 +3005,17 @@ "/seller-taxonomy/nodes": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "List the full hierarchy tree of seller taxonomy nodes.", + "schema": { + "$ref": "#/definitions/SellerTaxonomyNodes" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "operationId": "ListingGetTaxonomyNodes", @@ -2177,16 +3027,36 @@ "/seller-taxonomy/nodes/{taxonomy_id}/properties": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} - } - }, - "operationId": "ListingGetPropertiesByTaxonomy", - "summary": "Get product properties by taxonomy ID", - "description": "Retrieves a list of product properties, with applicable scales and values, supported for a specific seller taxonomy ID.", - "parameters": [ - { + "200": { + "description": "A list of product properties, with applicable scales and values.", + "schema": { + "$ref": "#/definitions/TaxonomyNodeProperties" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + } + }, + "operationId": "ListingGetPropertiesByTaxonomy", + "summary": "Get product properties by taxonomy ID", + "description": "Retrieves a list of product properties, with applicable scales and values, supported for a specific seller taxonomy ID.", + "parameters": [ + { "name": "taxonomy_id", "in": "path", "required": true, @@ -2201,9 +3071,29 @@ "/shops/{shop_id}/listings": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of listings.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get listings by shop", @@ -2280,9 +3170,35 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "201": { + "description": "A single shop listing.", + "schema": { + "$ref": "#/definitions/ShopListing" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Create a draft listing", @@ -2488,7 +3404,7 @@ }, "styles": { "type": "string", - "description": "An array of style strings for this listing, each of which is free-form text string such as \"Formal\", or \"Steampunk\". A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\p{L}\\p{Nd}\\p{Zs}]/u)", + "description": "An array of style strings for this listing, each of which is free-form text string such as Formal, or Steampunk. A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\p{L}\\p{Nd}\\p{Zs}]/u)", "title": "Styles" }, "item_weight": { @@ -2600,9 +3516,38 @@ "/listings/{listing_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "204": { + "description": "The listing resource was correctly deleted." + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing", @@ -2636,10 +3581,39 @@ }, "delete": { "responses": { - "default": { - "description": "default", - "schema": {} - } + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "204": { + "description": "The Listing resource was correctly deleted" + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + } }, "summary": "Delete a listing", "description": "This action deletes a shop listing. A listing can be deleted only if the state is one of the following: SOLD_OUT, DRAFT, EXPIRED, INACTIVE, ACTIVE and is_available or ACTIVE and has seller flags: SUPRESSED (frozen), VACATION, CUSTOM_SHOPS (pattern), SELL_ON_FACEBOOK", @@ -2660,9 +3634,23 @@ "/listings/active": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of all active listings on Etsy paginated by their creation date. Without sort_order listings will be returned newest-first by default.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get active listings", @@ -2762,9 +3750,29 @@ "/shops/{shop_id}/listings/active": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "Retrieves a list of all active listings on Etsy in a specific shop, paginated by listing creation date.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get active listings by shop", @@ -2812,9 +3820,29 @@ "/listings/batch": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of listings.", + "schema": { + "$ref": "#/definitions/ShopListingsWithAssociations" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get listings by ID", @@ -2850,9 +3878,29 @@ "/shops/{shop_id}/listings/featured": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of listings.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get featured listings by shop", @@ -2892,9 +3940,32 @@ "/shops/{shop_id}/listings/{listing_id}/properties/{property_id}": { "delete": { "responses": { - "default": { - "description": "default", - "schema": {} + "204": { + "description": "The listing property resource was correctly deleted." + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Delete a listing property", @@ -2932,9 +4003,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing property.", + "schema": { + "$ref": "#/definitions/ListingPropertyValue" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a listing property", @@ -3014,9 +4111,35 @@ "/listings/{listing_id}/properties/{property_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing property.", + "schema": { + "$ref": "#/definitions/ListingPropertyValue" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "501": { + "description": "This endpoint is not functional at this time.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's property (Beta)", @@ -3047,9 +4170,29 @@ "/shops/{shop_id}/listings/{listing_id}/properties": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A listing's properties", + "schema": { + "$ref": "#/definitions/ListingPropertyValues" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's properties", @@ -3080,9 +4223,35 @@ "/shops/{shop_id}/listings/{listing_id}": { "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single shop listing.", + "schema": { + "$ref": "#/definitions/ShopListing" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a listing", @@ -3297,7 +4466,7 @@ }, "styles": { "type": "string", - "description": "An array of style strings for this listing, each of which is free-form text string such as \"Formal\", or \"Steampunk\". A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\p{L}\\p{Nd}\\p{Zs}]/u)", + "description": "An array of style strings for this listing, each of which is free-form text string such as Formal, or Steampunk. A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\p{L}\\p{Nd}\\p{Zs}]/u)", "title": "Styles" }, "item_weight": { @@ -3438,9 +4607,35 @@ "/shops/{shop_id}/receipts/{receipt_id}/listings": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A set of shop listing resources.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get listings by shop receipt", @@ -3489,9 +4684,23 @@ "/shops/{shop_id}/shop-sections/listings": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of listings from a shop section.", + "schema": { + "$ref": "#/definitions/ShopListings" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get listings by shop section ID", @@ -3567,9 +4776,35 @@ "/shops/{shop_id}/listings/{listing_id}/files/{listing_file_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "The metatdata for a file associated with a digital listing.", + "schema": { + "$ref": "#/definitions/ShopListingFile" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a file from a listing", @@ -3607,9 +4842,38 @@ }, "delete": { "responses": { - "default": { - "description": "default", - "schema": {} + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "204": { + "description": "The shop listing file resource was correctly deleted." + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Delete a file from listing", @@ -3649,9 +4913,29 @@ "/shops/{shop_id}/listings/{listing_id}/files": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of metadata objects for the file resources associated with a listing.", + "schema": { + "$ref": "#/definitions/ShopListingFiles" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get all listing files", @@ -3680,13 +4964,39 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} - } - }, - "summary": "Upload a listing file", - "description": "Uploads a new file for a digital listing, or associates an existing file with a specific listing. You must either provide the listing file ID of an existing file, or the name and binary file data for a file to upload. Associating an existing file to a physical listing converts the physical listing into a digital listing, which removes all shipping costs and any product and inventory variations.", + "201": { + "description": "The metadata for a file associated with a digital listing.", + "schema": { + "$ref": "#/definitions/ShopListingFile" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + } + }, + "summary": "Upload a listing file", + "description": "Uploads a new file for a digital listing, or associates an existing file with a specific listing. You must either provide the listing file ID of an existing file, or the name and binary file data for a file to upload. Associating an existing file to a physical listing converts the physical listing into a digital listing, which removes all shipping costs and any product and inventory variations.", "operationId": "ListingUpload", "parameters": [ { @@ -3757,9 +5067,35 @@ "/shops/{shop_id}/listings/{listing_id}/images/{listing_image_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing image.", + "schema": { + "$ref": "#/definitions/ListingImage" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing image", @@ -3797,9 +5133,32 @@ }, "delete": { "responses": { - "default": { - "description": "default", - "schema": {} + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "204": { + "description": "The listing image resource was correctly deleted." + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Delete a listing image", @@ -3839,9 +5198,35 @@ "/shops/{shop_id}/listings/{listing_id}/images": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing image.", + "schema": { + "$ref": "#/definitions/ListingImages" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's images", @@ -3870,9 +5255,41 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "201": { + "description": "A single listing image.", + "schema": { + "$ref": "#/definitions/ListingImage" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Upload a listing image", @@ -3958,9 +5375,29 @@ "/listings/{listing_id}/inventory": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing inventory record.", + "schema": { + "$ref": "#/definitions/ListingInventoryWithAssociations" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's inventory", @@ -3988,9 +5425,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing's inventory record.", + "schema": { + "$ref": "#/definitions/ListingInventory" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a listing's inventory", @@ -4054,9 +5517,29 @@ "/listings/{listing_id}/products/{product_id}/offerings/{product_offering_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing inventory product offering.", + "schema": { + "$ref": "#/definitions/ListingInventoryProductOffering" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's offering", @@ -4096,9 +5579,29 @@ "/listings/{listing_id}/inventory/products/{product_id}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing inventory product.", + "schema": { + "$ref": "#/definitions/ListingInventoryProduct" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's product", @@ -4129,9 +5632,29 @@ "/shops/{shop_id}/listings/{listing_id}/translations/{language}": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing translation.", + "schema": { + "$ref": "#/definitions/ListingTranslation" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get a listing's translation", @@ -4169,9 +5692,35 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing translation.", + "schema": { + "$ref": "#/definitions/ListingTranslation" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Create a listing translation", @@ -4247,9 +5796,35 @@ }, "put": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing translation.", + "schema": { + "$ref": "#/definitions/ListingTranslation" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a listing translation", @@ -4327,9 +5902,35 @@ "/shops/{shop_id}/listings/{listing_id}/variation-images": { "get": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A list of listing variation images.", + "schema": { + "$ref": "#/definitions/ListingVariationImages" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Get listing's variation images", @@ -4358,9 +5959,41 @@ }, "post": { "responses": { - "default": { - "description": "default", - "schema": {} + "200": { + "description": "A single listing variation image.", + "schema": { + "$ref": "#/definitions/ListingVariationImages" + } + }, + "404": { + "description": "A resource could not be found. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "400": { + "description": "There was a problem with the request data. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "409": { + "description": "There was a request conflict with current state of the target resource. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "403": { + "description": "The request attempted to perform an operation it is not allowed to. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } + }, + "500": { + "description": "The server encountered an internal error. See the error message for details.", + "schema": { + "$ref": "#/definitions/ErrorSchema" + } } }, "summary": "Update a listing's variation images", @@ -4415,7 +6048,6 @@ } } }, - "definitions": {}, "parameters": {}, "responses": {}, "securityDefinitions": { @@ -4430,7 +6062,4167 @@ "API Key": [] } ], - "tags": [], + "definitions": { + "ShopListing": { + "title": "ShopListing", + "description": "A listing from a shop, which contains a product quantity, title, description, price, etc.", + "type": "object", + "properties": { + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the listing associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID for the user posting the listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shop_id": { + "x-ms-summary": "Shop ID", + "description": "The unique positive non-zero numeric ID for an Etsy Shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "The listing's title string. Valid title strings contain only letters, numbers, punctuation marks, mathematical symbols, whitespace characters, ™, ©, and ®. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{P}\\\\p{Sm}\\\\p{Zs}™©®]/u) You can only use the %, :, & and + characters once each.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "A description string of the product for sale in the listing.", + "type": "string" + }, + "state": { + "$ref": "#/definitions/State" + }, + "creation_timestamp": { + "x-ms-summary": "Creation Timestamp", + "description": "The listing's creation time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "ending_timestamp": { + "x-ms-summary": "Ending Timestamp", + "description": "The listing's expiration time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "original_creation_timestamp": { + "x-ms-summary": "Original Creation Timestamp", + "description": "The listing's creation time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "last_modified_timestamp": { + "x-ms-summary": "Last Modified Timestamp", + "description": "The time of the last update to the listing, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "state_timestamp": { + "x-ms-summary": "Last State Change Timestamp", + "description": "The date and time of the last state change of this listing.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "quantity": { + "x-ms-summary": "Quantity", + "description": "The positive non-zero number of products available for purchase in the listing. Note: The listing quantity is the sum of available offering quantities. You can request the quantities for individual offerings from the ListingInventory resource using the get listing inventory endpoint.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "shop_section_id": { + "x-ms-summary": "Shop Section ID", + "description": "The numeric ID of a section in a specific Etsy shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "featured_rank": { + "x-ms-summary": "Featured Rank", + "description": "The positive non-zero numeric position in the featured listings of the shop, with rank 1 listings appearing in the left-most position in featured listing on a shop’s home page.", + "type": "integer", + "format": "int32" + }, + "url": { + "x-ms-summary": "URL", + "description": "The full URL to the listing's page on Etsy.", + "type": "string" + }, + "num_favorers": { + "x-ms-summary": "Number of Favorers", + "description": "The number of users who marked this listing a favorite.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "non_taxable": { + "x-ms-summary": "Non-taxable", + "description": "When true, applicable shop tax rates do not apply to this listing at checkout.", + "type": "boolean" + }, + "is_customizable": { + "x-ms-summary": "Is Customizable", + "description": "When true, a buyer may contact the seller for a customized order. The default value is true when a shop accepts custom orders. Does not apply to shops that do not accept custom orders.", + "type": "boolean" + }, + "is_personalizable": { + "x-ms-summary": "Is Peronalizable", + "description": "When true, this listing is personalizable. The default value is null.", + "type": "boolean" + }, + "personalization_is_required": { + "x-ms-summary": "Personalization is Required", + "description": "When true, this listing requires personalization. The default value is null.", + "type": "boolean" + }, + "personalization_char_count_max": { + "x-ms-summary": "Maximum Personalization Character Count", + "description": "This an integer value representing the maximum length for the personalization message entered by the buyer.", + "type": "integer", + "format": "int32" + }, + "personalization_instructions": { + "x-ms-summary": "Personalization Instructions", + "description": "When true, this listing requires personalization. The default value is null.", + "type": "string" + }, + "listing_type": { + "x-ms-summary": "Listing Type", + "description": "An enumerated type string that indicates whether the listing is physical or a digital download.", + "type": "boolean" + }, + "tags": { + "x-ms-summary": "Tags", + "description": "A list of tag strings for the listing. Valid tag strings contain only letters, numbers, whitespace characters, -, ', ™, ©, and ®. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}\\\\-'™©®]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "materials": { + "x-ms-summary": "Materials", + "description": "A list of material strings for materials used in the product. Valid materials strings contain only letters, numbers, and whitespace characters. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "shipping_profile_id": { + "x-ms-summary": "Shipping Profile ID", + "description": "The numeric ID of the shipping profile associated with the listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "processing_min": { + "x-ms-summary": "Minimum Processing Days", + "description": "The minimum number of days required to process this listing. Default value is null.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "processing_max": { + "x-ms-summary": "Maximum Processing Days", + "description": "The maximum number of days required to process this listing. Default value is null.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "who_made": { + "$ref": "#/definitions/WhoMade" + }, + "when_made": { + "$ref": "#/definitions/WhenMade" + }, + "is_supply": { + "x-ms-summary": "Supply Product", + "description": "When true, tags the listing as a supply product, else indicates that it's a finished product. Helps buyers locate the listing under the Supplies heading. Requires 'who_made' and 'when_made'.", + "type": "boolean" + }, + "item_weight": { + "x-ms-summary": "Item Weight", + "description": "The numeric weight of the product measured in units set in item weight unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_weight_unit": { + "$ref": "#/definitions/ItemWeightUnit" + }, + "item_length": { + "x-ms-summary": "Item Length", + "description": "The numeric length of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_width": { + "x-ms-summary": "Item Width", + "description": "The numeric width of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_height": { + "x-ms-summary": "Item Height", + "description": "The numeric length of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_dimensions_unit": { + "$ref": "#/definitions/ItemDimensionsUnit" + }, + "is_private": { + "x-ms-summary": "Is Private", + "description": "When true, this is a private listing intendend for a specific buyer and hidden from shop view.", + "type": "boolean" + }, + "recipient": { + "$ref": "#/definitions/Recipient" + }, + "occasion": { + "$ref": "#/definitions/Occasion" + }, + "style": { + "x-ms-summary": "Style", + "description": "An array of style strings for this listing, each of which is free-form text string such as Formal, or Steampunk. A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "file_data": { + "x-ms-summary": "File Data", + "description": "A string describing the files attached to a digital listing.", + "type": "string" + }, + "has_variations": { + "x-ms-summary": "Has Variations", + "description": "When true, the listing has variations.", + "type": "boolean" + }, + "should_auto_renew": { + "x-ms-summary": "Should Auto Renew", + "description": "When true, renews a listing for four months upon expriation. If set to true when previously false, etsy.com renews the listing before it expires, but the renewal period starts immidiately rather than extending the listing's expiration date. Any unused time remaining on the listing is lost. Renewals result in charges to a user's bill.", + "type": "boolean" + }, + "language": { + "x-ms-summary": "Language", + "description": "The IETF language tag for the default language of the listing. Ex: `de`, `en`, `es`, `fr`, `it`, `ja`, `nl`, `pl`, `pt`, `ru`.", + "type": "string" + }, + "price": { + "$ref": "#/definitions/Money" + }, + "taxonomy_id": { + "x-ms-summary": "Taxonomy ID", + "description": "The numeric taxonomy ID of the listing. The seller manages listing taxonomy IDs for their shop. See seller taxonomy for more information.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "listing_id", + "user_id", + "shop_id", + "title", + "description", + "state", + "creation_timestamp", + "ending_timestamp", + "original_creation_timestamp", + "last_modified_timestamp", + "state_timestamp", + "quantity", + "shop_section_id", + "featured_rank", + "url", + "num_favorers", + "non_taxable", + "is_customizable", + "is_personalizable", + "personalization_is_required", + "personalization_char_count_max", + "personalization_instructions", + "listing_type", + "tags", + "materials", + "shipping_profile_id", + "processing_min", + "processing_max", + "who_made", + "when_made", + "is_supply", + "item_weight", + "item_weight_unit", + "item_length", + "item_width", + "item_height", + "item_dimensions_unit", + "is_private", + "recipient", + "occasion", + "style", + "file_data", + "has_variations", + "should_auto_renew", + "language", + "price", + "taxonomy_id" + ] + }, + "Money": { + "title": "Money", + "description": "A representation of an amount of money.", + "type": "object", + "properties": { + "amount": { + "x-ms-summary": "Amount", + "description": "The amount of represented by this data.", + "type": "integer", + "format": "int32" + }, + "divisor": { + "x-ms-summary": "Divisor", + "description": "The divisor to render the amount.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "currency_code": { + "x-ms-summary": "Currency Code", + "description": "The ISO currency code for this data.", + "type": "string" + } + }, + "required": [ + "amount", + "divisor", + "currency_code" + ] + }, + "ErrorSchema": { + "title": "ErrorSchema", + "type": "object", + "properties": { + "error": { + "x-ms-summary": "Error", + "description": "The error code.", + "type": "string" + } + }, + "required": [ + "error" + ] + }, + "ShopListingFile": { + "title": "ShopListingFile", + "description": "A file associated with a digital listing.", + "type": "object", + "properties": { + "listing_file_id": { + "x-ms-summary": "Listing File ID", + "description": "The unique numeric ID of a file associated with a digital listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the listing associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "rank": { + "x-ms-summary": "Rank", + "description": "The numeric index of the display order position of this file in the listing, starting at 1.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "filename": { + "x-ms-summary": "Filename", + "description": "The file name string for a file associated with a digital listing.", + "type": "string" + }, + "filesize": { + "x-ms-summary": "Filesize", + "description": "A human-readable format size string for the size of a file.", + "type": "string" + }, + "size_bytes": { + "x-ms-summary": "Size in Bytes", + "description": "A number indicating the size of a file, measured in bytes.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "filetype": { + "x-ms-summary": "Filetype", + "description": "A type string indicating a file's MIME type.", + "type": "string" + }, + "create_timestamp": { + "x-ms-summary": "Create Timestamp", + "description": "The unique numeric timestamp of a file associated with a digital listing.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + } + }, + "required": [ + "listing_file_id", + "listing_id", + "rank", + "filename", + "filesize", + "size_bytes", + "filetype", + "create_timestamp" + ] + }, + "ShopListingFiles": { + "title": "ShopListingFiles", + "description": "Represents several ShopListingFiles.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of ShopListingFiles being returned..", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "An array of ShopListingFile resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopListingFile" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopListings": { + "title": "ShopListings", + "description": "A set of shop listing resources.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of shop listing resources found.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The shop listing resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopListing" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopListingWithAssociations": { + "title": "ShopListingWithAssociations", + "description": "A listing from a shop, which contains a product quantity, title, description, price, etc. and additional fields which represent associations.", + "type": "object", + "properties": { + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the listing associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID for the user posting the listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shop_id": { + "x-ms-summary": "Shop ID", + "description": "The unique positive non-zero numeric ID for an Etsy Shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "The listing's title string. Valid title strings contain only letters, numbers, punctuation marks, mathematical symbols, whitespace characters, ™, ©, and ®. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{P}\\\\p{Sm}\\\\p{Zs}™©®]/u) You can only use the %, :, & and + characters once each.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "A description string of the product for sale in the listing.", + "type": "string" + }, + "state": { + "$ref": "#/definitions/State" + }, + "creation_timestamp": { + "x-ms-summary": "Creation Timestamp", + "description": "The listing's creation time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "ending_timestamp": { + "x-ms-summary": "Ending Timestamp", + "description": "The listing's expiration time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "original_creation_timestamp": { + "x-ms-summary": "Original Creation Timestamp", + "description": "The listing's creation time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "last_modified_timestamp": { + "x-ms-summary": "Last Modified Timestamp", + "description": "The time of the last update to the listing, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "state_timestamp": { + "x-ms-summary": "Last State Change Timestamp", + "description": "The date and time of the last state change of this listing.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "quantity": { + "x-ms-summary": "Quantity", + "description": "The positive non-zero number of products available for purchase in the listing. Note: The listing quantity is the sum of available offering quantities. You can request the quantities for individual offerings from the ListingInventory resource using the get listing inventory endpoint.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "shop_section_id": { + "x-ms-summary": "Shop Section ID", + "description": "The numeric ID of a section in a specific Etsy shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "featured_rank": { + "x-ms-summary": "Featured Rank", + "description": "The positive non-zero numeric position in the featured listings of the shop, with rank 1 listings appearing in the left-most position in featured listing on a shop’s home page.", + "type": "integer", + "format": "int32" + }, + "url": { + "x-ms-summary": "URL", + "description": "The full URL to the listing's page on Etsy.", + "type": "string" + }, + "num_favorers": { + "x-ms-summary": "Number of Favorers", + "description": "The number of users who marked this listing a favorite.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "non_taxable": { + "x-ms-summary": "Non-taxable", + "description": "When true, applicable shop tax rates do not apply to this listing at checkout.", + "type": "boolean" + }, + "is_customizable": { + "x-ms-summary": "Is Customizable", + "description": "When true, a buyer may contact the seller for a customized order. The default value is true when a shop accepts custom orders. Does not apply to shops that do not accept custom orders.", + "type": "boolean" + }, + "is_personalizable": { + "x-ms-summary": "Is Peronalizable", + "description": "When true, this listing is personalizable. The default value is null.", + "type": "boolean" + }, + "personalization_is_required": { + "x-ms-summary": "Personalization is Required", + "description": "When true, this listing requires personalization. The default value is null.", + "type": "boolean" + }, + "personalization_char_count_max": { + "x-ms-summary": "Maximum Personalization Character Count", + "description": "This an integer value representing the maximum length for the personalization message entered by the buyer.", + "type": "integer", + "format": "int32" + }, + "personalization_instructions": { + "x-ms-summary": "Personalization Instructions", + "description": "When true, this listing requires personalization. The default value is null.", + "type": "string" + }, + "listing_type": { + "x-ms-summary": "Listing Type", + "description": "An enumerated type string that indicates whether the listing is physical or a digital download.", + "type": "boolean" + }, + "tags": { + "x-ms-summary": "Tags", + "description": "A list of tag strings for the listing. Valid tag strings contain only letters, numbers, whitespace characters, -, ', ™, ©, and ®. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}\\\\-'™©®]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "materials": { + "x-ms-summary": "Materials", + "description": "A list of material strings for materials used in the product. Valid materials strings contain only letters, numbers, and whitespace characters. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "shipping_profile_id": { + "x-ms-summary": "Shipping Profile ID", + "description": "The numeric ID of the shipping profile associated with the listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "processing_min": { + "x-ms-summary": "Minimum Processing Days", + "description": "The minimum number of days required to process this listing. Default value is null.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "processing_max": { + "x-ms-summary": "Maximum Processing Days", + "description": "The maximum number of days required to process this listing. Default value is null.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "who_made": { + "$ref": "#/definitions/WhoMade" + }, + "when_made": { + "$ref": "#/definitions/WhenMade" + }, + "is_supply": { + "x-ms-summary": "Supply Product", + "description": "When true, tags the listing as a supply product, else indicates that it's a finished product. Helps buyers locate the listing under the Supplies heading. Requires 'who_made' and 'when_made'.", + "type": "boolean" + }, + "item_weight": { + "x-ms-summary": "Item Weight", + "description": "The numeric weight of the product measured in units set in item weight unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_weight_unit": { + "$ref": "#/definitions/ItemWeightUnit" + }, + "item_length": { + "x-ms-summary": "Item Length", + "description": "The numeric length of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_width": { + "x-ms-summary": "Item Width", + "description": "The numeric width of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_height": { + "x-ms-summary": "Item Height", + "description": "The numeric length of the product measured in units set in item dimensions unit. Default value is null. If set, the value must be greater than 0.", + "type": "number", + "format": "double" + }, + "item_dimensions_unit": { + "$ref": "#/definitions/ItemDimensionsUnit" + }, + "is_private": { + "x-ms-summary": "Is Private", + "description": "When true, this is a private listing intendend for a specific buyer and hidden from shop view.", + "type": "boolean" + }, + "recipient": { + "$ref": "#/definitions/Recipient" + }, + "occasion": { + "$ref": "#/definitions/Occasion" + }, + "style": { + "x-ms-summary": "Style", + "description": "An array of style strings for this listing, each of which is free-form text string such as Formal, or Steampunk. A Listing may have up to two styles. Valid style strings contain only letters, numbers, and whitespace characters. (regex: /[^\\\\p{L}\\\\p{Nd}\\\\p{Zs}]/u) Default value is null.", + "type": "array", + "items": { + "type": "string" + } + }, + "file_data": { + "x-ms-summary": "File Data", + "description": "A string describing the files attached to a digital listing.", + "type": "string" + }, + "has_variations": { + "x-ms-summary": "Has Variations", + "description": "When true, the listing has variations.", + "type": "boolean" + }, + "should_auto_renew": { + "x-ms-summary": "Should Auto Renew", + "description": "When true, renews a listing for four months upon expriation. If set to true when previously false, etsy.com renews the listing before it expires, but the renewal period starts immidiately rather than extending the listing's expiration date. Any unused time remaining on the listing is lost. Renewals result in charges to a user's bill.", + "type": "boolean" + }, + "language": { + "x-ms-summary": "Language", + "description": "The IETF language tag for the default language of the listing. Ex: `de`, `en`, `es`, `fr`, `it`, `ja`, `nl`, `pl`, `pt`, `ru`.", + "type": "string" + }, + "price": { + "$ref": "#/definitions/Money" + }, + "taxonomy_id": { + "x-ms-summary": "Taxonomy ID", + "description": "The numeric taxonomy ID of the listing. The seller manages listing taxonomy IDs for their shop. See seller taxonomy for more information.", + "type": "integer", + "format": "int32" + }, + "user": { + "$ref": "#/definitions/User" + }, + "shop": { + "$ref": "#/definitions/Shop" + }, + "images": { + "x-ms-summary": "Images", + "description": "Represents a list of listing image resources, each of which contains the reference URLs and metadata for an image", + "type": "array", + "items": { + "$ref": "#/definitions/ListingImage" + } + }, + "production_partners": { + "x-ms-summary": "Production Partners", + "description": "Represents a list of production partners for a shop.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopProductionPartner" + } + } + }, + "required": [ + "listing_id", + "user_id", + "shop_id", + "title", + "description", + "state", + "creation_timestamp", + "ending_timestamp", + "original_creation_timestamp", + "last_modified_timestamp", + "state_timestamp", + "quantity", + "shop_section_id", + "featured_rank", + "url", + "num_favorers", + "non_taxable", + "is_customizable", + "is_personalizable", + "personalization_is_required", + "personalization_char_count_max", + "personalization_instructions", + "listing_type", + "tags", + "materials", + "shipping_profile_id", + "processing_min", + "processing_max", + "who_made", + "when_made", + "is_supply", + "item_weight", + "item_weight_unit", + "item_length", + "item_width", + "item_height", + "item_dimensions_unit", + "is_private", + "recipient", + "occasion", + "style", + "file_data", + "has_variations", + "should_auto_renew", + "language", + "price", + "taxonomy_id", + "user", + "shop", + "images", + "production_partners" + ] + }, + "User": { + "title": "User", + "description": "Represents a single user of the site", + "type": "object", + "properties": { + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID of a user. This number is also a valid shop ID for the user's shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "login_name": { + "x-ms-summary": "Login Name", + "description": "The user's login name string.", + "type": "string" + }, + "primary_email": { + "x-ms-summary": "Primary Email", + "description": "An email address string for the user's primary email address.", + "type": "string" + }, + "first_name": { + "x-ms-summary": "First Name", + "description": "The user's first name.", + "type": "string" + }, + "last_name": { + "x-ms-summary": "Last Name", + "description": "The user's last name.", + "type": "string" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The date and time the user created their account, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "referred_by_user_id": { + "x-ms-summary": "Referred by User ID", + "description": "The numeric ID of the user who referred this user.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "use_new_inventory_endpoints": { + "x-ms-summary": "Use New Inventory Endpoints", + "description": "Deprecated. Always true.", + "type": "boolean" + }, + "is_seller": { + "x-ms-summary": "Is Seller", + "description": "True if the user is seller.", + "type": "boolean" + }, + "bio": { + "x-ms-summary": "Biography", + "description": "The user's biography.", + "type": "string" + }, + "gender": { + "x-ms-summary": "Gender", + "description": "The user's gender.", + "type": "string" + }, + "birth_month": { + "x-ms-summary": "Birth Month", + "description": "The user's month of birth.", + "type": "string" + }, + "birth_day": { + "x-ms-summary": "Birthday", + "description": "The user's day of birth.", + "type": "string" + }, + "transaction_buy_count": { + "x-ms-summary": "Buy Transaction Count", + "description": "The number of transactions where the user has bought.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "transaction_sold_count": { + "x-ms-summary": "Sold Transaction Count", + "description": "The number of transactions where the user has sold.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + } + }, + "required": [ + "user_id", + "login_name", + "primary_email", + "first_name", + "last_name", + "create_timestamp", + "referred_by_user_id", + "use_new_inventory_endpoints", + "is_seller", + "bio", + "gender", + "birth_month", + "birth_day", + "transaction_buy_count", + "transaction_sold_count" + ] + }, + "Shop": { + "title": "Shop", + "description": "A shop created by an Etsy user.", + "type": "object", + "properties": { + "shop_id": { + "x-ms-summary": "Shop ID", + "description": "The unique positive non-zero numeric ID for an Etsy Shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric user ID of the user who owns this shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shop_name": { + "x-ms-summary": "Shop Name", + "description": "The shop's name string.", + "type": "string" + }, + "create_date": { + "x-ms-summary": "Created Date", + "description": "The date and time this shop was created, in epoch seconds.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "A brief heading string for the shop's main page.", + "type": "string" + }, + "announcement": { + "x-ms-summary": "Announcement", + "description": "An announcement string to buyers that displays on the shop's homepage.", + "type": "string" + }, + "currency_code": { + "x-ms-summary": "Currency Code", + "description": "The ISO (alphabetic) code for the shop's currency. The shop displays all prices in this currency by default.", + "type": "string" + }, + "is_vacation": { + "x-ms-summary": "Is On Vacation", + "description": "When true, this shop is not accepting purchases.", + "type": "boolean" + }, + "vacation_message": { + "x-ms-summary": "Vacation Message", + "description": "The shop's message string displayed when is_vacation is true.", + "type": "string" + }, + "sale_message": { + "x-ms-summary": "Sale Message", + "description": "A message string sent to users who complete a purchase from this shop.", + "type": "string" + }, + "digital_sale_message": { + "x-ms-summary": "Digital Sale Message", + "description": "A message string sent to users who purchase a digital item from this shop.", + "type": "string" + }, + "update_date": { + "x-ms-summary": "Updated Date", + "description": "The date and time of the last update to the shop, in epoch seconds.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "listing_active_count": { + "x-ms-summary": "Active Listing Count", + "description": "The number of active listings in the shop.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "digital_listing_count": { + "x-ms-summary": "Digital Listing Count", + "description": "The number of digital listings in the shop.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "login_name": { + "x-ms-summary": "Login Name", + "description": "The shop owner's login name string.", + "type": "string" + }, + "accepts_custom_requests": { + "x-ms-summary": "Accepts Custom Requests", + "description": "When true, the shop accepts customization requests.", + "type": "boolean" + }, + "policy_welcome": { + "x-ms-summary": "Welcome Policy", + "description": "The shop's policy welcome string (may be blank).", + "type": "string" + }, + "policy_payment": { + "x-ms-summary": "Payment Policy", + "description": "The shop's payment policy string (may be blank).", + "type": "string" + }, + "policy_shipping": { + "x-ms-summary": "Shipping Policy", + "description": "The shop's shipping policy string (may be blank).", + "type": "string" + }, + "policy_refunds": { + "x-ms-summary": "Refund Policy", + "description": "The shop's refund policy string (may be blank).", + "type": "string" + }, + "policy_additional": { + "x-ms-summary": "Additional Policies", + "description": "The shop's additional policies string (may be blank).", + "type": "string" + }, + "policy_seller_info": { + "x-ms-summary": "Seller Information", + "description": "The shop's seller infomation string (may be blank).", + "type": "string" + }, + "policy_update_date": { + "x-ms-summary": "Policy Updated Date", + "description": "The date and time of the last update to the shop's policies, in epoch seconds.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "policy_has_private_receipt_info": { + "x-ms-summary": "Has Private Receipt Policy", + "description": "When true, EU receipts display private info.", + "type": "boolean" + }, + "has_unstructured_policies": { + "x-ms-summary": "Has Unstructured Policies", + "description": "When true, the shop displays additional unstructured policy fields.", + "type": "boolean" + }, + "policy_privacy": { + "x-ms-summary": "Privacy Policy", + "description": "The shop's privacy policy string (may be blank).", + "type": "string" + }, + "vacation_autoreply": { + "x-ms-summary": "Vacation Autoreply", + "description": "The shop's automatic reply string displayed in new conversations when is_vacation is true.", + "type": "string" + }, + "url": { + "x-ms-summary": "URL", + "description": "The URL string for this shop.", + "type": "string" + }, + "image_url_760x100": { + "x-ms-summary": "Banner Image URL", + "description": "The URL string for this shop's banner image.", + "type": "string" + }, + "num_favorers": { + "x-ms-summary": "Number of Favorers", + "description": "The number of users who marked this shop a favorite.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "languages": { + "x-ms-summary": "Languages", + "description": "A list of language strings for the shop's enrolled languages.", + "type": "array", + "items": { + "type": "string" + } + }, + "icon_url_fullxfull": { + "x-ms-summary": "Icon Image URL", + "description": "The URL string for this shop's icon image.", + "type": "string" + }, + "is_using_structured_policies": { + "x-ms-summary": "Is Using Structured Policies", + "description": "When true, the shop accepted using structured policies.", + "type": "boolean" + }, + "has_onboarded_structured_policies": { + "x-ms-summary": "Has Onboarded Structured Policies", + "description": "When true, the shop accepted OR declined after viewing structured policies onboarding.", + "type": "boolean" + }, + "include_dispute_form_link": { + "x-ms-summary": "Include Dispute Form Link", + "description": "When true, this shop's policies include a link to an EU online dispute form.", + "type": "boolean" + }, + "is_direct_checkout_onboarded": { + "x-ms-summary": "Is Direct Checkout Onboarded", + "description": "When true, the shop has onboarded onto Etsy Payments.", + "type": "boolean" + }, + "is_calculated_eligible": { + "x-ms-summary": "Is Calculated Shipping Eligible", + "description": "When true, the shop is elegible for calculated shipping profiles. (Only available in the US and Canada)", + "type": "boolean" + }, + "is_opted_in_to_buyer_promise": { + "x-ms-summary": "Is Opted In to Buyer Promise", + "description": "When true, the shop opted in to buyer promise.", + "type": "boolean" + }, + "is_shop_us_based": { + "x-ms-summary": "Is US based", + "description": "When true, the shop is based in the US.", + "type": "boolean" + }, + "transaction_sold_count": { + "x-ms-summary": "Sales Transaction Count", + "description": "The total number of sales transactions for this shop", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "shipping_from_country_iso": { + "x-ms-summary": "Shipping from Country ISO", + "description": "The country iso the shop is shipping from.", + "type": "string" + }, + "shop_location_country_iso": { + "x-ms-summary": "Shop Location ISO", + "description": "The country iso where the shop is located.", + "type": "string" + }, + "review_count": { + "x-ms-summary": "Review Count", + "description": "Number of reviews of shop listings in the past year.", + "type": "integer", + "format": "int32" + }, + "review_average": { + "x-ms-summary": "Review Average", + "description": "Average rating based on reviews of shop listings in the past year.", + "type": "number", + "format": "double" + } + }, + "required": [ + "shop_id", + "user_id", + "shop_name", + "create_date", + "title", + "announcement", + "currency_code", + "is_vacation", + "vacation_message", + "sale_message", + "digital_sale_message", + "update_date", + "listing_active_count", + "digital_listing_count", + "login_name", + "accepts_custom_requests", + "policy_welcome", + "policy_payment", + "policy_shipping", + "policy_refunds", + "policy_additional", + "policy_seller_info", + "policy_update_date", + "policy_has_private_receipt_info", + "has_unstructured_policies", + "policy_privacy", + "vacation_autoreply", + "url", + "image_url_760x100", + "num_favorers", + "languages", + "icon_url_fullxfull", + "is_using_structured_policies", + "has_onboarded_structured_policies", + "include_dispute_form_link", + "is_direct_checkout_onboarded", + "is_calculated_eligible", + "is_opted_in_to_buyer_promise", + "is_shop_us_based", + "transaction_sold_count", + "shipping_from_country_iso", + "shop_location_country_iso", + "review_count", + "review_average" + ] + }, + "ListingImage": { + "title": "ListingImage", + "description": "Reference urls and metadata for an image associated with a specific listing. The `url_fullxfull` parameter contains the URL for full-sized binary image file.", + "type": "object", + "properties": { + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the listing associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "listing_image_id": { + "x-ms-summary": "Listing Image ID", + "description": "The numeric ID of the primary listing image for this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "hex_code": { + "x-ms-summary": "Hex Code", + "description": "The webhex string for the image's average color, in webhex notation.", + "type": "string" + }, + "red": { + "x-ms-summary": "Red Value", + "description": "The numeric red value equal to the image's average red value, from 0-255 (RGB color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "green": { + "x-ms-summary": "Green Value", + "description": "The numeric red value equal to the image's average red value, from 0-255 (RGB color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "blue": { + "x-ms-summary": "Blue Value", + "description": "The numeric red value equal to the image's average red value, from 0-255 (RGB color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "hue": { + "x-ms-summary": "Hue Value", + "description": "The numeric hue equal to the image's average hue, from 0-360 (HSV color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "saturation": { + "x-ms-summary": "Saturation Value", + "description": "The numeric saturation equal to the image's average saturation, from 0-100 (HSV color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "brightness": { + "x-ms-summary": "Brightness Value", + "description": "The numeric brightness equal to the image's average brightness, from 0-100 (HSV color).", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "is_black_and_white": { + "x-ms-summary": "Is Black and White", + "description": "When true, the image is in black & white.", + "type": "boolean" + }, + "creation_tsz": { + "x-ms-summary": "Creation Time", + "description": "The listing image's creation time, in epoch seconds.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "rank": { + "x-ms-summary": "Rank", + "description": "The positive non-zero numeric position in the images displayed in a listing, with rank 1 images appearing in the left-most position in a listing.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "url_75x75": { + "x-ms-summary": "75x75 Image URL", + "description": "The url string for a 75x75 pixel thumbnail of the image.", + "type": "string" + }, + "url_170x135": { + "x-ms-summary": "170x135 Image URL", + "description": "The url string for a 170x135 pixel thumbnail of the image.", + "type": "string" + }, + "url_570xN": { + "x-ms-summary": "570xN Image URL", + "description": "The url string for a thumbnail of the image, no more than 570 pixels wide with variable height.", + "type": "string" + }, + "url_fullxfull": { + "x-ms-summary": "Full-size Image URL", + "description": "The url string for the full-size image, up to 3000 pixels in each dimension.", + "type": "string" + }, + "full_height": { + "x-ms-summary": "Full-size Image Height", + "description": "The numeric height, measured in pixels, of the full-sized image referenced in url_fullxfull.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "full_width": { + "x-ms-summary": "Full-size Image Width", + "description": "The numeric width, measured in pixels, of the full-sized image referenced in url_fullxfull.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + } + }, + "required": [ + "listing_id", + "listing_image_id", + "hex_code", + "red", + "green", + "blue", + "hue", + "saturation", + "brightness", + "is_black_and_white", + "creation_tsz", + "rank", + "url_75x75", + "url_170x135", + "url_570xN", + "url_fullxfull", + "full_height", + "full_width" + ] + }, + "ShopProductionPartner": { + "title": "ShopProductionPartner", + "description": "Represents a description of a shop production partner.", + "type": "object", + "properties": { + "production_partner_id": { + "x-ms-summary": "Production Partner ID", + "description": "The numeric ID of a production partner.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "partner_name": { + "x-ms-summary": "Name", + "description": "The name or title of the production partner.", + "type": "string" + }, + "location": { + "x-ms-summary": "Location", + "description": "A string representing the production partner location.", + "type": "string" + } + }, + "required": [ + "production_partner_id", + "partner_name", + "location" + ] + }, + "ListingImages": { + "title": "ListingImages", + "description": "Represents a list of listing image resources, each of which contains the reference URLs and metadata for an image.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingImage" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ListingInventoryWithAssociations": { + "title": "ListingInventoryWithAssociations", + "description": "A representation of a single listing's inventory record with associations", + "type": "object", + "properties": { + "products": { + "x-ms-summary": "Products", + "description": "A JSON array of products available in a listing, even if only one product. All field names in the JSON blobs are lowercase.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingInventoryProduct" + } + }, + "price_on_property": { + "x-ms-summary": "Price On Properties", + "description": "An array of unique listing property ID integers for the properties that change product prices, if any. For example, if you charge specific prices for different sized products in the same listing, then this array contains the property ID for size.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "quantity_on_property": { + "x-ms-summary": "Quantity On Properties", + "description": "An array of unique listing property ID integers for the properties that change the quantity of the products, if any. For example, if you stock specific quantities of different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "sku_on_property": { + "x-ms-summary": "SKU On Properties", + "description": "An array of unique listing property ID integers for the properties that change the product SKU, if any. For example, if you use specific skus for different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "listing": { + "$ref": "#/definitions/ShopListing" + } + }, + "required": [ + "products", + "price_on_property", + "quantity_on_property", + "sku_on_property", + "listing" + ] + }, + "ListingInventoryProduct": { + "title": "ListingInventoryProduct", + "description": "A representation of a product for a listing.", + "type": "object", + "properties": { + "product_id": { + "x-ms-summary": "Product ID", + "description": "The numeric ID for a specific product purchased from a listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "sku": { + "x-ms-summary": "SKU", + "description": "The SKU string for the product", + "type": "string" + }, + "is_deleted": { + "x-ms-summary": "Is Deleted", + "description": "When true, someone deleted this product.", + "type": "boolean" + }, + "offerings": { + "x-ms-summary": "Offerings", + "description": "A list of product offering entries for this product.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingInventoryProductOffering" + } + }, + "property_values": { + "x-ms-summary": "Property Values", + "description": "A list of property value entries for this product.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingPropertyValue" + } + } + }, + "required": [ + "product_id", + "sku", + "is_deleted", + "offerings", + "property_values" + ] + }, + "ListingInventoryProductOffering": { + "title": "ListingInventoryProductOffering", + "description": "A representation of an offering for a listing.", + "type": "object", + "properties": { + "offering_id": { + "x-ms-summary": "Offering ID", + "description": "The ID for the product offering", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "quantity": { + "x-ms-summary": "Quantity", + "description": "The quantity the product offering", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "is_enabled": { + "x-ms-summary": "Is Enabled", + "description": "Whether or not the offering can be shown to buyers.", + "type": "boolean" + }, + "is_deleted": { + "x-ms-summary": "Is Deleted", + "description": "Whether or not the offering has been deleted.", + "type": "boolean" + }, + "price": { + "$ref": "#/definitions/Money" + } + }, + "required": [ + "offering_id", + "quantity", + "is_enabled", + "is_deleted", + "price" + ] + }, + "ListingPropertyValue": { + "title": "ListingPropertyValue", + "description": "A representation of structured data values.", + "type": "object", + "properties": { + "property_id": { + "x-ms-summary": "Property ID", + "description": "The numeric ID of the Property.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "property_name": { + "x-ms-summary": "Name", + "description": "The name of the Property.", + "type": "string" + }, + "scale_id": { + "x-ms-summary": "Scale ID", + "description": "The numeric ID of the scale (if any).", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "scale_name": { + "x-ms-summary": "Scale Name", + "description": "The label used to describe the chosen scale (if any).", + "type": "string" + }, + "value_ids": { + "x-ms-summary": "Value IDs", + "description": "The numeric IDs of the property values", + "type": "array", + "items": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "minimum": 1.0 + }, + "values": { + "x-ms-summary": "Values", + "description": "The property values", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "property_id", + "property_name", + "scale_id", + "scale_name", + "value_ids", + "values" + ] + }, + "ListingInventory": { + "title": "ListingInventory", + "description": "A representation of a single listing's inventory record.", + "type": "object", + "properties": { + "products": { + "x-ms-summary": "Products", + "description": "A JSON array of products available in a listing, even if only one product. All field names in the JSON blobs are lowercase.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingInventoryProduct" + } + }, + "price_on_property": { + "x-ms-summary": "Price On Properties", + "description": "An array of unique listing property ID integers for the properties that change product prices, if any. For example, if you charge specific prices for different sized products in the same listing, then this array contains the property ID for size.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "quantity_on_property": { + "x-ms-summary": "Quantity On Properties", + "description": "An array of unique listing property ID integers for the properties that change the quantity of the products, if any. For example, if you stock specific quantities of different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "sku_on_property": { + "x-ms-summary": "SKU On Properties", + "description": "An array of unique listing property ID integers for the properties that change the product SKU, if any. For example, if you use specific skus for different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "required": [ + "products", + "price_on_property", + "quantity_on_property", + "sku_on_property" + ] + }, + "ShopListingsWithAssociations": { + "title": "ShopListingsWithAssociations", + "description": "A set of shop listing resources with associations.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of shop listing resources found.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The shop listing resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopListing" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ListingPropertyValues": { + "title": "ListingPropertyValues", + "description": "Represents several listing property values.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of shop listing resources found.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The shop listing resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingPropertyValue" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopReceiptTransactions": { + "title": "ShopReceiptTransactions", + "description": "A set of shop receipt transaction resources", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of shop receipt transaction resources found.", + "type": "integer", + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The shop receipt transaction resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopReceiptTransaction" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopReceiptTransaction": { + "title": "ShopReceiptTransaction", + "description": "A transaction object associated with a shop receipt. Etsy generates one transaction per listing purchased as recorded on the order receipt.", + "type": "object", + "properties": { + "transaction_id": { + "x-ms-summary": "Transaction ID", + "description": "The unique numeric ID for a transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "The title string of the listing purchased in this transaction.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "The description string of the listing purchased in this transaction.", + "type": "string" + }, + "seller_user_id": { + "x-ms-summary": "Seller User ID", + "description": "The numeric user ID for the seller in this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "buyer_user_id": { + "x-ms-summary": "Buyer User ID", + "description": "The numeric user ID for the buyer in this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The transaction's creation date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "paid_timestamp": { + "x-ms-summary": "Paid Timestamp", + "description": "The transaction's paid date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "shipped_timestamp": { + "x-ms-summary": "Shipped Timestamp", + "description": "The transaction's shipping date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "quantity": { + "x-ms-summary": "Quantity", + "description": "The numeric quantity of products purchased in this transaction.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "listing_image_id": { + "x-ms-summary": "Listing Image ID", + "description": "The numeric ID of the primary listing image for this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "receipt_id": { + "x-ms-summary": "Receipt ID", + "description": "The numeric ID for the receipt associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "is_digital": { + "x-ms-summary": "Is Digital", + "description": "When true, the transaction recorded the purchase of a digital listing.", + "type": "boolean" + }, + "file_data": { + "x-ms-summary": "File Data", + "description": "A string describing the files purchased in this transaction.", + "type": "string" + }, + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the listing associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "transaction_type": { + "x-ms-summary": "Transaction Type", + "description": "The type string for the transaction, usually listing", + "type": "string" + }, + "product_id": { + "x-ms-summary": "Product ID", + "description": "The numeric ID for a specific product purchased from a listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "price": { + "$ref": "#/definitions/Money" + }, + "shipping_cost": { + "$ref": "#/definitions/Money" + } + }, + "required": [ + "transaction_id", + "title", + "description", + "seller_user_id", + "buyer_user_id", + "create_timestamp", + "paid_timestamp", + "shipped_timestamp", + "quantity", + "listing_image_id", + "receipt_id", + "is_digital", + "file_data", + "listing_id", + "transaction_type", + "product_id", + "price", + "shipping_cost" + ] + }, + "ListingTranslation": { + "title": "ListingTranslation", + "description": "Represents the translation data for a Listing.", + "type": "object", + "properties": { + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The numeric ID for the Listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "language": { + "x-ms-summary": "Language", + "description": "The IETF language tag (e.g. 'fr') for the language of this translation.", + "type": "string" + }, + "title": { + "x-ms-summary": "Title", + "description": "The title of the Listing of this Translation.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "The description of the Listing of this Translation.", + "type": "string" + }, + "tags": { + "x-ms-summary": "Tags", + "description": "The tags of the Listing of this Translation.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "listing_id", + "language", + "title", + "description", + "tags" + ] + }, + "ListingVariationImages": { + "title": "ListingVariationImages", + "description": "Represents several listing variation images.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The count of variation images.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The variation images results.", + "type": "array", + "items": { + "$ref": "#/definitions/ListingVariationImage" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ListingVariationImage": { + "title": "ListingVariationImage", + "description": "A representation of the associations of variations and images on a listing.", + "type": "object", + "properties": { + "property_id": { + "x-ms-summary": "Property ID", + "description": "The numeric ID of the Property.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "value_id": { + "x-ms-summary": "Value ID", + "description": "The numeric ID of the Value.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "image_id": { + "x-ms-summary": "Image ID", + "description": "The numeric ID of the Image.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + } + }, + "required": [ + "property_id", + "value_id", + "image_id" + ] + }, + "PaymentAccountLedgerEntries": { + "title": "PaymentAccountLedgerEntries", + "description": "A set of payment account ledger entry resources", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of payment account ledger entry resources found.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The payment account ledger entry resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/PaymentAccountLedgerEntry" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "PaymentAccountLedgerEntry": { + "title": "PaymentAccountLedgerEntry", + "description": "Represents an entry in a shop's ledger.", + "type": "object", + "properties": { + "entry_id": { + "x-ms-summary": "Entry ID", + "description": "The ledger entry's numeric ID.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "ledger_id": { + "x-ms-summary": "Ledger ID", + "description": "The ledger's numeric ID.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "sequence_number": { + "x-ms-summary": "Sequence Number", + "description": "The sequence allows ledger entries to be sorted chronologically. The higher the sequence, the more recent the entry.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "amount": { + "x-ms-summary": "Amount", + "description": "The amount of money credited to the ledger.", + "type": "integer", + "format": "int32" + }, + "currency": { + "x-ms-summary": "Currency", + "description": "The currency of the entry on the ledger.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "Details what kind of ledger entry this is: a payment, refund, reversal of a failed refund, disbursement, returned disbursement, recoupment, miscellaneous credit, miscellaneous debit, or bill payment.", + "type": "string" + }, + "balance": { + "x-ms-summary": "Balance", + "description": "The amount of money in the shop's ledger the moment after this entry was applied.", + "type": "integer", + "format": "int32" + }, + "create_date": { + "x-ms-summary": "Created Date", + "description": "The date and time the ledger entry was created in Epoch seconds..", + "type": "integer", + "minimum": 0.0, + "format": "int32" + } + }, + "required": [ + "entry_id", + "ledger_id", + "sequence_number", + "amount", + "currency", + "description", + "balance", + "create_date" + ] + }, + "Payments": { + "title": "Payments", + "description": "Represents several payments made with Etsy Payments. All monetary amounts are in USD pennies unless otherwise specified.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of payments in the response.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "A list of payments.", + "type": "array", + "items": { + "$ref": "#/definitions/Payment" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "Payment": { + "title": "Payment", + "description": "Represents a payment made with Etsy Payments. All monetary amounts are in USD pennies unless otherwise specified.", + "type": "object", + "properties": { + "payment_id": { + "x-ms-summary": "Payment ID", + "description": "A unique numeric ID for a payment to a specific Etsy shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "buyer_user_id": { + "x-ms-summary": "Buyer User ID", + "description": "The numeric ID for the user who paid the purchase.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shop_id": { + "x-ms-summary": "Shop ID", + "description": "The unique positive non-zero numeric ID for an Etsy Shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "receipt_id": { + "x-ms-summary": "Receipt ID", + "description": "The numeric ID for the receipt associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "amount_gross": { + "$ref": "#/definitions/Money" + }, + "amount_fees": { + "$ref": "#/definitions/Money" + }, + "amount_net": { + "$ref": "#/definitions/Money" + }, + "posted_gross": { + "$ref": "#/definitions/Money" + }, + "posted_fees": { + "$ref": "#/definitions/Money" + }, + "posted_net": { + "$ref": "#/definitions/Money" + }, + "adjusted_gross": { + "$ref": "#/definitions/Money" + }, + "adjusted_fees": { + "$ref": "#/definitions/Money" + }, + "adjusted_net": { + "$ref": "#/definitions/Money" + }, + "currency": { + "x-ms-summary": "Currency", + "description": "The ISO (alphabetic) code string for the payment's currency.", + "type": "string" + }, + "shop_currency": { + "x-ms-summary": "Shop Currency", + "description": "The ISO (alphabetic) code for the shop's currency. The shop displays all prices in this currency by default.", + "type": "string" + }, + "buyer_currency": { + "x-ms-summary": "Buyer Currency", + "description": "The currency string of the buyer.", + "type": "string" + }, + "shipping_user_id": { + "x-ms-summary": "User Shipping ID", + "description": "The numeric ID of the user to which the seller ships the order.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shipping_address_id": { + "x-ms-summary": "Shipping Address ID", + "description": "The numeric id identifying the shipping address.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "billing_address_id": { + "x-ms-summary": "Billing Address ID", + "description": "The numeric ID identifying the billing address of the buyer.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "status": { + "x-ms-summary": "Status", + "description": "A string indicating the current status of the payment, most commonly settled or authed.", + "type": "string" + }, + "shipped_timestamp": { + "x-ms-summary": "Shipped Timestamp", + "description": "The transaction's shipping date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The transaction's creation date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "update_timestamp": { + "x-ms-summary": "Update Timestamp", + "description": "The date and time of the last change to the payment adjustment in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "payment_adjustments": { + "x-ms-summary": "Payment Adjustments", + "description": "List of refund objects on an Etsy Payments transaction. All monetary amounts are in USD pennies unless otherwise specified.", + "type": "array", + "items": { + "$ref": "#/definitions/PaymentAdjustment" + } + } + }, + "required": [ + "payment_id", + "buyer_user_id", + "shop_id", + "receipt_id", + "amount_gross", + "amount_fees", + "amount_net", + "currency", + "shop_currency", + "buyer_currency", + "shipping_user_id", + "shipping_address_id", + "billing_address_id", + "status", + "shipped_timestamp", + "create_timestamp", + "update_timestamp", + "payment_adjustments" + ] + }, + "PaymentAdjustment": { + "title": "PaymentAdjustment", + "description": "Represents a refund, which applies to a prior Etsy payment. All monetary amounts are in USD pennies unless otherwise specified.", + "type": "object", + "properties": { + "payment_adjustment_id": { + "x-ms-summary": "Payment Adjustment ID", + "description": "The numeric ID for a payment adjustment.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "payment_id": { + "x-ms-summary": "Payment ID", + "description": "A unique numeric ID for a payment to a specific Etsy shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "status": { + "x-ms-summary": "Status", + "description": "The status string of the payment adjustment.", + "type": "string" + }, + "is_success": { + "x-ms-summary": "Is Success", + "description": "When true, the payment adjustment was or is likely to complete successfully.", + "type": "boolean" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID for the user (seller) fulfilling the purchase.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "reason_code": { + "x-ms-summary": "Reason Code", + "description": "A human-readable string describing the reason for the refund.", + "type": "string" + }, + "total_adjustment_amount": { + "x-ms-summary": "Total Adjustment Amount", + "description": "The total numeric amount of the refund in the payment currency.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "shop_total_adjustment_amount": { + "x-ms-summary": "Shop Total Adjustment Amount", + "description": "The numeric amount of the refund in the shop currency.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "buyer_total_adjustment_amount": { + "x-ms-summary": "Total Adjustment Amount", + "description": "The numeric amount of the refund in the buyer currency.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "total_fee_adjustment_amount": { + "x-ms-summary": "Total Fee Adjustment Amount", + "description": "The numeric amount of card processing fees associated with a payment adjustment.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The transaction's creation date and time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "update_timestamp": { + "x-ms-summary": "Update Timestamp", + "description": "The date and time of the last change to the payment adjustment in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + } + }, + "required": [ + "payment_adjustment_id", + "payment_id", + "status", + "is_success", + "user_id", + "reason_code", + "total_adjustment_amount", + "shop_total_adjustment_amount", + "buyer_total_adjustment_amount", + "total_fee_adjustment_amount", + "create_timestamp", + "update_timestamp" + ] + }, + "Pong": { + "title": "Pong", + "description": "A confirmation that the current application has access to the Open API", + "type": "object", + "properties": { + "application_id": { + "x-ms-summary": "Application ID", + "description": "The authenticated application's ID", + "type": "integer", + "minimum": 1.0, + "format": "int32" + } + }, + "required": [ + "application_id" + ] + }, + "ShopReceipt": { + "title": "ShopReceipt", + "description": "The record of a purchase from a shop. Shop receipts display monetary values using the shop's currency.", + "type": "object", + "properties": { + "receipt_id": { + "x-ms-summary": "Receipt ID", + "description": "The numeric ID for the receipt associated to this transaction.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "receipt_type": { + "x-ms-summary": "Receipt Type", + "description": "The numeric value for the Etsy channel that serviced the purchase: 0 for Etsy.com, 1 for a Pattern shop.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "seller_user_id": { + "x-ms-summary": "Seller User ID", + "description": "The numeric ID for the user (seller) fulfilling the purchase.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "seller_email": { + "x-ms-summary": "Seller's Email Address", + "description": "The email address string for the seller of the listing.", + "type": "string" + }, + "buyer_user_id": { + "x-ms-summary": "Buyer User ID", + "description": "The numeric ID for the user making the purchase.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "buyer_email": { + "x-ms-summary": "Buyer's Email Address", + "description": "The email address string for the buyer of the listing.", + "type": "string" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name string for the recipient in the shipping address.", + "type": "string" + }, + "first_line": { + "x-ms-summary": "First Address Line", + "description": "The first address line string for the recipient in the shipping address.", + "type": "string" + }, + "second_line": { + "x-ms-summary": "Second Address Line", + "description": "The optional second address line string for the recipient in the shipping address.", + "type": "string" + }, + "city": { + "x-ms-summary": "City", + "description": "The city string for the recipient in the shipping address.", + "type": "string" + }, + "state": { + "x-ms-summary": "State", + "description": "The state string for the recipient in the shipping address.", + "type": "string" + }, + "zip": { + "x-ms-summary": "Zip Code", + "description": "The zip code string (not necessarily a number) for the recipient in the shipping address.", + "type": "string" + }, + "formatted_address": { + "x-ms-summary": "Formatted Address", + "description": "The formatted shipping address string for the recipient in the shipping address.", + "type": "string" + }, + "country_iso": { + "x-ms-summary": "Country Code ISO", + "description": "The ISO-3166 alpha-2 country code string for the recipient in the shipping address.", + "type": "string" + }, + "payment_method": { + "x-ms-summary": "Payment Method", + "description": "The payment method string identifying purchaser's payment method, which must be one of: 'cc' (credit card), 'paypal', 'check', 'mo' (money order), 'bt' (bank transfer), 'other', 'ideal', 'sofort', 'apple_pay', 'google', 'android_pay', 'google_pay', 'klarna', 'k_pay_in_4' (klarna), or 'k_financing' (klarna).", + "type": "string" + }, + "payment_email": { + "x-ms-summary": "Payment Email Address", + "description": "The email address string for the email address to which to send payment confirmation", + "type": "string" + }, + "message_from_seller": { + "x-ms-summary": "Message from Seller", + "description": "An optional message string from the seller.", + "type": "string" + }, + "message_from_buyer": { + "x-ms-summary": "Message from Buyer", + "description": "An optional message string from the buyer.", + "type": "string" + }, + "message_from_payment": { + "x-ms-summary": "Message from Payment System", + "description": "The machine-generated acknowledgement string from the payment system.", + "type": "string" + }, + "is_paid": { + "x-ms-summary": "Is Paid", + "description": "When true, buyer paid for this purchase.", + "type": "boolean" + }, + "is_shipped": { + "x-ms-summary": "Is Shipped", + "description": "When true, seller shipped the products.", + "type": "boolean" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The receipt's creation time, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "update_timestamp": { + "x-ms-summary": "Update Timestamp", + "description": "The time of the last update to the receipt, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "gift_message": { + "x-ms-summary": "Gift Message", + "description": "A gift message string the buyer requests delivered with the product.", + "type": "string" + }, + "grandtotal": { + "$ref": "#/definitions/Money" + }, + "subtotal": { + "$ref": "#/definitions/Money" + }, + "total_price": { + "$ref": "#/definitions/Money" + }, + "total_shipping_cost": { + "$ref": "#/definitions/Money" + }, + "total_tax_cost": { + "$ref": "#/definitions/Money" + }, + "total_vat_cost": { + "$ref": "#/definitions/Money" + }, + "discount_amt": { + "$ref": "#/definitions/Money" + }, + "gift_wrap_price": { + "$ref": "#/definitions/Money" + }, + "shipments": { + "x-ms-summary": "Shipments", + "description": "A list of shipment statements for this receipt.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopReceiptShipment" + } + } + }, + "required": [ + "receipt_id", + "receipt_type", + "seller_user_id", + "seller_email", + "buyer_user_id", + "buyer_email", + "name", + "first_line", + "second_line", + "city", + "state", + "zip", + "formatted_address", + "country_iso", + "payment_method", + "payment_email", + "message_from_seller", + "message_from_buyer", + "message_from_payment", + "is_paid", + "is_shipped", + "create_timestamp", + "update_timestamp", + "gift_message", + "grandtotal", + "subtotal", + "total_price", + "total_shipping_cost", + "total_tax_cost", + "total_vat_cost", + "discount_amt", + "gift_wrap_price", + "shipments" + ] + }, + "ShopReceiptShipment": { + "title": "ShopReceiptShipment", + "description": "The record of one shipment event for a ShopReceipt. A receipt may have many ShopReceiptShipment records.", + "type": "object", + "properties": { + "receipt_shipping_id": { + "x-ms-summary": "Receipt Shipping ID", + "description": "The unique numeric ID of a Shop Receipt Shipment record.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shipment_notification_timestamp": { + "x-ms-summary": "Shipment Notification Timestamp", + "description": "The time at which Etsy notified the buyer of the shipment event, in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "carrier_name": { + "x-ms-summary": "Carrier Name", + "description": "The name string for the carrier/company responsible for delivering the shipment.", + "type": "string" + }, + "tracking_code": { + "x-ms-summary": "Tracking Code", + "description": "The tracking code string provided by the carrier/company for the shipment.", + "type": "string" + } + }, + "required": [ + "receipt_shipping_id", + "shipment_notification_timestamp", + "carrier_name", + "tracking_code" + ] + }, + "ShopReceipts": { + "title": "ShopReceipts", + "description": "The receipts for a specific Shop.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of Shop Receipts found.", + "type": "integer", + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "List of Shop Receipt resources found, with all Shop Receipt fields for each resource.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopReceipt" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "TransactionReviews": { + "title": "TransactionReviews", + "description": "A set of transaction review records left by Users.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of TransactionReview resources found.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The TransactionReview resources found.", + "type": "array", + "items": { + "$ref": "#/definitions/TransactionReview" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "TransactionReview": { + "title": "TransactionReview", + "description": "A transaction review record left by a User.", + "type": "object", + "properties": { + "shop_id": { + "x-ms-summary": "Shop ID", + "description": "The shop's numeric ID.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "listing_id": { + "x-ms-summary": "Listing ID", + "description": "The ID of the shop listing that the TransactionReview belongs to.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "buyer_user_id": { + "x-ms-summary": "Buyer User ID", + "description": "The numeric ID of the user who was the buyer in this transaction. Note: This field may be absent, depending on the buyer's privacy settings.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "rating": { + "x-ms-summary": "Rating", + "description": "Rating value on scale from 1 to 5", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "review": { + "x-ms-summary": "Review Message", + "description": "A message left by the author, explaining the feedback.", + "type": "string" + }, + "language": { + "x-ms-summary": "Language", + "description": "The language of the TransactionReview", + "type": "string" + }, + "image_url_fullxfull": { + "x-ms-summary": "Fullsize Image URL", + "description": "The url to a photo provided with the feedback, dimensions fullxfull. Note: This field may be absent, depending on the buyer's privacy settings.", + "type": "string" + }, + "create_timestamp": { + "x-ms-summary": "Created Timestamp", + "description": "The date and time the TransactionReview was created in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + }, + "update_timestamp": { + "x-ms-summary": "Update Timestamp", + "description": "The date and time the TransactionReview was updated in epoch seconds.", + "type": "integer", + "minimum": 946684800.0, + "format": "int32" + } + }, + "required": [ + "shop_id", + "listing_id", + "buyer_user_id", + "rating", + "review", + "language", + "image_url_fullxfull", + "create_timestamp", + "update_timestamp" + ] + }, + "SellerTaxonomyNodes": { + "title": "SellerTaxonomyNodes", + "description": "A list of taxonomy nodes from the seller taxonomy tree.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/SellerTaxonomyNode" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "SellerTaxonomyNode": { + "title": "SellerTaxonomyNode", + "description": "A taxonomy node in the seller taxonomy tree.", + "type": "object", + "properties": { + "id": { + "x-ms-summary": "ID", + "description": "The unique numeric ID of an Etsy taxonomy node, which is a metadata category for listings organized into the seller taxonomy hierarchy tree. For example, the shoes taxonomy node (ID: 1429, level: 1) is higher in the hierarchy than girls' shoes (ID: 1440, level: 2). The taxonomy nodes assigned to a listing support access to specific standardized product scales and properties. For example, listings assigned the taxonomy nodes shoes or girls' shoes support access to the EU shoe size scale with its associated property names and IDs for EU shoe sizes, such as property `value_id`:1394, and `name`:38.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "level": { + "x-ms-summary": "Level", + "description": "The integer depth of this taxonomy node in the seller taxonomy tree, with roots at level 0.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name string for this taxonomy node.", + "type": "string" + }, + "parent_id": { + "x-ms-summary": "Parent ID", + "description": "The numeric taxonomy ID of the parent of this node.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "children": { + "x-ms-summary": "Children", + "description": "An array of taxonomy nodes for all the direct children of this taxonomy node in the seller taxanomy tree.", + "type": "array", + "items": { + "$ref": "#/definitions/SellerTaxonomyNode" + } + }, + "full_path_taxonomy_ids": { + "x-ms-summary": "Taxonomy Path IDs", + "description": "An array of taxonomy IDs including this node and all of its direct parents in the seller taxonomy tree up to a root node. They are listed in order from root to leaf.", + "type": "array", + "items": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "minimum": 1.0 + } + }, + "required": [ + "id", + "level", + "name", + "children", + "full_path_taxonomy_ids" + ] + }, + "TaxonomyNodeProperties": { + "title": "TaxonomyNodeProperties", + "description": "A list of product property definitions.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/TaxonomyNodeProperty" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "TaxonomyNodeProperty": { + "title": "TaxonomyNodeProperty", + "description": "A product property definition.", + "type": "object", + "properties": { + "property_id": { + "x-ms-summary": "Property ID", + "description": "The unique numeric ID of this product property.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name string for this taxonomy node.", + "type": "string" + }, + "display_name": { + "x-ms-summary": "Display Name", + "description": "The human-readable product property name string.", + "type": "string" + }, + "scales": { + "x-ms-summary": "Scales", + "description": "A list of available scales.", + "type": "array", + "items": { + "$ref": "#/definitions/TaxonomyPropertyScale" + } + }, + "is_required": { + "x-ms-summary": "Is Required", + "description": "When true, listings assigned eligible taxonomy IDs require this property.", + "type": "boolean" + }, + "supports_attributes": { + "x-ms-summary": "Supports Attributes", + "description": "When true, you can use this property in listing attributes.", + "type": "boolean" + }, + "supports_variations": { + "x-ms-summary": "Supports Variations", + "description": "When true, you can use this property in listing variations.", + "type": "boolean" + }, + "is_multivalued": { + "x-ms-summary": "Is Multivalued", + "description": "When true, you can assign multiple property values to this property", + "type": "boolean" + }, + "possible_values": { + "x-ms-summary": "Possible Values", + "description": "A list of supported property value strings for this property.", + "type": "array", + "items": { + "$ref": "#/definitions/TaxonomyPropertyValue" + } + }, + "selected_values": { + "x-ms-summary": "Selected Values", + "description": "A list of property value strings automatically and always selected for the given property.", + "type": "array", + "items": { + "$ref": "#/definitions/TaxonomyPropertyValue" + } + } + }, + "required": [ + "property_id", + "name", + "display_name", + "scales", + "is_required", + "supports_attributes", + "supports_variations", + "is_multivalued", + "possible_values", + "selected_values" + ] + }, + "TaxonomyPropertyScale": { + "title": "TaxonomyPropertyScale", + "description": "A scale defnining the assignable increments for the property values available to specific product properties.", + "type": "object", + "properties": { + "scale_id": { + "x-ms-summary": "Scale ID", + "description": "The unique numeric ID of a scale.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "display_name": { + "x-ms-summary": "Display Name", + "description": "The name string for a scale.", + "type": "string" + }, + "description": { + "x-ms-summary": "Description", + "description": "The description string for a scale.", + "type": "string" + } + }, + "required": [ + "scale_id", + "display_name", + "description" + ] + }, + "TaxonomyPropertyValue": { + "title": "TaxonomyPropertyValue", + "description": "A property value for a specific product property, which may also employ a specific scale.", + "type": "object", + "properties": { + "value_id": { + "x-ms-summary": "Value ID", + "description": "The numeric ID of this property value.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name string of this property value.", + "type": "string" + }, + "scale_id": { + "x-ms-summary": "Scale ID", + "description": "The numeric scale ID of the scale to which this property value belongs.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "equal_to": { + "x-ms-summary": "Equal To", + "description": "A list of numeric property value IDs this property value is equal to (if any).", + "type": "array", + "items": { + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "minimum": 0.0 + } + }, + "required": [ + "value_id", + "name", + "scale_id", + "equal_to" + ] + }, + "ShippingCarriers": { + "title": "ShippingCarriers", + "description": "Represents several ShippingCarriers.", + "type": "object", + "properties": { + "count": { + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ShippingCarrier" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShippingCarrier": { + "title": "ShippingCarrier", + "description": "A supported shipping carrier, which is used to calculate an Estimated Delivery Date.", + "type": "object", + "properties": { + "shipping_carrier_id": { + "x-ms-summary": "Shipping Carrier ID", + "description": "The numeric ID of this shipping carrier.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name of this shipping carrier.", + "type": "string" + }, + "domestic_classes": { + "x-ms-summary": "Domestic Classes", + "description": "Set of domestic mail classes of this shipping carrier.", + "type": "array", + "items": { + "$ref": "#/definitions/ShippingCarrierMailClass" + } + }, + "international_classes": { + "x-ms-summary": "International Classes", + "description": "Set of international mail classes of this shipping carrier.", + "type": "array", + "items": { + "$ref": "#/definitions/ShippingCarrierMailClass" + } + } + }, + "required": [ + "shipping_carrier_id", + "name", + "domestic_classes", + "international_classes" + ] + }, + "ShippingCarrierMailClass": { + "title": "ShippingCarrierMailClass", + "description": "A shipping carrier's mail class, which is used to calculate an Estimated Delivery Date.", + "type": "object", + "properties": { + "mail_class_key": { + "x-ms-summary": "Mail Class ID", + "description": "The unique identifier of this mail class.", + "type": "string" + }, + "name": { + "x-ms-summary": "Name", + "description": "The name of this mail class.", + "type": "string" + } + }, + "required": [ + "mail_class_key", + "name" + ] + }, + "Shops": { + "title": "Shops", + "description": "A set of Shop records.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The total number of Shops", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The Shop resources.", + "type": "array", + "items": { + "$ref": "#/definitions/Shop" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopProductionPartners": { + "title": "ShopProductionPartners", + "description": "Represents a list of shop production partners.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopProductionPartner" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopSection": { + "title": "ShopSection", + "description": "A section within a shop, into which a user can sort listings.", + "type": "object", + "properties": { + "shop_section_id": { + "x-ms-summary": "Shop Section ID", + "description": "The numeric ID of a section in a specific Etsy shop.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "The title string for a shop section.", + "type": "string" + }, + "rank": { + "x-ms-summary": "Rank", + "description": "The positive non-zero numeric position of this section in the section display order for a shop, with rank 1 sections appearing first.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID of the user who owns this shop section.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "active_listing_count": { + "x-ms-summary": "Active Listing Count", + "description": "The number of active listings in one section of a specific Etsy shop.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + } + }, + "required": [ + "shop_section_id", + "title", + "rank", + "user_id", + "active_listing_count" + ] + }, + "ShopSections": { + "title": "ShopSections", + "description": "All the sections in a sprecific Shop.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopSection" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopShippingProfile": { + "title": "ShopShippingProfile", + "description": "Represents a profile used to set a listing's shipping information. Please note that it's not possible to create calculated shipping templates via the API. However, you can associate calculated shipping profiles created from Shop Manager with listings using the API.", + "type": "object", + "properties": { + "shipping_profile_id": { + "x-ms-summary": "Shipping Profile ID", + "description": "The numeric ID of the shipping profile.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "title": { + "x-ms-summary": "Title", + "description": "The name string of this shipping profile.", + "type": "string" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The numeric ID for the user who owns the shipping profile.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "min_processing_days": { + "x-ms-summary": "Minimum Processing Days", + "description": "The minimum number of days for processing the listing.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "max_processing_days": { + "x-ms-summary": "Maximum Processing Days", + "description": "The maximum number of days for processing the listing.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "processing_days_display_label": { + "x-ms-summary": "Processing Days Label", + "description": "Translated display label string for processing days.", + "type": "string" + }, + "origin_country_iso": { + "x-ms-summary": "Origin Country ISO", + "description": "The ISO code of the country from which the listing ships.", + "type": "string" + }, + "is_deleted": { + "x-ms-summary": "Is Deleted", + "description": "When true, someone deleted this shipping profile.", + "type": "boolean" + }, + "shipping_profile_destinations": { + "x-ms-summary": "Shipping Profile Destinations", + "description": "A list of shipping profile destinations available for this shipping profile.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopShippingProfileDestination" + } + }, + "shipping_profile_upgrades": { + "x-ms-summary": "Shipping Profile Upgrades", + "description": "A list of shipping profile upgrades available for this shipping profile.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopShippingProfileUpgrade" + } + }, + "origin_postal_code": { + "x-ms-summary": "Origin Postal Code", + "description": "The postal code string (not necessarily a number) for the location from which the listing ships.", + "type": "string" + }, + "profile_type": { + "$ref": "#/definitions/ProfileType" + } + }, + "required": [ + "shipping_profile_id", + "title", + "user_id", + "min_processing_days", + "max_processing_days", + "processing_days_display_label", + "origin_country_iso", + "is_deleted", + "shipping_profile_destinations", + "shipping_profile_upgrades", + "origin_postal_code" + ] + }, + "ShopShippingProfileDestination": { + "title": "ShopShippingProfileDestination", + "description": "Represents a shipping destination assigned to a shipping profile.", + "type": "object", + "properties": { + "shipping_profile_destination_id": { + "x-ms-summary": "Shipping Profile Destination ID", + "description": "The numeric ID of the shipping profile destination in the shipping profile associated with the listing.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "shipping_profile_id": { + "x-ms-summary": "Shipping Profile ID", + "description": "The numeric ID of the shipping profile.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "origin_country_iso": { + "x-ms-summary": "Origin Country ISO", + "description": "The ISO code of the country from which the listing ships.", + "type": "string" + }, + "destination_country_iso": { + "x-ms-summary": "Destination Country ISO", + "description": "The ISO code of the country to which the listing ships. If null, request sets destination to destination_region", + "type": "string" + }, + "destination_region": { + "$ref": "#/definitions/DestinationRegion" + }, + "primary_cost": { + "$ref": "#/definitions/Money" + }, + "secondary_cost": { + "$ref": "#/definitions/Money" + }, + "shipping_carrier_id": { + "x-ms-summary": "Shipping Carrier ID", + "description": "The unique ID of a supported shipping carrier, which is used to calculate an Estimated Delivery Date.", + "type": "integer", + "format": "int32" + }, + "mail_class": { + "x-ms-summary": "Mail Class", + "description": "The unique ID string of a shipping carrier's mail class, which is used to calculate an estimated delivery date.", + "type": "string" + }, + "min_delivery_days": { + "x-ms-summary": "Minimum Delivery Days", + "description": "The minimum number of business days a buyer can expect to wait to receive their purchased item once it has shipped.", + "type": "integer", + "minimum": 1.0, + "maximum": 45.0, + "format": "int32" + }, + "max_delivery_days": { + "x-ms-summary": "Maximum Delivery Days", + "description": "The maximum number of business days a buyer can expect to wait to receive their purchased item once it has shipped.", + "type": "integer", + "minimum": 1.0, + "maximum": 45.0, + "format": "int32" + } + }, + "required": [ + "shipping_profile_destination_id", + "shipping_profile_id", + "origin_country_iso", + "destination_country_iso", + "destination_region", + "primary_cost", + "secondary_cost", + "shipping_carrier_id", + "mail_class", + "min_delivery_days", + "max_delivery_days" + ] + }, + "ShopShippingProfileUpgrade": { + "title": "ShopShippingProfileUpgrade", + "description": "A representation of a shipping profile upgrade option.", + "type": "object", + "properties": { + "shipping_profile_id": { + "x-ms-summary": "Shipping Profile ID", + "description": "The numeric ID of the base shipping profile.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "upgrade_id": { + "x-ms-summary": "Upgrade ID", + "description": "The numeric ID that is associated with a shipping upgrade", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "upgrade_name": { + "x-ms-summary": "Upgrade Name", + "description": "Name for the shipping upgrade shown to shoppers at checkout, e.g. USPS Priority.", + "type": "string" + }, + "type": { + "$ref": "#/definitions/Type" + }, + "rank": { + "x-ms-summary": "Rank", + "description": "The positive non-zero numeric position in the images displayed in a listing, with rank 1 images appearing in the left-most position in a listing.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "language": { + "x-ms-summary": "Language", + "description": "The IETF language tag for the language of the shipping profile. Ex: de, en, es, fr, it, ja, nl, pl, pt, ru.", + "type": "string" + }, + "price": { + "$ref": "#/definitions/Money" + }, + "secondary_price": { + "$ref": "#/definitions/Money" + }, + "shipping_carrier_id": { + "x-ms-summary": "Shipping Carrier ID", + "description": "The unique ID of a supported shipping carrier, which is used to calculate an Estimated Delivery Date.", + "type": "integer", + "format": "int32" + }, + "mail_class": { + "x-ms-summary": "Mail Class", + "description": "The unique ID string of a shipping carrier's mail class, which is used to calculate an estimated delivery date.", + "type": "string" + }, + "min_delivery_days": { + "x-ms-summary": "Minimum Delivery Days", + "description": "The minimum number of business days a buyer can expect to wait to receive their purchased item once it has shipped.", + "type": "integer", + "minimum": 1.0, + "maximum": 45.0, + "format": "int32" + }, + "max_delivery_days": { + "x-ms-summary": "Maximum Delivery Days", + "description": "The maximum number of business days a buyer can expect to wait to receive their purchased item once it has shipped.", + "type": "integer", + "minimum": 1.0, + "maximum": 45.0, + "format": "int32" + } + }, + "required": [ + "shipping_profile_id", + "upgrade_id", + "upgrade_name", + "type", + "rank", + "language", + "price", + "secondary_price", + "shipping_carrier_id", + "mail_class", + "min_delivery_days", + "max_delivery_days" + ] + }, + "ShopShippingProfileDestinations": { + "title": "ShopShippingProfileDestinations", + "description": "Represents a list of shipping destination objects.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopShippingProfileDestination" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopShippingProfiles": { + "title": "ShopShippingProfiles", + "description": "Represents several ShopShippingProfiles.", + "type": "object", + "properties": { + "count": { + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ShopShippingProfile" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "ShopShippingProfileUpgrades": { + "title": "ShopShippingProfileUpgrades", + "description": "A list of shipping upgrade options.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of results.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "The list of requested resources.", + "type": "array", + "items": { + "$ref": "#/definitions/ShopShippingProfileUpgrade" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "UserAddress": { + "title": "UserAddress", + "description": "Represents a user's address.", + "type": "object", + "properties": { + "user_address_id": { + "x-ms-summary": "User Address ID", + "description": "The numeric ID of the user's address.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "user_id": { + "x-ms-summary": "User ID", + "description": "The user's numeric ID.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "name": { + "x-ms-summary": "Name", + "description": "The user's name for this address.", + "type": "string" + }, + "first_line": { + "x-ms-summary": "First Address Line", + "description": "The first line of the user's address.", + "type": "string" + }, + "second_line": { + "x-ms-summary": "Second Address Line", + "description": "The second line of the user's address.", + "type": "string" + }, + "city": { + "x-ms-summary": "City", + "description": "The city field of the user's address.", + "type": "string" + }, + "state": { + "x-ms-summary": "State", + "description": "The state field of the user's address.", + "type": "string" + }, + "zip": { + "x-ms-summary": "Zip Code", + "description": "The zip code field of the user's address.", + "type": "string" + }, + "iso_country_code": { + "x-ms-summary": "Country Code ISO", + "description": "The ISO code of the country in this address.", + "type": "string" + }, + "country_name": { + "x-ms-summary": "Country", + "description": "The name of the user's country.", + "type": "string" + }, + "is_default_shipping_address": { + "x-ms-summary": "Is Default Shipping Address", + "description": "Is this the user's default shipping address.", + "type": "boolean" + } + }, + "required": [ + "user_address_id", + "user_id", + "name", + "first_line", + "second_line", + "city", + "state", + "zip", + "iso_country_code", + "country_name", + "is_default_shipping_address" + ] + }, + "UserAddresses": { + "title": "UserAddresses", + "description": "Represents several UserAddress records.", + "type": "object", + "properties": { + "count": { + "x-ms-summary": "Count", + "description": "The number of UserAddress records being returned.", + "type": "integer", + "minimum": 0.0, + "format": "int32" + }, + "results": { + "x-ms-summary": "Results", + "description": "An array of UserAddress resources.", + "type": "array", + "items": { + "$ref": "#/definitions/UserAddress" + } + } + }, + "required": [ + "count", + "results" + ] + }, + "channel": { + "title": "channel", + "type": "string", + "enum": [ + "etsy.com", + "wholesale", + "pattern", + "sell_on_facebook" + ] + }, + "destination_region1": { + "title": "destination_region1", + "description": "The code of the region to which the listing ships. A region represents a set of countries. Supported regions are Europe Union and Non-Europe Union (countries in Europe not in EU). If none, request sets destination to destination_country_iso, or everywhere if destination_country_iso is also null", + "type": "string", + "enum": [ + "eu", + "non_eu", + "none" + ] + }, + "DestinationRegion": { + "title": "DestinationRegion", + "description": "The code of the region to which the listing ships. A region represents a set of countries. Supported regions are Europe Union and Non-Europe Union (countries in Europe not in EU). If none, request sets destination to destination_country_iso, or everywhere if destination_country_iso is also null", + "type": "string", + "enum": [ + "eu", + "non_eu", + "none" + ] + }, + "include": { + "title": "include", + "type": "string", + "enum": [ + "Images", + "Shop", + "User" + ] + }, + "includes": { + "title": "includes", + "description": "An enumerated string that attaches an valid association. Default value is null.", + "type": "string", + "enum": [ + "Listing" + ] + }, + "includes1": { + "title": "includes1", + "type": "string", + "enum": [ + "Images", + "Shop", + "User" + ] + }, + "item_dimensions_unit2": { + "title": "item_dimensions_unit2", + "description": "A string defining the units used to measure the dimensions of the product. Default value is null.", + "type": "string", + "enum": [ + "in", + "ft", + "mm", + "cm", + "m", + "yd", + "inches" + ] + }, + "item_weight_unit2": { + "title": "item_weight_unit2", + "description": "A string defining the units used to measure the weight of the product. Default value is null.", + "type": "string", + "enum": [ + "oz", + "lb", + "g", + "kg" + ] + }, + "ItemDimensionsUnit": { + "title": "ItemDimensionsUnit", + "description": "A string defining the units used to measure the dimensions of the product. Default value is null.", + "type": "string", + "enum": [ + "in", + "ft", + "mm", + "cm", + "m", + "yd", + "inches" + ] + }, + "ItemWeightUnit": { + "title": "ItemWeightUnit", + "description": "A string defining the units used to measure the weight of the product. Default value is null.", + "type": "string", + "enum": [ + "oz", + "lb", + "g", + "kg" + ] + }, + "Occasion": { + "title": "Occasion", + "description": "An enumerated string indicating an occassion for which this product would make an appropriate gift. Default value is null.", + "type": "string", + "enum": [ + "anniversary", + "baptism", + "bar_or_bat_mitzvah", + "birthday", + "canada_day", + "chinese_new_year", + "cinco_de_mayo", + "confirmation", + "christmas", + "day_of_the_dead", + "easter", + "eid", + "engagement", + "fathers_day", + "get_well", + "graduation", + "halloween", + "hanukkah", + "housewarming", + "kwanzaa", + "prom", + "july_4th", + "mothers_day", + "new_baby", + "new_years", + "quinceanera", + "retirement", + "st_patricks_day", + "sweet_16", + "sympathy", + "thanksgiving", + "valentines", + "wedding" + ] + }, + "Offering": { + "title": "Offering", + "type": "object", + "properties": { + "price": { + "x-ms-summary": "Price", + "description": "The price of the product.", + "type": "number", + "format": "double" + }, + "quantity": { + "x-ms-summary": "Quantity", + "description": "How many of this product are available?", + "type": "integer", + "format": "int32" + }, + "is_enabled": { + "x-ms-summary": "Is Enabled", + "description": "True if the offering is shown to buyers", + "type": "boolean" + } + } + }, + "processing_time_unit": { + "title": "processing_time_unit", + "description": "The unit used to represent how long a processing time is. A week is equivalent to 5 business days. If none is provided, the unit is set to business_days.", + "type": "string", + "enum": [ + "business_days", + "weeks" + ] + }, + "Product": { + "title": "Product", + "type": "object", + "properties": { + "sku": { + "x-ms-summary": "SKU", + "description": "The SKU string for the product", + "type": "string" + }, + "property_values": { + "x-ms-summary": "Property Values", + "description": "A list of property value entries for this product.", + "type": "array", + "items": { + "$ref": "#/definitions/PropertyValue" + } + }, + "offerings": { + "x-ms-summary": "Offerings", + "description": "A list of product offering entries for this product.", + "type": "array", + "items": { + "$ref": "#/definitions/Offering" + } + } + } + }, + "ProfileType": { + "title": "ProfileType", + "type": "string", + "enum": [ + "manual", + "calculated" + ] + }, + "PropertyValue": { + "title": "PropertyValue", + "type": "object", + "properties": { + "property_id": { + "x-ms-summary": "Property ID", + "description": "The unique ID of an Etsy listing property.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "value_ids": { + "x-ms-summary": "Value IDs", + "description": "An array of unique IDs of multiple Etsy listing property values. For example, if your listing offers different sizes of a product, then the value ID list contains value IDs for each size.", + "type": "array", + "items": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "minimum": 1.0 + }, + "scale_id": { + "x-ms-summary": "Scale ID", + "description": "The numeric ID of a single Etsy.com measurement scale. For example, for shoe size, there are three `scale_id`s available - *UK*, *US/Canada*, and *EU*, where *US/Canada* has `scale_id` 19.", + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "property_name": { + "x-ms-summary": "Name", + "description": "The name of the property, in the requested locale language.", + "type": "string" + }, + "values": { + "x-ms-summary": "Values", + "description": "A list of property value entries for this product.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "Recipient": { + "title": "Recipient", + "description": "An enumerated string indicating a person for whom this product would make an appropriate gift. Default value is null.", + "type": "string", + "enum": [ + "men", + "women", + "unisex_adults", + "teen_boys", + "teen_girls", + "teens", + "boys", + "girls", + "children", + "baby_boys", + "baby_girls", + "babies", + "birds", + "cats", + "dogs", + "pets", + "not_specified" + ] + }, + "sort_on": { + "title": "sort_on", + "description": "The value to sort a search result of listings on. NOTE: sort_on only works when combined with one of the search options (keywords, region, etc.).", + "type": "string", + "enum": [ + "created", + "price", + "updated" + ] + }, + "sort_order": { + "title": "sort_order", + "description": "The ascending(up) or descending(down) order to sort listings by. NOTE: sort_order only works when combined with one of the search options (keywords, region, etc.).", + "type": "string", + "enum": [ + "asc", + "ascending", + "desc", + "descending", + "up", + "down" + ] + }, + "State": { + "title": "State", + "description": "An enumerated string from any of: active or inactive. Note: Setting a draft listing to active will also publish the listing on etsy.com.", + "example": 0, + "type": "integer", + "format": "int32", + "enum": [ + "0", + "1", + "2", + "3", + "4", + "5" + ] + }, + "state2": { + "title": "state2", + "description": "An enumerated string from any of: active or inactive. Note: Setting a draft listing to active will also publish the listing on etsy.com.", + "type": "string", + "enum": [ + "active", + "inactive" + ] + }, + "Type": { + "title": "Type", + "description": "The type of the shipping upgrade. Domestic (0) or international (1).", + "example": 0, + "type": "integer", + "format": "int32", + "enum": [ + "0", + "1" + ] + }, + "type1": { + "title": "type1", + "description": "An enumerated type string that indicates whether the listing is physical or a digital download.", + "type": "string", + "enum": [ + "physical", + "download", + "both" + ] + }, + "V3ApplicationListingsInventoryRequest": { + "title": "V3ApplicationListingsInventoryRequest", + "type": "object", + "properties": { + "products": { + "x-ms-summary": "Products", + "description": "A JSON array of products available in a listing, even if only one product. All field names in the JSON blobs are lowercase.", + "type": "array", + "items": { + "$ref": "#/definitions/Product" + } + }, + "price_on_property": { + "x-ms-summary": "Price On Properties", + "description": "An array of unique listing property ID integers for the properties that change product prices, if any. For example, if you charge specific prices for different sized products in the same listing, then this array contains the property ID for size.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "quantity_on_property": { + "x-ms-summary": "Quantity On Properties", + "description": "An array of unique listing property ID integers for the properties that change the quantity of the products, if any. For example, if you stock specific quantities of different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + }, + "sku_on_property": { + "x-ms-summary": "SKU On Properties", + "description": "An array of unique listing property ID integers for the properties that change the product SKU, if any. For example, if you use specific skus for different colored products in the same listing, then this array contains the property ID for color.", + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "required": [ + "products" + ] + }, + "V3ApplicationShopsListingsVariationImagesRequest": { + "title": "V3ApplicationShopsListingsVariationImagesRequest", + "type": "object", + "properties": { + "variation_images": { + "x-ms-summary": "Variation Images", + "description": "A list of variation image data.", + "type": "array", + "items": { + "$ref": "#/definitions/VariationImage" + } + } + }, + "required": [ + "variation_images" + ] + }, + "VariationImage": { + "title": "VariationImage", + "type": "object", + "properties": { + "property_id": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "value_id": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + }, + "image_id": { + "type": "integer", + "minimum": 1.0, + "format": "int32" + } + } + }, + "when_made2": { + "title": "when_made2", + "description": "An enumerated string for the era in which the maker made the product in this listing. Helps buyers locate the listing under the Vintage heading. Requires 'is_supply' and 'who_made'.", + "type": "string", + "enum": [ + "made_to_order", + "2020_2021", + "2010_2019", + "2002_2009", + "before_2002", + "2000_2001", + "1990s", + "1980s", + "1970s", + "1960s", + "1950s", + "1940s", + "1930s", + "1920s", + "1910s", + "1900s", + "1800s", + "1700s", + "before_1700" + ] + }, + "WhenMade": { + "title": "WhenMade", + "description": "An enumerated string for the era in which the maker made the product in this listing. Helps buyers locate the listing under the Vintage heading. Requires 'is_supply' and 'who_made'.", + "type": "string", + "enum": [ + "made_to_order", + "2020_2021", + "2010_2019", + "2002_2009", + "before_2002", + "2000_2001", + "1990s", + "1980s", + "1970s", + "1960s", + "1950s", + "1940s", + "1930s", + "1920s", + "1910s", + "1900s", + "1800s", + "1700s", + "before_1700" + ] + }, + "who_made2": { + "title": "who_made2", + "description": "An enumerated string inidcated who made the product. Helps buyers locate the listing under the Handmade heading. Requires 'is_supply' and 'when_made'.", + "type": "string", + "enum": [ + "i_did", + "someone_else", + "collective" + ] + }, + "WhoMade": { + "title": "WhoMade", + "description": "An enumerated string inidcated who made the product. Helps buyers locate the listing under the Handmade heading. Requires 'is_supply' and 'when_made'.", + "type": "string", + "enum": [ + "i_did", + "someone_else", + "collective" + ] + } + }, "x-ms-connector-metadata": [ { "propertyName": "Website", From c7b8be00d0b87e50f0f838e120ad0008a75572cd Mon Sep 17 00:00:00 2001 From: Ron Dameron Date: Wed, 20 Oct 2021 14:25:19 -0400 Subject: [PATCH 073/219] Update icon color (#1203) * initial commit * Move to correct folder * Correct issues preventing certification * Remove unicode characters * Added intro.md file * Updated connector file and added intro.md file. * Update to latest swagger file and add intro.md * Remove intro.md file and fix icon color * Forgot # for icon color * remove intro.md file. * Delete apiDefinition.swagger.json * Delete intro.md * Delete apiProperties.json Co-authored-by: James Armstrong --- certified-connectors/Actsoft/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Actsoft/apiProperties.json b/certified-connectors/Actsoft/apiProperties.json index 9f4bfa933c..bc94fef9cf 100644 --- a/certified-connectors/Actsoft/apiProperties.json +++ b/certified-connectors/Actsoft/apiProperties.json @@ -15,7 +15,7 @@ } } }, - "iconBrandColor": "#007ee5", + "iconBrandColor": "#766AA9", "capabilities": [], "publisher": "Actsoft", "stackOwner": "Actsoft" From 4f43bf3caada653da330ebe3ad68005506c89765 Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Thu, 21 Oct 2021 02:45:13 +0300 Subject: [PATCH 074/219] WithoutWire Inventory Platform: version 1.2. "Get Inventory Aggregate" is added, general improvements (parameters, responses) for other methods (#1204) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * Initial version of Spring Global connector * Code improvements * Initial version of Spring Global connector (with improvements according to code review) * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * Merge from Microsoft branch * Revert chanages to merge * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * WithoutWire Inventory Platform: version 1.2. "Get Inventory Aggregate" is added, general impovements (parameters, responses) for other methods Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../apiDefinition.swagger.json | 661 +++++++++++++++--- 1 file changed, 549 insertions(+), 112 deletions(-) diff --git a/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json b/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json index 5f7c5d7b96..a86bcd8381 100644 --- a/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json +++ b/certified-connectors/WithoutWire Inventory Platform/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "WithoutWire Inventory Platform", "description": "The connector contains methods to connect WithoutWire for move requests, order fullfillment requests, adjustments, audits, and allocation as well as any inventory management needs", - "version": "1.1", + "version": "1.2", "contact": { "name": "WithoutWire Support", "url": "https://www.withoutwire.com/knowledgebase", @@ -36,7 +36,7 @@ "type": "string", "description": "The warehouse descriptive name" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -351,7 +351,31 @@ "x-ms-visibility": "important", "parameters": [ { - "name": "orderStatusCode", + "name": "OrderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Work order number", + "x-ms-summary": "Work order number" + }, + { + "name": "beginDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify begin date", + "x-ms-summary": "Begin date" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string", + "description": "Specify end date", + "x-ms-summary": "End date" + }, + { + "name": "OrderStatusCode", "in": "query", "required": false, "type": "string", @@ -371,15 +395,39 @@ ] }, { - "name": "orderNumber", + "name": "itemNumber", "in": "query", "required": false, "type": "string", - "description": "Work order number", - "x-ms-summary": "Work order number" + "description": "Specify item number", + "x-ms-summary": "Item number" + }, + { + "name": "parentOrderNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify parent order number", + "x-ms-summary": "Parent order number" + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" } ], - "description": "Returns an array of work orders by status or by number" + "description": "Returns an array of work orders, filtered by sent parameters" }, "put": { "responses": { @@ -488,13 +536,6 @@ "title": "Order Number", "x-ms-visibility": "important" }, - "OrderType": { - "type": "string", - "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)", - "title": "Order Type", - "x-ms-visibility": "important", - "default": "6" - }, "OrderComment": { "type": "string", "description": "The comments to be associated with the order", @@ -505,7 +546,7 @@ "description": "The allocation set that the associated inventory record is assigned to.", "title": "Allocation Set Name" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order", "title": "Customer PoNumber", @@ -753,9 +794,8 @@ }, "required": [ "WarehouseName", - "CustomerPoNumber", + "CustomerPONumber", "OrderNumber", - "OrderType", "DeliveryDate", "VendorShipmentNumber", "RouteNumber", @@ -763,7 +803,23 @@ ] } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "description": "The method creates or updates work order (key is OrderNumber)" } @@ -830,7 +886,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "description": "Delete an order (all types)" } @@ -933,7 +1005,7 @@ "properties": { "IdentityCode": { "type": "string", - "description": "Order number" + "description": "Outbound Number" }, "WarehouseName": { "type": "string", @@ -942,7 +1014,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "description": "This API method used to set the status on orders to CMP (Complete)." } @@ -1074,9 +1162,25 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], - "description": "This API method used to set the status on orders in WithoutWire. Parameters include: orderStatusCode and warehouseName" + "description": "This API method used to set the status on orders in WithoutWire. Parameters include: OrderStatusCode and warehouseName" } }, "/integration/order/assignment": { @@ -1120,7 +1224,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "description": "This API method used to set orders to be assigned in WithoutWire. The order status will be set to Waiting for Picking. All operators that are set for the role of pick will have access to these orders." } @@ -1242,7 +1362,7 @@ "operationId": "GetInventory", "parameters": [ { - "name": "itemNumber", + "name": "ItemNumber", "in": "query", "required": false, "type": "string", @@ -1251,7 +1371,7 @@ "x-ms-summary": "An alphanumeric value that uniquely identifies the item within the warehouse" }, { - "name": "binNumber", + "name": "BinNumber", "in": "query", "required": false, "type": "string", @@ -1259,7 +1379,7 @@ "x-ms-summary": "The alphanumeric name for the position in the warehouse" }, { - "name": "allocationSetName", + "name": "AllocationSetName", "in": "query", "required": false, "type": "string", @@ -1267,7 +1387,7 @@ "x-ms-summary": "The allocation set that the associated inventory record is assigned to." }, { - "name": "warehouseName", + "name": "WarehouseName", "in": "query", "required": false, "type": "string", @@ -1275,13 +1395,29 @@ "x-ms-summary": "Uniquely identifies the warehouse name where the inventory resides." }, { - "name": "coreValue", + "name": "CoreValue", "in": "query", "required": false, "type": "string", "description": "The Lot, Serial, or Date value.", "x-ms-summary": "The Lot, Serial, or Date value." - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "x-ms-visibility": "advanced", "description": "Returns an array of inventory items by specified parameters" @@ -1451,6 +1587,11 @@ "type": "string", "description": "A technician`s login/email who created request", "title": "Created By User" + }, + "SourceWarehouseName": { + "type": "string", + "description": "The site in WithoutWire that inventory should be drawn from to fulfill the request.", + "title": "Source Warehouse Name" } }, "required": [ @@ -1459,6 +1600,22 @@ ] } } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" } ], "description": "Create Inventory Request" @@ -1632,7 +1789,23 @@ ] } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ], "description": "Create Inventory Adjustment" } @@ -1703,7 +1876,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] }, "put": { @@ -1918,7 +2107,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -1949,7 +2154,7 @@ { "name": "Warehouse", "in": "header", - "required": false, + "required": true, "type": "string", "description": "Warehouse", "x-ms-summary": "Warehouse" @@ -2123,7 +2328,7 @@ "description": "The manufacturer's Item number", "title": "Manufacturer Number" }, - "UpcBarcodeNumber": { + "UPCBarcodeNumber": { "type": "string", "description": "The UPC Barcode Number on the items package.", "title": "UPC Barcode Number" @@ -2207,7 +2412,23 @@ ] } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -2428,7 +2649,7 @@ "summary": "Get Inbound Request", "parameters": [ { - "name": "beginDate", + "name": "BeginDate", "in": "query", "required": false, "type": "string", @@ -2436,7 +2657,7 @@ "x-ms-summary": "Creation date of the purchase order" }, { - "name": "endDate", + "name": "EndDate", "in": "query", "required": false, "type": "string", @@ -2444,7 +2665,7 @@ "x-ms-summary": "End date of the purchase order" }, { - "name": "poStatus", + "name": "POStatus", "in": "query", "required": false, "type": "string", @@ -2459,7 +2680,7 @@ "x-ms-summary": "the status of the purchase order at the header level" }, { - "name": "lineReceiptStatus", + "name": "LineReceiptStatus", "in": "query", "required": false, "type": "string", @@ -2474,7 +2695,7 @@ "x-ms-summary": "This is the receiving status of the individual line." }, { - "name": "itemNumber", + "name": "ItemNumber", "in": "query", "required": false, "type": "string", @@ -2482,7 +2703,7 @@ "x-ms-summary": "Filter by item number. Returns all purchase orders that include this item number" }, { - "name": "poNumber", + "name": "PONumber", "in": "query", "required": false, "type": "string", @@ -2490,13 +2711,29 @@ "x-ms-summary": "Filter by purchase order number. Returns a specific purchase order." }, { - "name": "poType", + "name": "POType", "in": "query", "required": false, "type": "string", "description": "The specific type of the inbound document. The value can either be the type or name or the shortened type code abbreviation (in parentheses): PurchaseOrder (PO), Transfer (TR), Return (RET) or ASN.", "x-ms-summary": "The specific type of the inbound document." - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -2542,7 +2779,7 @@ } }, "summary": "Inbound Complete", - "description": "This API method used to set purchase orders to complete in WithoutWire. The order status is set to 'Complete'. Additional fields updated are: ExportDate on the purchase order object is set to the current date/time and the CompletedDate is set to the current date/time. Finally, the receiving assignments will be removed. An error is returned if the order is in 'Receiving in Progress'.", + "description": "This API method used to set purchase orders to complete in WithoutWire. The order status is set to 'Complete'. Additional fields updated are: ExportDate on the purchase order object is set to the current date/time and the CompletedDate is set to the current date/time. Finally, the receiving assignments will be removed. An error is returned if the order is in \u201cReceiving in Progress\u201d.", "operationId": "InboundComplete", "parameters": [ { @@ -2556,7 +2793,7 @@ "properties": { "IdentityCode": { "type": "string", - "description": "An string value to uniquely identify.", + "description": "Inbound Number", "title": "IdentityCode" }, "WarehouseName": { @@ -2567,7 +2804,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -2667,7 +2920,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -2734,7 +3003,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -2752,7 +3037,7 @@ "type": "string", "description": "The warehouse descriptive name" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -3096,13 +3381,13 @@ } }, "summary": "Get Sales Orders", - "description": "This action returns details of specific Sales order.", + "description": "This method returns array of sales orders, filtered by sent parameters", "operationId": "GetSalesOrders", "parameters": [ { - "name": "orderNumber", + "name": "OrderNumber", "in": "query", - "required": true, + "required": false, "type": "string", "description": "Specify sales order number", "x-ms-summary": "Sales order number" @@ -3124,12 +3409,24 @@ "x-ms-summary": "End date" }, { - "name": "orderStatusCode", + "name": "OrderStatusCode", "in": "query", "required": false, "type": "string", - "description": "Specify order status code", - "x-ms-summary": "Order status code" + "description": "Order status (status code)", + "x-ms-summary": "Order status (status code)", + "enum": [ + "UNA", + "WTP", + "PIP", + "WFE", + "EXP", + "CMP", + "REV", + "PRC", + "NEW", + "WFS" + ] }, { "name": "itemNumber", @@ -3150,7 +3447,7 @@ { "name": "UserName", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Specify User Name", "x-ms-summary": "User Name" @@ -3158,7 +3455,7 @@ { "name": "Warehouse", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Specify warehouse", "x-ms-summary": "Warehouse" @@ -3227,11 +3524,6 @@ "type": "string", "description": "A unique alphanumeric value to identify this order in the warehouse" }, - "OrderType": { - "type": "integer", - "format": "int32", - "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" - }, "OrderComment": { "type": "string", "description": "The comments to be associated with the order.", @@ -3370,7 +3662,23 @@ } } } - } + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "User Name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Warehouse", + "x-ms-summary": "Warehouse" + } ] } }, @@ -3549,7 +3857,7 @@ "operationId": "GetBarcodeInfo", "parameters": [ { - "name": "barcode", + "name": "Barcode", "in": "query", "required": true, "type": "string", @@ -3736,7 +4044,7 @@ "description": "This method returns list of items on a LP or in DropShip box.", "parameters": [ { - "name": "barcode", + "name": "Barcode", "in": "query", "required": true, "type": "string", @@ -3777,7 +4085,7 @@ "description": "The name of the warehouse where the order resides.", "title": "WarehouseName" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -4155,11 +4463,11 @@ } }, "summary": "Get Transfer Orders", - "description": "Get Transfer Orders", + "description": "This method returns array of transfer orders, filtered by sent parameters", "operationId": "GetTransferOrders", "parameters": [ { - "name": "orderNumber", + "name": "OrderNumber", "in": "query", "required": false, "type": "string", @@ -4183,12 +4491,24 @@ "x-ms-summary": "End date" }, { - "name": "orderStatusCode", + "name": "OrderStatusCode", "in": "query", "required": false, "type": "string", - "description": "Specify order status code", - "x-ms-summary": "Order status code" + "description": "Order status (status code)", + "x-ms-summary": "Order status (status code)", + "enum": [ + "UNA", + "WTP", + "PIP", + "WFE", + "EXP", + "CMP", + "REV", + "PRC", + "NEW", + "WFS" + ] }, { "name": "itemNumber", @@ -4209,7 +4529,7 @@ { "name": "UserName", "in": "header", - "required": true, + "required": false, "type": "string", "description": "User Name", "x-ms-summary": "User Name" @@ -4217,7 +4537,7 @@ { "name": "Warehouse", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Warehouse", "x-ms-summary": "Warehouse" @@ -4302,7 +4622,7 @@ "description": "The end destination warehouse descriptive name.", "title": "DestinationWarehouseName" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -4319,11 +4639,6 @@ "description": "The allocation set that the associated inventory record is assigned to.", "title": "Allocation Set Name" }, - "OrderType": { - "type": "integer", - "format": "int32", - "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" - }, "DateCreated": { "type": "string", "description": "The date the transfer order was created.", @@ -4664,18 +4979,18 @@ }, "summary": "This action returns Purchase Orders filtered by parameters", "description": "This method allows the exporting of purchase orders by a combination of filters. These filters include begin and end date, receiving status code, item number, line receipt status, purchase order number and purchase order type. The Purchase Order Export Object returns a list of completed order information.", - "operationId": "GetPO", + "operationId": "GetPurchaseOrder", "parameters": [ { - "name": "beginDate", + "name": "BeginDate", "in": "query", "required": false, "type": "string", - "description": "Creation date of the purchase order", - "x-ms-summary": "Creation date of the purchase order" + "description": "\u0421reation date of the purchase order", + "x-ms-summary": "\u0421reation date of the purchase order" }, { - "name": "endDate", + "name": "EndDate", "in": "query", "required": false, "type": "string", @@ -4683,7 +4998,7 @@ "x-ms-summary": "End date of the purchase order" }, { - "name": "poStatus", + "name": "POStatus", "in": "query", "required": false, "type": "string", @@ -4698,7 +5013,7 @@ "x-ms-summary": "the status of the purchase order at the header level" }, { - "name": "lineReceiptStatus", + "name": "LineReceiptStatus", "in": "query", "required": false, "type": "string", @@ -4713,7 +5028,7 @@ "x-ms-summary": "This is the receiving status of the individual line." }, { - "name": "itemNumber", + "name": "ItemNumber", "in": "query", "required": false, "type": "string", @@ -4721,7 +5036,7 @@ "x-ms-summary": "Filter by item number. Returns all purchase orders that include this item number" }, { - "name": "poNumber", + "name": "PONumber", "in": "query", "required": false, "type": "string", @@ -4731,7 +5046,7 @@ { "name": "UserName", "in": "header", - "required": true, + "required": false, "type": "string", "description": "User Name", "x-ms-summary": "User Name" @@ -4739,7 +5054,7 @@ { "name": "Warehouse", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Warehouse", "x-ms-summary": "Warehouse" @@ -4788,7 +5103,7 @@ }, "summary": "Create or Update Purchase Order", "description": "This method creates or updates the Purchase Order.", - "operationId": "CreatePO", + "operationId": "CreatePurchaseOrder", "parameters": [ { "name": "UserName", @@ -4943,7 +5258,7 @@ "type": "string", "description": "The warehouse descriptive name" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -5284,12 +5599,12 @@ } } }, - "summary": "Get Manufacturing Order", - "description": "This method returns array of manufacturing orders, filtered by sent parameters(orderNumber, beginDate, endDate, orderStatusCode, itemNumber, parentOrderNumber).", - "operationId": "GetMfgO", + "summary": "Get Manufacturing Orders", + "description": "This method returns array of manufacturing orders, filtered by sent parameters", + "operationId": "GetManufacturingOrder", "parameters": [ { - "name": "orderNumber", + "name": "OrderNumber", "in": "query", "required": false, "type": "string", @@ -5297,7 +5612,7 @@ "x-ms-summary": "Order number" }, { - "name": "beginDate", + "name": "BeginDate", "in": "query", "required": false, "type": "string", @@ -5305,7 +5620,7 @@ "x-ms-summary": "Begin date" }, { - "name": "endDate", + "name": "EndDate", "in": "query", "required": false, "type": "string", @@ -5313,15 +5628,27 @@ "x-ms-summary": "End date" }, { - "name": "orderStatusCode", + "name": "OrderStatusCode", "in": "query", "required": false, "type": "string", - "description": "Specify order status code", - "x-ms-summary": "Order status code" + "description": "Order status (status code)", + "x-ms-summary": "Order status (status code)", + "enum": [ + "UNA", + "WTP", + "PIP", + "WFE", + "EXP", + "CMP", + "REV", + "PRC", + "NEW", + "WFS" + ] }, { - "name": "itemNumber", + "name": "ItemNumber", "in": "query", "required": false, "type": "string", @@ -5329,7 +5656,7 @@ "x-ms-summary": "Item number" }, { - "name": "parentOrderNumber", + "name": "ParentOrderNumber", "in": "query", "required": false, "type": "string", @@ -5339,7 +5666,7 @@ { "name": "UserName", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Specify User Name", "x-ms-summary": "User Name" @@ -5347,7 +5674,7 @@ { "name": "Warehouse", "in": "header", - "required": true, + "required": false, "type": "string", "description": "Specify warehouse", "x-ms-summary": "Warehouse" @@ -5427,7 +5754,7 @@ "type": "string", "description": "The warehouse descriptive name" }, - "CustomerPoNumber": { + "CustomerPONumber": { "type": "string", "description": "The customer's PO Number for the order" }, @@ -5444,11 +5771,6 @@ "description": "The allocation set that the associated inventory record is assigned to.", "title": "Allocation Set Name" }, - "OrderType": { - "type": "integer", - "format": "int32", - "description": "A value representing the order type. Valid Values: 1-(Sales Order), 2-(Credit Order), 3-(No Split Order), 4-(Wave Set), 5-(Transfer), 6-(Job), 7-(Manufacturing Order), 8-(Consumption)" - }, "DateCreated": { "type": "string", "description": "The date the purchase order was created.", @@ -5581,6 +5903,121 @@ } ] } + }, + "/integration/inventory/quantity": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ItemNumber": { + "type": "string", + "description": "A unique value that represents an item", + "title": "Item Number" + }, + "TotalQuantity": { + "type": "integer", + "format": "int32", + "description": "Total Quantity" + }, + "AvailableQuantity": { + "type": "integer", + "format": "int32", + "description": "Available Quantity" + }, + "QuantityOnHold": { + "type": "integer", + "format": "int32", + "description": "Quantity On Hold" + }, + "ItemUom": { + "type": "string", + "description": "Represents the Unit of Measure for the item.", + "title": "Item UOM" + }, + "QuantityBySite": { + "type": "array", + "items": { + "type": "object", + "properties": { + "WarehouseName": { + "type": "string", + "description": "The warehouse descriptive name" + }, + "TotalQuantity": { + "type": "integer", + "format": "int32", + "description": "Total Quantity" + }, + "AvailableQuantity": { + "type": "integer", + "format": "int32", + "description": "Available Quantity" + }, + "QuantityOnHold": { + "type": "integer", + "format": "int32", + "description": "Quantity On Hold" + } + } + }, + "description": "Quantity By Site" + } + } + } + } + } + }, + "operationId": "GetInventoryAggregate", + "summary": "Get Inventory Aggregate", + "description": "Get Inventory Aggregate", + "parameters": [ + { + "name": "ItemNumber", + "in": "query", + "required": false, + "type": "string", + "description": "Specify item number", + "x-ms-summary": "Item number" + }, + { + "name": "WarehouseName", + "in": "query", + "required": false, + "type": "string", + "description": "Specify Warehouse name", + "x-ms-summary": "The warehouse descriptive name" + }, + { + "name": "AllocationSetName", + "in": "query", + "required": false, + "type": "string", + "description": "Specify Allocation Set Name", + "x-ms-summary": "The allocation set that the associated inventory record is assigned to." + }, + { + "name": "UserName", + "in": "header", + "required": false, + "type": "string", + "description": "Specify User name", + "x-ms-summary": "User Name" + }, + { + "name": "Warehouse", + "in": "header", + "required": false, + "type": "string", + "description": "Specify Warehouse", + "x-ms-summary": "Warehouse" + } + ] + } } }, "definitions": {}, From 120bc832da15430e0c29018a06c48c3dc42da9dd Mon Sep 17 00:00:00 2001 From: ab-revanthgss <92525509+ab-revanthgss@users.noreply.github.com> Date: Thu, 21 Oct 2021 23:47:36 +0530 Subject: [PATCH 075/219] Add triggers and actions for records and events (#1206) --- .../Almabase/apiDefinition.swagger.json | 1494 +++++++++++++++-- .../Almabase/apiProperties.json | 83 +- 2 files changed, 1414 insertions(+), 163 deletions(-) diff --git a/certified-connectors/Almabase/apiDefinition.swagger.json b/certified-connectors/Almabase/apiDefinition.swagger.json index 76e88dc82a..c3935e7daf 100644 --- a/certified-connectors/Almabase/apiDefinition.swagger.json +++ b/certified-connectors/Almabase/apiDefinition.swagger.json @@ -231,7 +231,6 @@ } }, "required": [ - "object_id", "events", "callback_url" ], @@ -260,6 +259,12 @@ "type": "string", "x-ms-summary": "Donor Email" }, + "external_database_id": { + "description": "A system assigned unique ID for the gift by the external database.\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, "id": { "description": "System generated ID to uniquely identify a gift.", "format": "int32", @@ -281,6 +286,11 @@ "type": "object", "x-ms-summary": "Mapped Record" }, + "mode": { + "description": "Mode of the gift.", + "type": "string", + "x-ms-summary": "Mode" + }, "name": { "description": "Full name of the donor.", "type": "string", @@ -348,17 +358,15 @@ "latitude": { "description": "The latitude of the location", "example": "37.7749295", - "format": "float", "readOnly": true, - "type": "number", + "type": "string", "x-ms-summary": "Latitude" }, "longitude": { "description": "The longitude of the location", "example": "-122.4194155", - "format": "float", "readOnly": true, - "type": "number", + "type": "string", "x-ms-summary": "Longitude" } }, @@ -573,11 +581,17 @@ }, "exclude_from_leaderboard": { "default": false, - "description": "exclude_from_leaderboard", + "description": "Is hidden from Leaderboard?", "type": "boolean", "x-ms-summary": "Is hidden from Leaderboard?", "x-ms-visibility": "advanced" }, + "external_database_id": { + "description": "A system assigned unique ID for the gift by the external database.\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, "honor_message": { "description": "A message for a gift tribute.", "type": "string", @@ -744,11 +758,17 @@ "x-ms-visibility": "important" }, "exclude_from_leaderboard": { - "description": "exclude_from_leaderboard", + "description": "Is hidden from Leaderboard?", "type": "boolean", "x-ms-summary": "Is hidden from Leaderboard?", "x-ms-visibility": "advanced" }, + "external_database_id": { + "description": "A system assigned unique ID for the gift by the external database.\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, "honor_message": { "description": "A message for a gift tribute.", "type": "string", @@ -898,10 +918,16 @@ }, "exclude_from_leaderboard": { "default": false, - "description": "exclude_from_leaderboard", + "description": "Is hidden from Leaderboard?", "type": "boolean", "x-ms-summary": "Is hidden from Leaderboard?" }, + "external_database_id": { + "description": "A system assigned unique ID for the gift by the external database.\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, "honor_message": { "description": "A message for a gift tribute.", "type": "string", @@ -1585,204 +1611,621 @@ }, "type": "object" }, - "v1.RecordApi.RecordAdd": { - "description": "Record", + "v1.RecordApi.LocationRead": { + "description": "Location of the Address", "properties": { - "email_addresses": { - "description": "List of email addresses of a profile", - "items": { - "$ref": "#/definitions/v1.RecordApi.EmailAddressAssociatedWithRecordAdd" - }, - "type": "array", - "x-ms-summary": "Email Addresses", - "x-ms-visibility": "advanced" - }, - "external_database_id": { - "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "city": { + "description": "City name of the location", "type": "string", - "x-ms-summary": "External Database ID", - "x-ms-visibility": "important" + "x-ms-summary": "City" }, - "external_database_lookup_id": { - "description": "A custom user-defined lookup ID for the record in the external database. e.g. Constituent ID\n", + "country": { + "description": "Country name of the location", "type": "string", - "x-ms-summary": "External Database Lookup ID", - "x-ms-visibility": "advanced" + "x-ms-summary": "Country" }, - "first_name": { - "description": "First name of the record.", - "type": "string", - "x-ms-summary": "First Name", - "x-ms-visibility": "important" + "latitude": { + "description": "The latitude of the location", + "example": "37.7749295", + "format": "double", + "type": "number", + "x-ms-summary": "Latitude" }, - "last_name": { - "description": "Last name of the record.", + "longitude": { + "description": "The longitude of the location", + "example": "-122.4194155", + "format": "double", + "type": "number", + "x-ms-summary": "Longitude" + }, + "state": { + "description": "State name of the location", "type": "string", - "x-ms-summary": "Last Name", - "x-ms-visibility": "important" + "x-ms-summary": "State" } }, - "required": [ - "last_name", - "first_name" - ], "type": "object" }, - "v1.RecordApi.EmailAddressAdd": { - "description": "Email Address", + "v1.RecordApi.AddressRead": { + "description": "Address", "properties": { - "address": { - "description": "The email address", - "format": "email", - "maxLength": 254, + "line1": { + "description": "Line 1 of the address", "type": "string", - "x-ms-summary": "Address", - "x-ms-visibility": "important" + "x-ms-summary": "Line1" }, - "is_login_email": { - "default": true, - "description": "Indicates if the user are allowed to login to the Platform using this email address.", - "type": "boolean", - "x-ms-summary": "Use for Login?", - "x-ms-visibility": "advanced" + "line2": { + "description": "Line 2 of the address", + "type": "string", + "x-ms-summary": "Line2" }, - "is_primary": { - "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", - "type": "boolean", - "x-ms-summary": "Is Primary?", - "x-ms-visibility": "important" + "location": { + "description": "Location of the address", + "properties": { + "schema": { + "$ref": "#/definitions/v1.RecordApi.LocationRead" + } + }, + "type": "object", + "x-ms-summary": "Location" }, - "source": { - "description": "The source indicate how the email is added to the database.", - "maxLength": 32, + "zipcode": { + "description": "Zipcode of the address", "type": "string", - "x-ms-summary": "Source", - "x-ms-visibility": "advanced" - }, - "status": { - "default": "unknown", - "description": "Status of the email address", - "enum": [ - "unknown", - "hard_bounce", - "soft_bounce", - "marked_spam", - "invalid", - "contactable" - ], + "x-ms-summary": "Zipcode" + } + }, + "type": "object" + }, + "v1.RecordApi.EmailChangedWebhookRequest": { + "properties": { + "callback_url": { + "description": "callback_url", + "title": "Callback URL", "type": "string", - "x-ms-summary": "Status", - "x-ms-visibility": "advanced" + "x-ms-notification-url": true, + "x-ms-visibility": "internal" }, - "type": { - "description": "The type of the email", - "maxLength": 32, + "events": { + "default": "com.almabase.crm.email.created", + "description": "The list of events to trigger the flow.", "type": "string", - "x-ms-summary": "Type", + "x-ms-dynamic-list": { + "itemTitlePath": "title", + "itemValuePath": "value", + "operationId": "GetEmailMetadataWebhookEvents" + }, + "x-ms-dynamic-values": { + "operationId": "GetEmailMetadataWebhookEvents", + "value-path": "value", + "value-title": "title" + }, + "x-ms-summary": "When", "x-ms-visibility": "important" } }, "required": [ - "address" + "events", + "callback_url" ], "type": "object" }, - "v1.RecordApi.EmailAddressAssociatedWithRecordAdd": { - "description": "Email Address", + "v1.RecordApi.EmailWebhookRecordRead": { + "description": "Record", "properties": { - "address": { - "description": "The email address", - "format": "email", - "maxLength": 254, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", "type": "string", - "x-ms-summary": "Address", - "x-ms-visibility": "important" - }, - "is_login_email": { - "default": true, - "description": "Indicates if the user are allowed to login to the Platform using this email address.", - "type": "boolean", - "x-ms-summary": "Use for Login?", - "x-ms-visibility": "advanced" - }, - "is_primary": { - "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", - "type": "boolean", - "x-ms-summary": "Is Primary?", - "x-ms-visibility": "important" + "x-ms-summary": "External Database ID" }, - "source": { - "description": "The source indicate how the email is added to the database.", - "maxLength": 32, + "first_name": { + "description": "First name of the mapped record", "type": "string", - "x-ms-summary": "Source", - "x-ms-visibility": "advanced" + "x-ms-summary": "First Name" }, - "status": { - "default": "unknown", - "description": "Status of the email address", - "enum": [ - "unknown", - "hard_bounce", - "soft_bounce", - "marked_spam", - "invalid", - "contactable" - ], - "type": "string", - "x-ms-summary": "Status", - "x-ms-visibility": "advanced" + "id": { + "description": "System generated ID to uniquely identify a record.", + "format": "int32", + "type": "integer", + "x-ms-summary": "ID" }, - "type": { - "description": "The type of the email", - "maxLength": 32, + "is_registered": { + "description": "Indicate if the mapped record registered on Almabase", + "type": "boolean", + "x-ms-summary": "Is record Registered on Almabase?" + }, + "last_name": { + "description": "Last name of the mapped record", "type": "string", - "x-ms-summary": "Type", - "x-ms-visibility": "important" + "x-ms-summary": "Last Name" } }, "type": "object" }, - "v1.RecordApi.EmailAddressEdit": { - "description": "Email Address", + "v1.RecordApi.EmailWebhookResponse": { "properties": { - "is_login_email": { - "description": "Indicates if the user are allowed to login to the Platform using this email address.", - "type": "boolean", - "x-ms-summary": "Use for Login?", - "x-ms-visibility": "advanced" - }, - "is_primary": { - "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", - "type": "boolean", - "x-ms-summary": "Is Primary?", - "x-ms-visibility": "important" + "data": { + "description": "The event data.", + "properties": { + "address": { + "description": "Email address.", + "format": "email", + "type": "string", + "x-ms-summary": "Email Address" + }, + "id": { + "description": "System generated ID to uniquely identify an email.", + "format": "int32", + "type": "integer", + "x-ms-summary": "ID" + }, + "is_primary": { + "description": "Indicates whether the email is primary or not.", + "type": "boolean", + "x-ms-summary": "Is Primary" + }, + "profile": { + "description": "Mapped Record on Almabase.", + "properties": { + "schema": { + "$ref": "#/definitions/v1.RecordApi.EmailWebhookRecordRead" + } + }, + "type": "object", + "x-ms-summary": "Mapped Record" + }, + "type": { + "description": "Type of the email address (primary, personal, work, etc).", + "type": "string", + "x-ms-summary": "Email Type" + } + }, + "type": "object", + "x-ms-summary": "Email" }, - "status": { - "description": "Status of the email address", - "enum": [ - "unknown", - "hard_bounce", - "soft_bounce", - "marked_spam", - "invalid", - "contactable" - ], + "time": { + "description": "The event time.", "type": "string", - "x-ms-summary": "Status", - "x-ms-visibility": "advanced" + "x-ms-summary": "Event Triggered At" }, "type": { - "description": "The type of the email", - "maxLength": 32, + "description": "The event type.", "type": "string", - "x-ms-summary": "Type", - "x-ms-visibility": "important" + "x-ms-summary": "Event Type" } }, "type": "object" }, - "v1.RecordApi.EmailAddressRead": { + "v1.RecordApi.RecordChangedWebhookRequest": { + "properties": { + "callback_url": { + "description": "callback_url", + "title": "Callback URL", + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "events": { + "default": "com.almabase.crm.record.created", + "description": "The list of events to trigger the flow.", + "type": "string", + "x-ms-dynamic-list": { + "itemTitlePath": "title", + "itemValuePath": "value", + "operationId": "GetRecordMetadataWebhookEvents" + }, + "x-ms-dynamic-values": { + "operationId": "GetRecordMetadataWebhookEvents", + "value-path": "value", + "value-title": "title" + }, + "x-ms-summary": "When", + "x-ms-visibility": "important" + } + }, + "required": [ + "events", + "callback_url" + ], + "type": "object" + }, + "v1.RecordApi.RecordWebhookResponse": { + "properties": { + "data": { + "description": "The event data.", + "properties": { + "affiliations": { + "items": { + "type": "string" + }, + "type": "array", + "x-ms-summary": "Affiliations", + "x-ms-visibility": "advanced" + }, + "class_year": { + "description": "Class year of the record", + "type": "string", + "x-ms-summary": "Class Year", + "x-ms-visibility": "advanced" + }, + "email": { + "description": "Email address.", + "format": "email", + "type": "string", + "x-ms-summary": "Email Address" + }, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "type": "string", + "x-ms-summary": "External Database ID" + }, + "first_name": { + "description": "First name of the mapped record", + "type": "string", + "x-ms-summary": "First Name" + }, + "home_address": { + "description": "Home Address of the record", + "properties": { + "schema": { + "$ref": "#/definitions/v1.RecordApi.AddressRead" + } + }, + "type": "object", + "x-ms-summary": "Home Address" + }, + "id": { + "description": "System generated ID to uniquely identify a record.", + "format": "int32", + "type": "integer", + "x-ms-summary": "ID" + }, + "last_name": { + "description": "Last name of the mapped record", + "type": "string", + "x-ms-summary": "Last Name" + }, + "membership_expiry_date": { + "description": "Expiry date of the membership of the record", + "format": "date-time", + "type": "string", + "x-ms-summary": "Membership Expiry Date", + "x-ms-visibility": "advanced" + }, + "membership_type_name": { + "description": "Name of the membership type of the record", + "type": "string", + "x-ms-summary": "Membership Type Name", + "x-ms-visibility": "advanced" + }, + "mobile_number": { + "description": "Mobile number of the record", + "type": "string", + "x-ms-summary": "Mobile Number" + }, + "office_address": { + "description": "Office Address of the record", + "properties": { + "schema": { + "$ref": "#/definitions/v1.RecordApi.AddressRead" + } + }, + "type": "object", + "x-ms-summary": "Office Address" + }, + "office_phone_number": { + "description": "Office phone number of the record", + "type": "string", + "x-ms-summary": "Office Phone Number" + }, + "residence_phone_number": { + "description": "Residence phone number of the record", + "type": "string", + "x-ms-summary": "Residence Phone Number" + } + }, + "type": "object", + "x-ms-summary": "Record" + }, + "time": { + "description": "The event time.", + "type": "string", + "x-ms-summary": "Event Triggered At" + }, + "type": { + "description": "The event type.", + "type": "string", + "x-ms-summary": "Event Type" + } + }, + "type": "object" + }, + "v1.RecordApi.RecordAdd": { + "description": "Record", + "properties": { + "addresses": { + "description": "Addresses of a profile", + "items": { + "$ref": "#/definitions/v1.RecordApi.AddressAdd" + }, + "type": "array", + "x-ms-summary": "Addresses", + "x-ms-visibility": "advanced" + }, + "date_of_birth": { + "description": "Date of birth.", + "type": "string", + "x-ms-summary": "Date of Birth", + "x-ms-visibility": "important" + }, + "deceased": { + "description": "Deceased.", + "type": "boolean", + "x-ms-summary": "Deceased", + "x-ms-visibility": "important" + }, + "email_addresses": { + "description": "List of email addresses of a profile", + "items": { + "$ref": "#/definitions/v1.RecordApi.EmailAddressAssociatedWithRecordAdd" + }, + "type": "array", + "x-ms-summary": "Email Addresses", + "x-ms-visibility": "advanced" + }, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "important" + }, + "external_database_lookup_id": { + "description": "A custom user-defined lookup ID for the record in the external database. e.g. Constituent ID\n", + "type": "string", + "x-ms-summary": "External Database Lookup ID", + "x-ms-visibility": "advanced" + }, + "first_name": { + "description": "First name of the record.", + "type": "string", + "x-ms-summary": "First Name", + "x-ms-visibility": "important" + }, + "last_name": { + "description": "Last name of the record.", + "type": "string", + "x-ms-summary": "Last Name", + "x-ms-visibility": "important" + }, + "middle_name": { + "description": "Middle name of the record.", + "type": "string", + "x-ms-summary": "Middle Name", + "x-ms-visibility": "important" + }, + "phone_numbers": { + "description": "List of phone numbers of a profile", + "items": { + "$ref": "#/definitions/v1.RecordApi.PhoneNumberAdd" + }, + "type": "array", + "x-ms-summary": "Phone Numbers", + "x-ms-visibility": "advanced" + } + }, + "required": [ + "last_name", + "first_name" + ], + "type": "object" + }, + "v1.RecordApi.AddressAdd": { + "description": "Address", + "properties": { + "line1": { + "description": "Line 1 of the Address", + "type": "string", + "x-ms-summary": "Line 1", + "x-ms-visibility": "important" + }, + "line2": { + "description": "Line 2 of the Address", + "type": "string", + "x-ms-summary": "Line 2", + "x-ms-visibility": "important" + }, + "location": { + "description": "Location of the Address", + "properties": { + "name": { + "description": "City,State,Country of the Location", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + } + }, + "type": "object", + "x-ms-summary": "Location" + }, + "privacy": { + "description": "privacy", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Privacy", + "x-ms-visibility": "important" + }, + "type": { + "description": "Type of the number", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "important" + }, + "zip_code": { + "description": "Zipcode of the Address", + "type": "string", + "x-ms-summary": "Zipcode", + "x-ms-visibility": "important" + } + }, + "required": [ + "line1", + "type" + ], + "type": "object" + }, + "v1.RecordApi.EmailAddressAdd": { + "description": "Email", + "properties": { + "address": { + "description": "The email address", + "format": "email", + "maxLength": 254, + "type": "string", + "x-ms-summary": "Address", + "x-ms-visibility": "important" + }, + "is_login_email": { + "default": true, + "description": "Indicates if the user are allowed to login to the Platform using this email address.", + "type": "boolean", + "x-ms-summary": "Use for Login?", + "x-ms-visibility": "advanced" + }, + "is_primary": { + "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", + "type": "boolean", + "x-ms-summary": "Is Primary?", + "x-ms-visibility": "important" + }, + "source": { + "description": "The source indicate how the email is added to the database.", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Source", + "x-ms-visibility": "advanced" + }, + "status": { + "default": "unknown", + "description": "Status of the email address", + "enum": [ + "unknown", + "hard_bounce", + "soft_bounce", + "marked_spam", + "invalid", + "contactable" + ], + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "advanced" + }, + "type": { + "description": "The type of the email", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "important" + } + }, + "type": "object" + }, + "v1.RecordApi.EmailAddressAssociatedWithRecordAdd": { + "description": "Email Address", + "properties": { + "address": { + "description": "The email address", + "format": "email", + "maxLength": 254, + "type": "string", + "x-ms-summary": "Address", + "x-ms-visibility": "important" + }, + "is_login_email": { + "default": true, + "description": "Indicates if the user are allowed to login to the Platform using this email address.", + "type": "boolean", + "x-ms-summary": "Use for Login?", + "x-ms-visibility": "advanced" + }, + "is_primary": { + "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", + "type": "boolean", + "x-ms-summary": "Is Primary?", + "x-ms-visibility": "important" + }, + "source": { + "description": "The source indicate how the email is added to the database.", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Source", + "x-ms-visibility": "advanced" + }, + "status": { + "default": "unknown", + "description": "Status of the email address", + "enum": [ + "unknown", + "hard_bounce", + "soft_bounce", + "marked_spam", + "invalid", + "contactable" + ], + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "advanced" + }, + "type": { + "description": "The type of the email", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "important" + } + }, + "type": "object" + }, + "v1.RecordApi.EmailAddressEdit": { + "description": "Email Address", + "properties": { + "is_login_email": { + "description": "Indicates if the user are allowed to login to the Platform using this email address.", + "type": "boolean", + "x-ms-summary": "Use for Login?", + "x-ms-visibility": "advanced" + }, + "is_primary": { + "description": "A primary email is used to send the automated emails triggered by the System. It is also used to send the bulk email to the profile. It's mandatory that only one email is set as primary.\n", + "type": "boolean", + "x-ms-summary": "Is Primary?", + "x-ms-visibility": "important" + }, + "status": { + "description": "Status of the email address", + "enum": [ + "unknown", + "hard_bounce", + "soft_bounce", + "marked_spam", + "invalid", + "contactable" + ], + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "advanced" + }, + "type": { + "description": "The type of the email", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "important" + } + }, + "type": "object" + }, + "v1.RecordApi.EmailAddressRead": { "description": "Email Address", "properties": { "address": { @@ -1841,6 +2284,36 @@ }, "type": "object" }, + "v1.RecordApi.PhoneNumberAdd": { + "description": "Phone", + "properties": { + "number": { + "description": "Number", + "type": "string", + "x-ms-summary": "Number", + "x-ms-visibility": "important" + }, + "privacy": { + "description": "privacy", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Privacy", + "x-ms-visibility": "important" + }, + "type": { + "description": "Type of the number", + "maxLength": 32, + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "important" + } + }, + "required": [ + "number", + "type" + ], + "type": "object" + }, "v1.RecordApi.RecordEdit": { "description": "Record", "properties": { @@ -1927,6 +2400,232 @@ } }, "type": "object" + }, + "v1.EventApi.ContactPersonEditOrAdd": { + "description": "Contact person of an event", + "properties": { + "email": { + "description": "Email of the contact person", + "format": "email", + "type": "string", + "x-ms-summary": "Email" + }, + "name": { + "description": "Name of the contact person", + "type": "string", + "x-ms-summary": "Name" + }, + "phone_number": { + "description": "Phone number of the contact person", + "type": "string", + "x-ms-summary": "Phone Number" + } + }, + "type": "object" + }, + "v1.EventApi.ContactPersonRead": { + "description": "Contact person of an event", + "properties": { + "email": { + "description": "Email of the contact person", + "format": "email", + "type": "string", + "x-ms-summary": "Email" + }, + "id": { + "description": "System generated ID to uniquely identify a contact person.", + "format": "int32", + "type": "integer", + "x-ms-summary": "ID" + }, + "name": { + "description": "Name of the contact person", + "type": "string", + "x-ms-summary": "Name" + }, + "phone_number": { + "description": "Phone number of the contact person", + "type": "string", + "x-ms-summary": "Phone Number" + } + }, + "type": "object" + }, + "v1.EventApi.EventAdd": { + "description": "Event", + "properties": { + "description": { + "description": "Description of the event", + "type": "string", + "x-ms-summary": "Description", + "x-ms-visibility": "advanced" + }, + "end_datetime": { + "description": "End time of the event", + "type": "string", + "x-ms-summary": "End Time" + }, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, + "external_registration_url": { + "description": "The registration url of the event on an external website", + "type": "string", + "x-ms-summary": "External Registration Url", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "Name of the event", + "type": "string", + "x-ms-summary": "Name" + }, + "start_datetime": { + "description": "Start time of the event", + "type": "string", + "x-ms-summary": "Start Time" + }, + "timezone": { + "default": "US/Central", + "description": "Timezone of the event", + "type": "string", + "x-ms-summary": "Timezone", + "x-ms-visibility": "advanced" + }, + "venue": { + "description": "Location of the Venue", + "properties": { + "display_name": { + "description": "City,State,Country of the Venue", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + } + }, + "type": "object", + "x-ms-summary": "Location" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "v1.EventApi.EventEdit": { + "description": "Event", + "properties": { + "description": { + "description": "Description of the event", + "type": "string", + "x-ms-summary": "Description", + "x-ms-visibility": "advanced" + }, + "end_datetime": { + "description": "End time of the event", + "type": "string", + "x-ms-summary": "End Time" + }, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, + "external_registration_url": { + "description": "The registration url of the event on an external website", + "type": "string", + "x-ms-summary": "External Registration Url", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "Name of the event", + "type": "string", + "x-ms-summary": "Name" + }, + "start_datetime": { + "description": "Start time of the event", + "type": "string", + "x-ms-summary": "Start Time" + }, + "timezone": { + "default": "US/Central", + "description": "Timezone of the event", + "type": "string", + "x-ms-summary": "Timezone", + "x-ms-visibility": "advanced" + }, + "venue": { + "description": "Location of the Venue", + "properties": { + "display_name": { + "description": "City,State,Country of the Venue", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + } + }, + "type": "object", + "x-ms-summary": "Location" + } + }, + "type": "object" + }, + "v1.EventApi.EventRead": { + "description": "Event", + "properties": { + "description": { + "description": "Description of the event", + "type": "string", + "x-ms-summary": "Description", + "x-ms-visibility": "advanced" + }, + "end_datetime": { + "description": "End time of the event", + "type": "string", + "x-ms-summary": "End Time" + }, + "external_database_id": { + "description": "A system assigned unique ID for the record by the external database. e.g. System Record ID for Raiser Edge NXT, Contact Id for Salesforce\n", + "type": "string", + "x-ms-summary": "External Database ID", + "x-ms-visibility": "advanced" + }, + "external_registration_url": { + "description": "The registration url of the event on an external website", + "type": "string", + "x-ms-summary": "External Registration Url", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "System generated ID to uniquely identify an event.", + "format": "int32", + "type": "integer", + "x-ms-summary": "ID" + }, + "name": { + "description": "Name of the event", + "type": "string", + "x-ms-summary": "Name" + }, + "start_datetime": { + "description": "Start time of the event", + "type": "string", + "x-ms-summary": "Start Time" + }, + "timezone": { + "default": "US/Central", + "description": "Timezone of the event", + "type": "string", + "x-ms-summary": "Timezone", + "x-ms-visibility": "advanced" + } + }, + "required": [ + "name" + ], + "type": "object" } }, "paths": { @@ -2510,7 +3209,7 @@ "name": "group_id", "required": false, "type": "string", - "x-ms-summary": "Gift Group Id / List Id", + "x-ms-summary": "Filter By Gift Group Id", "x-ms-visibility": "advanced" }, { @@ -2519,7 +3218,34 @@ "name": "batch_number__isnull", "required": false, "type": "boolean", - "x-ms-summary": "Has a Batch Number?", + "x-ms-summary": "Should have empty batch number?", + "x-ms-visibility": "important" + }, + { + "description": "Filter gifts based on they have already have external database Id or not. NOTE: The Gifts that have external database id, are already pushed to external database.\n", + "in": "query", + "name": "external_database_id__isnull", + "required": false, + "type": "boolean", + "x-ms-summary": "Should have empty external database id?", + "x-ms-visibility": "important" + }, + { + "description": "Filter gifts based on external database id.", + "in": "query", + "name": "external_database_id", + "required": false, + "type": "string", + "x-ms-summary": "Filter by External Database Id", + "x-ms-visibility": "advanced" + }, + { + "description": "Filter gifts based on donor email address", + "in": "query", + "name": "donor_email", + "required": false, + "type": "string", + "x-ms-summary": "Filter by Donor Email", "x-ms-visibility": "advanced" }, { @@ -2528,7 +3254,7 @@ "name": "search", "required": false, "type": "string", - "x-ms-summary": "Search Term", + "x-ms-summary": "Search By", "x-ms-visibility": "advanced" }, { @@ -3115,6 +3841,136 @@ "x-ms-visibility": "internal" } }, + "/v1/profiles/email_addresses/metadata/webhook_events/": { + "get": { + "description": "Get a list of all the supported events", + "operationId": "GetEmailMetadataWebhookEvents", + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "items": { + "properties": { + "title": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "summary": "Get a list of webhook events available for record emails", + "tags": [ + "Metadata" + ], + "x-ms-visibility": "internal" + } + }, + "/v1/profiles/metadata/webhook_events/": { + "get": { + "description": "Get a list of all the supported events", + "operationId": "GetRecordMetadataWebhookEvents", + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "items": { + "properties": { + "title": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + } + }, + "summary": "Get a list of webhook events available for records", + "tags": [ + "Metadata" + ], + "x-ms-visibility": "internal" + } + }, + "/v1/virtual/webhooks/crm.record/": { + "post": { + "description": "Triggers when a new record is created on Almabase or an existing record is updated.\n", + "operationId": "RecordChangedWebhook", + "parameters": [ + { + "description": "Register a webhook to receive record data when a record is changed on Almabase", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.RecordApi.RecordChangedWebhookRequest" + }, + "x-ms-summary": "Register Record Change Webhook on Almabase" + } + ], + "responses": { + "201": { + "description": "Returned when the operation succeeds.", + "schema": { + "type": "object" + } + } + }, + "summary": "When an record is created or updated on Almabase", + "x-ms-trigger": "single", + "x-ms-trigger-hint": "To trigger this, create/update a record on Almabase" + }, + "x-ms-notification-content": { + "description": "Scheme for the email changed webhook", + "schema": { + "$ref": "#/definitions/v1.RecordApi.RecordWebhookResponse" + } + } + }, + "/v1/virtual/webhooks/profile.email/": { + "post": { + "description": "Triggers when a new email is created on a record or an existing email is updated or deleted from a record.\n", + "operationId": "EmailChangedWebhook", + "parameters": [ + { + "description": "Register a webhook to receive email data when an email is changed on Almabase", + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.RecordApi.EmailChangedWebhookRequest" + }, + "x-ms-summary": "Register Email Change Webhook on Almabase" + } + ], + "responses": { + "201": { + "description": "Returned when the operation succeeds.", + "schema": { + "type": "object" + } + } + }, + "summary": "When an email is created, updated or deleted on a record", + "x-ms-trigger": "single", + "x-ms-trigger-hint": "To trigger this, create/change an email of a record on Almabase" + }, + "x-ms-notification-content": { + "description": "Scheme for the email changed webhook", + "schema": { + "$ref": "#/definitions/v1.RecordApi.EmailWebhookResponse" + } + } + }, "/v1/profiles": { "get": { "description": "Returns a list of records.", @@ -3374,6 +4230,15 @@ "x-ms-url-encoding": "single", "x-ms-visibility": "important" }, + { + "description": "Search for primary email.", + "in": "query", + "name": "is_primary", + "required": false, + "type": "boolean", + "x-ms-summary": "Is Primary?", + "x-ms-visibility": "advanced" + }, { "collectionFormat": "csv", "description": "The comma seperated list of fields in the response.", @@ -3496,6 +4361,39 @@ } }, "/v1/profiles/{record_id}/email_addresses/{email_id}": { + "delete": { + "description": "Delete an email address of a record.", + "operationId": "DeleteRecordEmailAddress", + "parameters": [ + { + "description": "System generated ID to uniquely identify a record.", + "in": "path", + "name": "record_id", + "required": true, + "type": "integer", + "x-ms-summary": "Record ID", + "x-ms-url-encoding": "single" + }, + { + "description": "System generated ID to uniquely identify a email address of a record.", + "in": "path", + "name": "email_id", + "required": true, + "type": "integer", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "204": { + "description": "Returned when the operation succeeds." + } + }, + "summary": "Delete an email address of a record", + "tags": [ + "Email Address" + ] + }, "get": { "description": "Returns information about an email address of a record.", "operationId": "GetRecordEmailAddress", @@ -3577,6 +4475,278 @@ ] } }, + "/v1/eventsx/": { + "get": { + "description": "Returns a list of all the events.", + "operationId": "ListEvents", + "parameters": [ + { + "description": "Search for events by external database ID.", + "in": "query", + "name": "external_database_id", + "required": false, + "type": "string", + "x-ms-summary": "Search By External Database Id", + "x-ms-visibility": "advanced" + }, + { + "collectionFormat": "csv", + "description": "The comma seperated list of fields in the response.", + "in": "query", + "items": { + "type": "string" + }, + "name": "fields", + "required": false, + "type": "array", + "x-ms-summary": "Fields", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "items": { + "$ref": "#/definitions/v1.EventApi.EventRead" + }, + "type": "array" + } + } + }, + "summary": "List Events", + "tags": [ + "Event" + ] + }, + "post": { + "description": "Creates a new event.", + "operationId": "CreateEvent", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.EventApi.EventAdd" + } + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/v1.EventApi.EventRead" + } + } + }, + "summary": "Create an event", + "tags": [ + "Event" + ] + } + }, + "/v1/eventsx/{id}/": { + "get": { + "description": "Returns information about a event.", + "operationId": "GetEvent", + "parameters": [ + { + "description": "System generated ID to uniquely identify a event.", + "format": "int32", + "in": "path", + "name": "id", + "required": true, + "type": "integer", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "collectionFormat": "csv", + "description": "The comma seperated list of fields in the response.", + "in": "query", + "items": { + "type": "string" + }, + "name": "fields", + "required": false, + "type": "array", + "x-ms-summary": "Fields", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/v1.EventApi.EventRead" + } + } + }, + "summary": "Get an event", + "tags": [ + "Event" + ] + }, + "patch": { + "description": "Updates an event.", + "operationId": "UpdateEvent", + "parameters": [ + { + "description": "System generated ID to uniquely identify an event.", + "format": "int32", + "in": "path", + "name": "id", + "required": true, + "type": "integer", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.EventApi.EventEdit" + } + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/v1.EventApi.EventRead" + } + } + }, + "summary": "Update an event", + "tags": [ + "Event" + ] + } + }, + "/v1/eventsx/{id}/contact_persons/": { + "get": { + "description": "Returns a list of all the contact persons on an event.", + "operationId": "ListEventContactPersons", + "parameters": [ + { + "description": "System generated ID to uniquely identify an event.", + "format": "int32", + "in": "path", + "name": "id", + "required": true, + "type": "integer", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "items": { + "$ref": "#/definitions/v1.EventApi.ContactPersonRead" + }, + "type": "array" + } + } + }, + "summary": "List Contact Persons", + "tags": [ + "Event" + ] + }, + "post": { + "description": "Adds a contact person to an event.", + "operationId": "AddEventContactPerson", + "parameters": [ + { + "description": "System generated ID to uniquely identify an event.", + "format": "int32", + "in": "path", + "name": "id", + "required": true, + "type": "integer", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.EventApi.ContactPersonEditOrAdd" + } + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/v1.EventApi.ContactPersonRead" + } + } + }, + "summary": "Add a contact person", + "tags": [ + "Event" + ] + } + }, + "/v1/eventsx/{id}/contact_persons/{person_id}/": { + "patch": { + "description": "Updates a contact person on an event.", + "operationId": "UpdateEventContactPerson", + "parameters": [ + { + "description": "System generated ID to uniquely identify an event.", + "format": "int32", + "in": "path", + "name": "id", + "required": true, + "type": "integer", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + }, + { + "description": "System generated ID to uniquely identify a contact person on an event.", + "format": "int32", + "in": "path", + "name": "person_id", + "required": true, + "type": "integer", + "x-ms-summary": "Event Contact Person Id", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.EventApi.ContactPersonEditOrAdd" + } + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/v1.EventApi.ContactPersonRead" + } + } + }, + "summary": "Update a contact person", + "tags": [ + "Event" + ] + } + }, "/v1/webhooks/{webhook_id}/": { "delete": { "summary": "Delete webhook", @@ -3606,4 +4776,4 @@ } } } -} +} \ No newline at end of file diff --git a/certified-connectors/Almabase/apiProperties.json b/certified-connectors/Almabase/apiProperties.json index 3fac64e5cb..641faacf53 100644 --- a/certified-connectors/Almabase/apiProperties.json +++ b/certified-connectors/Almabase/apiProperties.json @@ -221,6 +221,74 @@ "x-ms-apimTemplateParameter.existsAction": "override" } }, + { + "templateId": "routerequesttoendpoint", + "title": "Redirect to Webhook Management API to create giving webhook", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "EmailChangedWebhook", + "RecordChangedWebhook" + ], + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.newPath": "/v1/webhooks/" + } + }, + { + "templateId": "SetProperty", + "title": "Add webhook version for profile", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "EmailChangedWebhook", + "RecordChangedWebhook" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "version", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "v1", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "SetProperty", + "title": "Add webhook http method for profile", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "EmailChangedWebhook", + "RecordChangedWebhook" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "method", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "POST", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "SetProperty", + "title": "Add webhook source for profile", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "EmailChangedWebhook", + "RecordChangedWebhook" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "source", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "Microsoft Power Automate", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "SetProperty", + "title": "Add webhook content type for profile", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "EmailChangedWebhook", + "RecordChangedWebhook" + ], + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "content_type", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "userprofile", + "x-ms-apimTemplate-policySection": "Request" + } + }, { "templateId": "updatenextlink", "title": "Updates next link to make paging work for records", @@ -231,7 +299,20 @@ ], "x-ms-apimTemplateParameter.nextLinkPropertyName": "nextLink" } + }, + { + "templateId": "setQueryParameter", + "title": "Set skip_pagination query parameter for eventsx", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "ListEvents", + "ListEventContactPersons" + ], + "x-ms-apimTemplateParameter.name": "skip_pagination", + "x-ms-apimTemplateParameter.value": "True", + "x-ms-apimTemplateParameter.existsAction": "override" + } } ] } -} +} \ No newline at end of file From 2c29b6885b9be16912d8ef4e5ded17ec1fe5413a Mon Sep 17 00:00:00 2001 From: Srihari Padmanabhan <90345666+sriharip-docusign@users.noreply.github.com> Date: Thu, 21 Oct 2021 11:18:34 -0700 Subject: [PATCH 076/219] FLOW-44 feature to create a net new envelope (while still supporting create envelope using template) (#1205) --- certified-connectors/DocuSign/script.csx | 47 +- .../DocuSignDemo/apiDefinition.swagger.json | 3098 +++++++++-------- 2 files changed, 1611 insertions(+), 1534 deletions(-) diff --git a/certified-connectors/DocuSign/script.csx b/certified-connectors/DocuSign/script.csx index eba04470f1..29c746dd38 100644 --- a/certified-connectors/DocuSign/script.csx +++ b/certified-connectors/DocuSign/script.csx @@ -197,7 +197,7 @@ public class Script : ScriptBase return body; } - private JObject SendEnvelopeBodyTransformation(JObject body) + private JObject CreateEnvelopeFromTemplateBodyTransformation(JObject body) { var templateRoles = new JArray(); var signer = new JObject(); @@ -232,12 +232,28 @@ public class Script : ScriptBase var newBody = new JObject() { ["templateRoles"] = templateRoles, - ["templateId"] = query.Get("templateId"), - ["status"] = query.Get("status"), + ["templateId"] = query.Get("templateId") }; + + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("envelopes/createFromTemplate", "/envelopes"); + this.Context.Request.RequestUri = uriBuilder.Uri; + return newBody; } + private JObject CreateBlankEnvelopeBodyTransformation(JObject body) + { + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + body["emailSubject"] = query.Get("emailSubject"); + + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("/envelopes/createBlankEnvelope", "/envelopes"); + this.Context.Request.RequestUri = uriBuilder.Uri; + + return body; + } + private JObject AddRecipientToEnvelopeBodyTransformation(JObject body) { var signers = body["signers"] as JArray; @@ -264,7 +280,7 @@ public class Script : ScriptBase private async Task UpdateApiEndpoint() { string content = string.Empty; - using var userInfoRequest = new HttpRequestMessage(HttpMethod.Get, "https://account.docusign.com/oauth/userinfo"); + using var userInfoRequest = new HttpRequestMessage(HttpMethod.Get, "https://account-d.docusign.com/oauth/userinfo"); // Access token is in the authorization header already userInfoRequest.Headers.Authorization = this.Context.Request.Headers.Authorization; @@ -309,8 +325,18 @@ public class Script : ScriptBase private async Task TransformRequestJsonBody(Func transformationFunction) { var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); - var newBody = transformationFunction(ParseContentAsJObject(content, true)); - this.Context.Request.Content = CreateJsonContent(newBody.ToString()); + + var body = new JObject(); + if (!String.IsNullOrWhiteSpace(content)) + { + body = transformationFunction(ParseContentAsJObject(content, true)); + } + else + { + body = transformationFunction(body); + } + + this.Context.Request.Content = CreateJsonContent(body.ToString()); } private async Task UpdateRequest() @@ -327,9 +353,14 @@ public class Script : ScriptBase await this.TransformRequestJsonBody(this.CreateHookEnvelopeBodyTransformation).ConfigureAwait(false); } - if ("SendEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + if ("CreateBlankEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.CreateBlankEnvelopeBodyTransformation).ConfigureAwait(false); + } + + if ("CreateEnvelopeFromTemplate".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) { - await this.TransformRequestJsonBody(this.SendEnvelopeBodyTransformation).ConfigureAwait(false); + await this.TransformRequestJsonBody(this.CreateEnvelopeFromTemplateBodyTransformation).ConfigureAwait(false); } if ("AddRecipientToEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) diff --git a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json index 4c556fe885..04c9e05cc0 100644 --- a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json +++ b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json @@ -1,1636 +1,1682 @@ { - "swagger": "2.0", - "info": { - "version": "1.0", - "title": "DocuSign Demo", - "description": "DocuSign helps organizations connect and automate how they prepare, sign, act on, and manage agreements. The DocuSign Demo connector connects only to DocuSign Demo environments but offers the same functionality as the regular DocuSign connector. Any documents in a DocuSign Demo environment are not legally binding. For all non-demo uses, use the regular DocuSign connector.", - "x-ms-deployment-version": "1.0.0", - "x-ms-api-annotation": { - "status": "Preview" - }, - "contact": { - "name": "docusign", - "url": "https://support.docusign.com" - } + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "DocuSign Demo", + "description": "DocuSign helps organizations connect and automate how they prepare, sign, act on, and manage agreements. The DocuSign Demo connector connects only to DocuSign Demo environments but offers the same functionality as the regular DocuSign connector. Any documents in a DocuSign Demo environment are not legally binding. For all non-demo uses, use the regular DocuSign connector.", + "x-ms-deployment-version": "1.0.0", + "x-ms-api-annotation": { + "status": "Preview" }, - "host": "demo.docusign.net", - "basePath": "/restapi/v2", - "schemes": [ - "https" - ], - "paths": { - "/accounts/{accountId}/connect": { - "post": { - "summary": "When an envelope status changes (Connect)", - "description": "Triggers a new flow when an envelope status changes.", - "operationId": "CreateHookEnvelope", - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" + "contact": { + "name": "docusign", + "url": "https://support.docusign.com" + } + }, + "host": "demo.docusign.net", + "basePath": "/restapi/v2", + "schemes": [ + "https" + ], + "paths": { + "/accounts/{accountId}/connect": { + "post": { + "summary": "When an envelope status changes (Connect)", + "description": "Triggers a new flow when an envelope status changes.", + "operationId": "CreateHookEnvelope", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/WebhookRequest" - } + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WebhookRequest" } - ], - "responses": { - "201": { - "description": "default", - "schema": { - "type": "object" - } + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "type": "object" } + } + }, + "deprecated": false, + "x-ms-trigger": "single", + "x-ms-trigger-hint": "To see it work now, send an envelope.", + "x-ms-visibility": "important", + "x-ms-no-generic-test": true + }, + "x-ms-notification-content": { + "description": "Details for Webhook", + "schema": { + "$ref": "#/definitions/WebhookEnvelopeResponse" + } + } + }, + "/accounts/{accountId}/connect/{connectId}": { + "delete": { + "summary": "Delete hook", + "description": "Delete a hook.", + "operationId": "DeleteHook", + "parameters": [ + { + "name": "accountId", + "in": "path", + "required": true, + "type": "string" }, - "deprecated": false, - "x-ms-trigger": "single", - "x-ms-trigger-hint": "To see it work now, send an envelope.", - "x-ms-visibility": "important", - "x-ms-no-generic-test": true + { + "name": "connectId", + "in": "path", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK" + } }, - "x-ms-notification-content": { - "description": "Details for Webhook", - "schema": { - "$ref": "#/definitions/WebhookEnvelopeResponse" + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-no-generic-test": true + } + }, + "/webhook_response": { + "post": { + "operationId": "WebhookResponse", + "parameters": [ + { + "name": "logicAppsUri", + "in": "query", + "required": false, + "type": "string" } - } - }, - "/accounts/{accountId}/connect/{connectId}": { - "delete": { - "summary": "Delete hook", - "description": "Delete a hook.", - "operationId": "DeleteHook", - "parameters": [ - { - "name": "accountId", - "in": "path", - "required": true, - "type": "string" + ], + "responses": { + "200": { + "description": "OK" + } + }, + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-no-generic-test": true + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}": { + "get": { + "summary": "Get envelope documents", + "description": "Get envelope documents.", + "operationId": "GetDocuments", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert test value", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "connectId", - "in": "path", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK" + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + }, + { + "name": "documentId", + "in": "path", + "description": "Document id", + "required": true, + "x-ms-summary": "Document", + "x-ms-visibility": "internal", + "x-ms-test-value": "combined", + "type": "string", + "default": "combined" + }, + { + "name": "certificate", + "in": "query", + "description": "When set to false, the envelope signing certificate is removed from the download.", + "required": true, + "x-ms-summary": "Certificate of completion", + "x-ms-test-value": false, + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/GetDocumentsResponse" } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + } + }, + "/trigger/accounts/{accountId}/envelopes": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "When an envelope status changes", + "description": "Triggers a new flow when an envelope status changes.", + "operationId": "OnEnvelopeStatusChanges", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" }, - "deprecated": false, - "x-ms-visibility": "internal", - "x-ms-no-generic-test": true - } - }, - "/webhook_response": { - "post": { - "operationId": "WebhookResponse", - "parameters": [ - { - "name": "logicAppsUri", - "in": "query", - "required": false, - "type": "string" + { + "name": "status", + "in": "query", + "required": false, + "x-ms-summary": "Envelope status", + "x-ms-test-value": "Created", + "type": "string", + "enum": [ + "Any", + "Voided", + "Created", + "Deleted", + "Sent", + "Delivered", + "Signed", + "Completed", + "Declined", + "TimedOut", + "Template", + "Processing" + ] + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OnEnvelopeStatusChangesResponse" } - ], - "responses": { - "200": { - "description": "OK" + } + }, + "deprecated": false, + "x-ms-visibility": "internal", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, change the status of an envelope." + } + }, + "/accounts/{accountId}/envelopes/createBlankEnvelope": { + "post": { + "tags": [ + "DocuSign" + ], + "summary": "Create envelope", + "description": "Create a new blank envelope.", + "operationId": "CreateBlankEnvelope", + "x-ms-no-generic-test": true, + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "emailSubject", + "in": "query", + "description": "Subject of the Email.", + "required": true, + "x-ms-summary": "Email subject", + "x-ms-visibility": "important", + "type": "string" + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateEnvelopeResponse" } + } + }, + "deprecated": false, + "x-ms-visibility": "important" + } + }, + "/accounts/{accountId}/envelopes/createFromTemplate": { + "post": { + "tags": [ + "DocuSign" + ], + "summary": "Create envelope using template", + "description": "Create a new envelope using a specified template.", + "operationId": "CreateEnvelopeFromTemplate", + "x-ms-no-generic-test": true, + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "ecac7b95-ba75-43dd-b1cd-f2db80a0af40", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" }, - "deprecated": false, - "x-ms-visibility": "internal", - "x-ms-no-generic-test": true - } - }, - "/accounts/{accountId}/envelopes/{envelopeId}/documents/{documentId}": { - "get": { - "summary": "Get envelope documents", - "description": "Get envelope documents.", - "operationId": "GetDocuments", - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert test value", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" + { + "name": "templateId", + "in": "query", + "description": "Template id", + "required": true, + "x-ms-summary": "Template", + "x-ms-test-value": "insert template id", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetEnvelopeTemplates", + "parameters": { + "accountId": { + "parameter": "accountId" + } }, - "type": "string" - }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "type": "string" + "value-collection": "envelopeTemplates", + "value-path": "templateId", + "value-title": "name" }, - { - "name": "documentId", - "in": "path", - "description": "Document id", - "required": true, - "x-ms-summary": "Document", - "x-ms-visibility": "internal", - "x-ms-test-value": "combined", - "type": "string", - "default": "combined" - }, - { - "name": "certificate", - "in": "query", - "description": "When set to false, the envelope signing certificate is removed from the download.", - "required": true, - "x-ms-summary": "Certificate of completion", - "x-ms-test-value": false, - "type": "boolean", - "default": false - } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "$ref": "#/definitions/GetDocumentsResponse" - } - } + "type": "string" }, - "deprecated": false, - "x-ms-visibility": "advanced" - } - }, - "/trigger/accounts/{accountId}/envelopes": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "When an envelope status changes", - "description": "Triggers a new flow when an envelope status changes.", - "operationId": "OnEnvelopeStatusChanges", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" + { + "name": "signers", + "in": "body", + "description": "The signers of the document.", + "x-ms-visibility": "important", + "required": true, + "schema": { + "$ref": "#/definitions/DynamicSigners" }, - { - "name": "status", - "in": "query", - "required": false, - "x-ms-summary": "Envelope status", - "x-ms-test-value": "Created", - "type": "string", - "enum": [ - "Any", - "Voided", - "Created", - "Deleted", - "Sent", - "Delivered", - "Signed", - "Completed", - "Declined", - "TimedOut", - "Template", - "Processing" - ] + "x-ms-summary": "Signers" + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateEnvelopeResponse" } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OnEnvelopeStatusChangesResponse" - } + } + }, + "deprecated": false, + "x-ms-visibility": "important" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}": { + "put": { + "tags": [ + "DocuSign" + ], + "summary": "Send envelope", + "description": "Send an existing envelope.", + "operationId": "SendDraftEnvelope", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SendDraftEnvelopeResponse" } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "advanced" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/recipients": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List recipients", + "description": "List recipients for a specific envelope.", + "operationId": "GetRecipientStatus", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" }, - "deprecated": false, - "x-ms-visibility": "internal", - "x-ms-trigger": "batch", - "x-ms-trigger-hint": "To see it work now, change the status of an envelope." - } - }, - "/accounts/{accountId}/envelopes": { - "post": { - "tags": [ - "DocuSign" - ], - "summary": "Send envelope using template", - "description": "Send a new envelope using a specified template.", - "operationId": "SendEnvelope", - "consumes": [ - "application/json", - "text/json", - "application/xml", - "text/xml", - "application/x-www-form-urlencoded" - ], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } }, - "type": "string" + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" }, - { - "name": "templateId", - "in": "query", - "description": "Template id", - "required": true, - "x-ms-summary": "Template", - "x-ms-test-value": "insert template id", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetEnvelopeTemplates", - "parameters": { - "accountId": { - "parameter": "accountId" - } + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" }, - "value-collection": "envelopeTemplates", - "value-path": "templateId", - "value-title": "name" + "folderId": { + "parameter": "folderId" + } }, - "type": "string" + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" }, - { - "name": "status", - "in": "query", - "description": "Envelope status", - "required": true, - "x-ms-summary": "Envelope status", - "x-ms-test-value": "Created", - "x-ms-visibility": "important", - "type": "string", - "enum": [ - "Sent", - "Created" - ] - }, - { - "name": "signers", - "in": "body", - "description": "The signers of the document.", - "required": true, - "schema": { - "$ref": "#/definitions/DynamicSigners" - }, - "x-ms-visibility": "important", - "x-ms-summary": "Signers" - } - ], - "responses": { - "201": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SendEnvelopeResponse" - } + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" } - }, - "deprecated": false, - "x-ms-no-generic-test": true, - "x-ms-visibility": "important" - } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" }, - "/accounts/{accountId}/envelopes/{envelopeId}": { - "put": { - "tags": [ - "DocuSign" - ], - "summary": "Send envelope", - "description": "Send an existing envelope.", - "operationId": "SendDraftEnvelope", - "consumes": [ - "application/json", - "text/json", - "application/xml", - "text/xml", - "application/x-www-form-urlencoded" - ], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" + "post": { + "tags": [ + "DocuSign" + ], + "summary": "Add recipient to an envelope", + "description": "Add recipient to an envelope", + "operationId": "AddRecipientToEnvelope", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/SendDraftEnvelopeResponse" - } - } + "type": "string" }, - "deprecated": false, - "x-ms-no-generic-test": true, - "x-ms-visibility": "advanced" - } + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "type": "string" + }, + { + "name": "AddRecipientToEnvelopeName", + "in": "query", + "description": "The name of the recipient.", + "required": true, + "x-ms-summary": "Signer Name", + "x-ms-test-value": "test name", + "x-ms-visibility": "important", + "type": "string" + }, + { + "name": "AddRecipientToEnvelopeEmail", + "in": "query", + "description": "The email of the recipient.", + "required": true, + "x-ms-summary": "Signer Email", + "x-ms-test-value": "test@email.com", + "x-ms-visibility": "important", + "type": "string" + }, + { + "name": "newRecipient", + "in": "body", + "description": "New recipient", + "required": true, + "schema": { + "$ref": "#/definitions/AddRecipientToEnvelopeRequest" + }, + "x-ms-summary": "Data for a recipient" + } + ], + "responses": { + "201": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-no-generic-test": true }, - "/accounts/{accountId}/envelopes/{envelopeId}/recipients": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "List recipients", - "description": "List recipients for a specific envelope.", - "operationId": "GetRecipientStatus", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" + "delete": { + "tags": [ + "DocuSign" + ], + "summary": "Remove recipient from an envelope", + "description": "Remove recipient from an envelope", + "operationId": "RemoveRecipientFromEnvelope", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } }, - "type": "string" + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" }, - { - "name": "folderId", - "in": "query", - "description": "Folder id", - "required": true, - "x-ms-summary": "Folder", - "x-ms-test-value": "insert folder id", - "x-ms-dynamic-values": { - "operationId": "GetFolderList", - "parameters": { - "accountId": { - "parameter": "accountId" - } + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" }, - "value-collection": "folders", - "value-path": "folderId", - "value-title": "name" + "folderId": { + "parameter": "folderId" + } }, - "type": "string" + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "x-ms-dynamic-values": { - "operationId": "GetFolderEnvelopeList", - "parameters": { - "accountId": { - "parameter": "accountId" - }, - "folderId": { - "parameter": "folderId" - } + "type": "string" + }, + { + "name": "RemoveRecipientFromEnvelopeRecipientId", + "in": "query", + "description": "Recipient id", + "required": true, + "x-ms-summary": "Recipient", + "x-ms-test-value": "insert recipient id", + "x-ms-dynamic-values": { + "operationId": "GetRecipientStatus", + "parameters": { + "accountId": { + "parameter": "accountId" }, - "value-collection": "folderItems", - "value-path": "envelopeId", - "value-title": "subject" + "folderId": { + "parameter": "folderId" + }, + "envelopeId": { + "parameter": "envelopeId" + } }, - "type": "string" + "value-collection": "signers", + "value-path": "recipientId", + "value-title": "roleName" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListRecipientsResponse" } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListRecipientsResponse" - } + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "advanced" + } + }, + "/login_information": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "Login", + "description": "Login", + "operationId": "GetLoginAccounts", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetLoginAccountsResponse" } - }, - "deprecated": false, - "x-ms-visibility": "advanced" + } }, - "post": { - "tags": [ - "DocuSign" - ], - "summary": "Add recipient to an envelope", - "description": "Add recipient to an envelope", - "operationId": "AddRecipientToEnvelope", - "consumes": [ - "application/json", - "text/json", - "application/xml", - "text/xml", - "application/x-www-form-urlencoded" - ], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" - }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "type": "string" + "deprecated": false + } + }, + "/accounts/{accountId}/templates": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List templates", + "description": "List templates for a specific account.", + "operationId": "GetEnvelopeTemplates", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "AddRecipientToEnvelopeName", - "in": "query", - "description": "The name of the recipient.", - "required": true, - "x-ms-summary": "Signer Name", - "x-ms-test-value": "test name", - "x-ms-visibility": "important", - "type": "string" + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListTemplatesResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/folders": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List folders", + "description": "List folders for a specific account.", + "operationId": "GetFolderList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "AddRecipientToEnvelopeEmail", - "in": "query", - "description": "The email of the recipient.", - "required": true, - "x-ms-summary": "Signer Email", - "x-ms-test-value": "test@email.com", - "x-ms-visibility": "important", - "type": "string" + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListFoldersResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/folders/{folderId}": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List envelopes", + "description": "List envelopes under a particular folder.", + "operationId": "GetFolderEnvelopeList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "newRecipient", - "in": "body", - "description": "New recipient", - "required": true, - "schema": { - "$ref": "#/definitions/AddRecipientToEnvelopeRequest" + "type": "string" + }, + { + "name": "folderId", + "in": "path", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } }, - "x-ms-summary": "Data for a recipient" - } - ], - "responses": { - "201": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListRecipientsResponse" - } + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListEnvelopesResponse" } - }, - "deprecated": false, - "x-ms-visibility": "advanced", - "x-ms-no-generic-test": true + } }, - "delete": { - "tags": [ - "DocuSign" - ], - "summary": "Remove recipient from an envelope", - "description": "Remove recipient from an envelope", - "operationId": "RemoveRecipientFromEnvelope", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/accounts/{accountId}/envelopes/{envelopeId}/documents": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "List documents", + "description": "List documents in an envelope.", + "operationId": "GetEnvelopeDocumentList", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" }, - { - "name": "folderId", - "in": "query", - "description": "Folder id", - "required": true, - "x-ms-summary": "Folder", - "x-ms-test-value": "insert folder id", - "x-ms-dynamic-values": { - "operationId": "GetFolderList", - "parameters": { - "accountId": { - "parameter": "accountId" - } - }, - "value-collection": "folders", - "value-path": "folderId", - "value-title": "name" + "type": "string" + }, + { + "name": "folderId", + "in": "query", + "description": "Folder id", + "required": true, + "x-ms-summary": "Folder", + "x-ms-test-value": "insert folder id", + "x-ms-dynamic-values": { + "operationId": "GetFolderList", + "parameters": { + "accountId": { + "parameter": "accountId" + } }, - "type": "string" + "value-collection": "folders", + "value-path": "folderId", + "value-title": "name" }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "x-ms-dynamic-values": { - "operationId": "GetFolderEnvelopeList", - "parameters": { - "accountId": { - "parameter": "accountId" - }, - "folderId": { - "parameter": "folderId" - } + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "description": "Envelope id", + "required": true, + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id", + "x-ms-dynamic-values": { + "operationId": "GetFolderEnvelopeList", + "parameters": { + "accountId": { + "parameter": "accountId" }, - "value-collection": "folderItems", - "value-path": "envelopeId", - "value-title": "subject" + "folderId": { + "parameter": "folderId" + } }, - "type": "string" + "value-collection": "folderItems", + "value-path": "envelopeId", + "value-title": "subject" }, - { - "name": "RemoveRecipientFromEnvelopeRecipientId", - "in": "query", - "description": "Recipient id", - "required": true, - "x-ms-summary": "Recipient", - "x-ms-test-value": "insert recipient id", - "x-ms-dynamic-values": { - "operationId": "GetRecipientStatus", - "parameters": { - "accountId": { - "parameter": "accountId" - }, - "folderId": { - "parameter": "folderId" - }, - "envelopeId": { - "parameter": "envelopeId" - } - }, - "value-collection": "signers", - "value-path": "recipientId", - "value-title": "roleName" - }, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListRecipientsResponse" - } - } - }, - "deprecated": false, - "x-ms-no-generic-test": true, - "x-ms-visibility": "advanced" - } - }, - "/login_information": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "Login", - "description": "Login", - "operationId": "GetLoginAccounts", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/GetLoginAccountsResponse" - } + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ListDocumentsResponse" } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/signers/accounts/{accountId}/templates/{templateId}/recipients": { + "get": { + "tags": [ + "DocuSign" + ], + "summary": "Get the signers of a template in dynamic schema format", + "description": "Get the signers of a template in dynamic schema format.", + "operationId": "GetDynamicSigners", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account to get the signers for.", + "required": true, + "x-ms-summary": "Account Id", + "x-ms-test-value": "insert account id", + "type": "string" }, - "deprecated": false - } - }, - "/accounts/{accountId}/templates": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "List templates", - "description": "List templates for a specific account.", - "operationId": "GetEnvelopeTemplates", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListTemplatesResponse" - } + { + "name": "templateId", + "in": "path", + "description": "Template to get the signers for.", + "required": true, + "x-ms-summary": "Template Id", + "x-ms-test-value": "insert template id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" } - }, - "deprecated": false, + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "internal" + } + } + }, + "definitions": { + "WebhookRequest": { + "required": [ + "allUsers", + "allowEnvelopePublish", + "includeDocumentFields", + "includeEnvelopeVoidReason", + "includeTimeZoneInformation", + "requiresAcknowledgement", + "urlToPublishTo", + "name", + "envelopeEvents", + "includeSenderAccountasCustomField" + ], + "type": "object", + "properties": { + "allUsers": { + "default": "true", + "type": "string", + "x-ms-summary": "allUsers", "x-ms-visibility": "internal" - } - }, - "/accounts/{accountId}/folders": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "List folders", - "description": "List folders for a specific account.", - "operationId": "GetFolderList", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListFoldersResponse" - } - } - }, - "deprecated": false, + }, + "allowEnvelopePublish": { + "default": "true", + "type": "string", + "x-ms-summary": "allowEnvelopePublish", "x-ms-visibility": "internal" - } - }, - "/accounts/{accountId}/folders/{folderId}": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "List envelopes", - "description": "List envelopes under a particular folder.", - "operationId": "GetFolderEnvelopeList", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" - }, - { - "name": "folderId", - "in": "path", - "description": "Folder id", - "required": true, - "x-ms-summary": "Folder", - "x-ms-test-value": "insert folder id", - "x-ms-dynamic-values": { - "operationId": "GetFolderList", - "parameters": { - "accountId": { - "parameter": "accountId" - } - }, - "value-collection": "folders", - "value-path": "folderId", - "value-title": "name" - }, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListEnvelopesResponse" - } - } - }, - "deprecated": false, + }, + "includeDocumentFields": { + "default": "true", + "type": "string", + "x-ms-summary": "includeDocumentFields", "x-ms-visibility": "internal" - } - }, - "/accounts/{accountId}/envelopes/{envelopeId}/documents": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "List documents", - "description": "List documents in an envelope.", - "operationId": "GetEnvelopeDocumentList", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account id", - "required": true, - "x-ms-summary": "Account", - "x-ms-test-value": "insert account id", - "x-ms-dynamic-values": { - "operationId": "GetLoginAccounts", - "value-collection": "loginAccounts", - "value-path": "accountIdGuid", - "value-title": "name" - }, - "type": "string" - }, - { - "name": "folderId", - "in": "query", - "description": "Folder id", - "required": true, - "x-ms-summary": "Folder", - "x-ms-test-value": "insert folder id", - "x-ms-dynamic-values": { - "operationId": "GetFolderList", - "parameters": { - "accountId": { - "parameter": "accountId" - } - }, - "value-collection": "folders", - "value-path": "folderId", - "value-title": "name" - }, - "type": "string" - }, - { - "name": "envelopeId", - "in": "path", - "description": "Envelope id", - "required": true, - "x-ms-summary": "Envelope", - "x-ms-test-value": "insert envelope id", - "x-ms-dynamic-values": { - "operationId": "GetFolderEnvelopeList", - "parameters": { - "accountId": { - "parameter": "accountId" - }, - "folderId": { - "parameter": "folderId" - } - }, - "value-collection": "folderItems", - "value-path": "envelopeId", - "value-title": "subject" - }, - "type": "string" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ListDocumentsResponse" - } - } - }, - "deprecated": false, + }, + "includeEnvelopeVoidReason": { + "default": "true", + "type": "string", + "x-ms-summary": "includeEnvelopeVoidReason", "x-ms-visibility": "internal" - } - }, - "/signers/accounts/{accountId}/templates/{templateId}/recipients": { - "get": { - "tags": [ - "DocuSign" - ], - "summary": "Get the signers of a template in dynamic schema format", - "description": "Get the signers of a template in dynamic schema format.", - "operationId": "GetDynamicSigners", - "consumes": [], - "produces": [ - "application/json", - "text/json", - "application/xml", - "text/xml" - ], - "parameters": [ - { - "name": "accountId", - "in": "path", - "description": "Account to get the signers for.", - "required": true, - "x-ms-summary": "Account Id", - "x-ms-test-value": "insert account id", - "type": "string" - }, - { - "name": "templateId", - "in": "path", - "description": "Template to get the signers for.", - "required": true, - "x-ms-summary": "Template Id", - "x-ms-test-value": "insert template id", - "type": "string" - } + }, + "includeTimeZoneInformation": { + "default": "true", + "type": "string", + "x-ms-summary": "includeTimeZoneInformation", + "x-ms-visibility": "internal" + }, + "requiresAcknowledgement": { + "default": "true", + "type": "string", + "x-ms-summary": "requiresAcknowledgement", + "x-ms-visibility": "internal" + }, + "urlToPublishTo": { + "type": "string", + "x-ms-summary": "urlToPublishTo", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "name": { + "type": "string", + "x-ms-summary": "Connect name", + "x-ms-visibility": "important" + }, + "envelopeEvents": { + "enum": [ + "Sent", + "Delivered", + "Completed", + "Declined", + "Voided" ], - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "object" - } - } - }, - "deprecated": false, - "x-ms-no-generic-test": true, + "type": "string", + "x-ms-summary": "Envelope event", + "x-ms-visibility": "important" + }, + "includeSenderAccountasCustomField": { + "default": "true", + "type": "string", + "x-ms-summary": "includeSenderAccountasCustomField", "x-ms-visibility": "internal" } } }, - "definitions": { - "WebhookRequest": { - "required": [ - "allUsers", - "allowEnvelopePublish", - "includeDocumentFields", - "includeEnvelopeVoidReason", - "includeTimeZoneInformation", - "requiresAcknowledgement", - "urlToPublishTo", - "name", - "envelopeEvents", - "includeSenderAccountasCustomField" - ], - "type": "object", - "properties": { - "allUsers": { - "default": "true", - "type": "string", - "x-ms-summary": "allUsers", - "x-ms-visibility": "internal" - }, - "allowEnvelopePublish": { - "default": "true", - "type": "string", - "x-ms-summary": "allowEnvelopePublish", - "x-ms-visibility": "internal" - }, - "includeDocumentFields": { - "default": "true", - "type": "string", - "x-ms-summary": "includeDocumentFields", - "x-ms-visibility": "internal" - }, - "includeEnvelopeVoidReason": { - "default": "true", - "type": "string", - "x-ms-summary": "includeEnvelopeVoidReason", - "x-ms-visibility": "internal" - }, - "includeTimeZoneInformation": { - "default": "true", - "type": "string", - "x-ms-summary": "includeTimeZoneInformation", - "x-ms-visibility": "internal" - }, - "requiresAcknowledgement": { - "default": "true", - "type": "string", - "x-ms-summary": "requiresAcknowledgement", - "x-ms-visibility": "internal" - }, - "urlToPublishTo": { - "type": "string", - "x-ms-summary": "urlToPublishTo", - "x-ms-visibility": "internal", - "x-ms-notification-url": true - }, - "name": { - "type": "string", - "x-ms-summary": "Connect name", - "x-ms-visibility": "important" - }, - "envelopeEvents": { - "enum": [ - "Sent", - "Delivered", - "Completed", - "Declined", - "Voided" - ], - "type": "string", - "x-ms-summary": "Envelope event", - "x-ms-visibility": "important" - }, - "includeSenderAccountasCustomField": { - "default": "true", - "type": "string", - "x-ms-summary": "includeSenderAccountasCustomField", - "x-ms-visibility": "internal" - } - } - }, - "WebhookEnvelopeResponse": { - "type": "object", - "properties": { - "customFields": { - "description": "Key-value pairs representing the custom fields for this envelope (where key is the field name, and value is the field value).", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-ms-visibility": "important", - "x-ms-summary": "Custom Fields" + "WebhookEnvelopeResponse": { + "type": "object", + "properties": { + "customFields": { + "description": "Key-value pairs representing the custom fields for this envelope (where key is the field name, and value is the field value).", + "type": "object", + "additionalProperties": { + "type": "string" }, - "DocuSignEnvelopeInformation": { - "type": "object", - "properties": { - "EnvelopeStatus": { - "description": "EnvelopeStatus", - "type": "object", - "properties": { - "Created": { - "format": "date-time", - "description": "yyyy-MM-ddTHH:mm:ss.fffZ", - "type": "string", - "x-ms-summary": "Envelope Created Date-Time", - "x-ms-visibility": "advanced" - }, - "Email": { - "type": "string", - "x-ms-summary": "Sender's Email Address", - "x-ms-visibility": "important" - }, - "EnvelopeID": { - "type": "string", - "x-ms-summary": "Envelope ID", - "x-ms-visibility": "important" - }, - "SenderIPAddress": { - "type": "string", - "x-ms-summary": "Sender's IP Address", - "x-ms-visibility": "advanced" - }, - "Sent": { - "format": "date-time", - "description": "yyyy-MM-ddTHH:mm:ss.fffZ", - "type": "string", - "x-ms-summary": "Envelope Sent Date-Time", - "x-ms-visibility": "important" - }, - "Status": { - "type": "string", - "x-ms-summary": "Envelope Status", - "x-ms-visibility": "important" - }, - "Subject": { - "type": "string", - "x-ms-summary": "Subject", - "x-ms-visibility": "important" - }, - "UserName": { - "type": "string", - "x-ms-summary": "Sender's Name", - "x-ms-visibility": "important" - }, - "RecipientStatuses": { - "type": "object", - "properties": { - "RecipientStatus": { - "type": "array", - "items": { - "type": "object", - "properties": { - "tabs": { - "description": "Key-value pairs representing the tabs for this recipient (where key is the field name, and value is the field value).", - "type": "object", - "additionalProperties": { - "type": "string" - }, - "x-ms-visibility": "important", - "x-ms-summary": "Tabs" - }, - "DeclineReason": { - "$ref": "#/definitions/DeclineReasonWithoutType" - }, - "Email": { - "type": "string", - "x-ms-summary": "Recipient Email", - "x-ms-visibility": "important" - }, - "RecipientId": { - "type": "string", - "x-ms-summary": "Recipient Id", - "x-ms-visibility": "advanced" - }, - "RoutingOrder": { - "type": "string", - "x-ms-summary": "Routing Order", - "x-ms-visibility": "important" - }, - "Sent": { - "format": "date-time", - "description": "yyyy-MM-ddTHH:mm:ss.fffZ", - "type": "string", - "x-ms-summary": "Recipient Sent Date-Time", - "x-ms-visibility": "advanced" - }, - "Status": { - "description": "The status of the recipient.", - "type": "string", - "x-ms-summary": "Recipient Status", - "x-ms-visibility": "advanced" - }, - "Type": { - "description": "The type of recipient.", - "type": "string", - "x-ms-summary": "Recipeint Type", - "x-ms-visibility": "advanced" + "x-ms-visibility": "important", + "x-ms-summary": "Custom Fields" + }, + "DocuSignEnvelopeInformation": { + "type": "object", + "properties": { + "EnvelopeStatus": { + "description": "EnvelopeStatus", + "type": "object", + "properties": { + "Created": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Envelope Created Date-Time", + "x-ms-visibility": "advanced" + }, + "Email": { + "type": "string", + "x-ms-summary": "Sender's Email Address", + "x-ms-visibility": "important" + }, + "EnvelopeID": { + "type": "string", + "x-ms-summary": "Envelope ID", + "x-ms-visibility": "important" + }, + "SenderIPAddress": { + "type": "string", + "x-ms-summary": "Sender's IP Address", + "x-ms-visibility": "advanced" + }, + "Sent": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Envelope Sent Date-Time", + "x-ms-visibility": "important" + }, + "Status": { + "type": "string", + "x-ms-summary": "Envelope Status", + "x-ms-visibility": "important" + }, + "Subject": { + "type": "string", + "x-ms-summary": "Subject", + "x-ms-visibility": "important" + }, + "UserName": { + "type": "string", + "x-ms-summary": "Sender's Name", + "x-ms-visibility": "important" + }, + "RecipientStatuses": { + "type": "object", + "properties": { + "RecipientStatus": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tabs": { + "description": "Key-value pairs representing the tabs for this recipient (where key is the field name, and value is the field value).", + "type": "object", + "additionalProperties": { + "type": "string" }, - "UserName": { - "description": "The name of the recipient.", - "type": "string", - "x-ms-summary": "Recipient Name", - "x-ms-visibility": "important" - } + "x-ms-visibility": "important", + "x-ms-summary": "Tabs" + }, + "DeclineReason": { + "$ref": "#/definitions/DeclineReasonWithoutType" + }, + "Email": { + "type": "string", + "x-ms-summary": "Recipient Email", + "x-ms-visibility": "important" + }, + "RecipientId": { + "type": "string", + "x-ms-summary": "Recipient Id", + "x-ms-visibility": "advanced" + }, + "RoutingOrder": { + "type": "string", + "x-ms-summary": "Routing Order", + "x-ms-visibility": "important" + }, + "Sent": { + "format": "date-time", + "description": "yyyy-MM-ddTHH:mm:ss.fffZ", + "type": "string", + "x-ms-summary": "Recipient Sent Date-Time", + "x-ms-visibility": "advanced" + }, + "Status": { + "description": "The status of the recipient.", + "type": "string", + "x-ms-summary": "Recipient Status", + "x-ms-visibility": "advanced" + }, + "Type": { + "description": "The type of recipient.", + "type": "string", + "x-ms-summary": "Recipeint Type", + "x-ms-visibility": "advanced" + }, + "UserName": { + "description": "The name of the recipient.", + "type": "string", + "x-ms-summary": "Recipient Name", + "x-ms-visibility": "important" } } } } } } - }, - "TimeZone": { - "type": "string", - "x-ms-summary": "Time Zone", - "x-ms-visibility": "advanced" - }, - "TimeZoneOffset": { - "type": "string", - "x-ms-summary": "Time Zone Offset", - "x-ms-visibility": "advanced" } + }, + "TimeZone": { + "type": "string", + "x-ms-summary": "Time Zone", + "x-ms-visibility": "advanced" + }, + "TimeZoneOffset": { + "type": "string", + "x-ms-summary": "Time Zone Offset", + "x-ms-visibility": "advanced" } } } - }, - "GetDocumentsResponse": { - "type": "string", - "format": "binary", - "x-ms-summary": "File Content", - "x-ms-visibility": "important" - }, - "DynamicSigners": { - "description": "An object that represents signers based on a template.", - "type": "object", - "properties": {}, - "x-ms-dynamic-schema": { - "operationId": "GetDynamicSigners", - "parameters": { - "accountId": { - "parameter": "accountId" - }, - "templateId": { - "parameter": "templateId" - } + } + }, + "GetDocumentsResponse": { + "type": "string", + "format": "binary", + "x-ms-summary": "File Content", + "x-ms-visibility": "important" + }, + "DynamicSigners": { + "description": "An object that represents signers based on a template.", + "type": "object", + "properties": {}, + "x-ms-dynamic-schema": { + "operationId": "GetDynamicSigners", + "parameters": { + "accountId": { + "parameter": "accountId" }, - "value-path": "Schema/Items" - } - }, - "AddRecipientToEnvelopeRequest": { - "type": "object", - "properties": { - "signers": { - "type": "array", - "items": { - "$ref": "#/definitions/SignerRequest" - }, - "x-ms-summary": "Signer", - "x-ms-visibility": "advanced" + "templateId": { + "parameter": "templateId" } }, - "x-ms-test-value": { - "signers": [ - { - "name": "test name", - "email": "clconn@microsoft.com", - "routingOrder": "1", - "roleName": "manager", - "recipientId": "insert recipientId" - } - ] - } - }, - "SignerRequest": { - "type": "object", - "properties": { - "routingOrder": { - "description": "The signing order of the recipient in the document.", - "type": "string", - "x-ms-summary": "Signing Order", - "x-ms-visibility": "important" + "value-path": "Schema/Items" + } + }, + "AddRecipientToEnvelopeRequest": { + "type": "object", + "properties": { + "signers": { + "type": "array", + "items": { + "$ref": "#/definitions/SignerRequest" }, - "roleName": { - "description": "The role of the signer.", - "type": "string", - "x-ms-summary": "Role", - "x-ms-visibility": "important" - } + "x-ms-summary": "Signer", + "x-ms-visibility": "advanced" } }, - "OnEnvelopeStatusChangesResponse": { - "type": "object", - "properties": { - "envelopes": { - "description": "Envelopes", - "type": "array", - "items": { - "$ref": "#/definitions/Envelope" - }, - "x-ms-summary": "Envelopes", - "x-ms-visibility": "advanced" + "x-ms-test-value": { + "signers": [ + { + "name": "test name", + "email": "clconn@microsoft.com", + "routingOrder": "1", + "roleName": "manager", + "recipientId": "insert recipientId" } + ] + } + }, + "SignerRequest": { + "type": "object", + "properties": { + "routingOrder": { + "description": "The signing order of the recipient in the document.", + "type": "string", + "x-ms-summary": "Signing Order", + "x-ms-visibility": "important" + }, + "roleName": { + "description": "The role of the signer.", + "type": "string", + "x-ms-summary": "Role", + "x-ms-visibility": "important" } - }, - "Envelope": { - "type": "object", - "properties": { - "documentsUri": { - "description": "The URI for the document in DocuSign.", - "type": "string", - "x-ms-summary": "Documents URI", - "x-ms-visibility": "important" - }, - "envelopeId": { - "description": "The id of the envelope.", - "type": "string", - "x-ms-summary": "Envelope Id", - "x-ms-visibility": "important" - }, - "envelopeUri": { - "description": "The URI for the envelope in DocuSign.", - "type": "string", - "x-ms-summary": "Envelope URI", - "x-ms-visibility": "important" - }, - "notificationUri": { - "description": "The URI for the notifications.", - "type": "string", - "x-ms-summary": "Notification URI", - "x-ms-visibility": "advanced" - }, - "recipientsUri": { - "description": "The URI for the recipients of the envelope in DocuSign.", - "type": "string", - "x-ms-summary": "Recipients URI", - "x-ms-visibility": "advanced" - }, - "status": { - "description": "The status of the envelope.", - "type": "string", - "x-ms-summary": "Status", - "x-ms-visibility": "important" + } + }, + "OnEnvelopeStatusChangesResponse": { + "type": "object", + "properties": { + "envelopes": { + "description": "Envelopes", + "type": "array", + "items": { + "$ref": "#/definitions/Envelope" }, - "statusChangedDateTime": { - "description": "The datetime the status changed.", - "type": "string", - "x-ms-summary": "Status Changed Datetime", - "x-ms-visibility": "important" - } + "x-ms-summary": "Envelopes", + "x-ms-visibility": "advanced" } - }, - "SendEnvelopeResponse": { - "type": "object", - "properties": { - "envelopeId": { - "description": "The id of the envelope.", - "type": "string", - "x-ms-summary": "Envelope Id", - "x-ms-visibility": "important" - }, - "status": { - "description": "The status of the envelope.", - "type": "string", - "x-ms-summary": "Status", - "x-ms-visibility": "important" - }, - "statusDateTime": { - "description": "The datetime the status was set.", - "type": "string", - "x-ms-summary": "Status date time", - "x-ms-visibility": "important" - }, - "uri": { - "description": "The URI for the envelope in DocuSign.", - "type": "string", - "x-ms-summary": "URI", - "x-ms-visibility": "important" - } + } + }, + "Envelope": { + "type": "object", + "properties": { + "documentsUri": { + "description": "The URI for the document in DocuSign.", + "type": "string", + "x-ms-summary": "Documents URI", + "x-ms-visibility": "important" + }, + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope Id", + "x-ms-visibility": "important" + }, + "envelopeUri": { + "description": "The URI for the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "Envelope URI", + "x-ms-visibility": "important" + }, + "notificationUri": { + "description": "The URI for the notifications.", + "type": "string", + "x-ms-summary": "Notification URI", + "x-ms-visibility": "advanced" + }, + "recipientsUri": { + "description": "The URI for the recipients of the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "Recipients URI", + "x-ms-visibility": "advanced" + }, + "status": { + "description": "The status of the envelope.", + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "important" + }, + "statusChangedDateTime": { + "description": "The datetime the status changed.", + "type": "string", + "x-ms-summary": "Status Changed Datetime", + "x-ms-visibility": "important" } - }, - "SendDraftEnvelopeResponse": { - "type": "object", - "properties": {} - }, - "ListRecipientsResponse": { - "type": "object", - "properties": { - "signers": { - "description": "Signers", - "type": "array", - "items": { - "$ref": "#/definitions/Signer" - }, - "x-ms-summary": "Signers", - "x-ms-visibility": "advanced" - } + } + }, + "CreateEnvelopeResponse": { + "type": "object", + "properties": { + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope Id", + "x-ms-visibility": "important" + }, + "status": { + "description": "The status of the envelope.", + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "important" + }, + "statusDateTime": { + "description": "The datetime the status was set.", + "type": "string", + "x-ms-summary": "Status date time", + "x-ms-visibility": "important" + }, + "uri": { + "description": "The URI for the envelope in DocuSign.", + "type": "string", + "x-ms-summary": "URI", + "x-ms-visibility": "important" } - }, - "Signer": { - "type": "object", - "properties": { - "routingOrder": { - "description": "The signing order of the recipient in the document.", - "type": "string", - "x-ms-summary": "Signing Order", - "x-ms-visibility": "important" - }, - "roleName": { - "description": "The role of the signer.", - "type": "string", - "x-ms-summary": "Role", - "x-ms-visibility": "important" - }, - "recipientId": { - "description": "The id the recipient.", - "type": "string", - "x-ms-summary": "Recipient Id", - "x-ms-visibility": "advanced" - }, - "name": { - "description": "The name of the recipient.", - "type": "string", - "x-ms-summary": "Name", - "x-ms-visibility": "important" + } + }, + "SendDraftEnvelopeResponse": { + "type": "object", + "properties": {} + }, + "ListRecipientsResponse": { + "type": "object", + "properties": { + "signers": { + "description": "Signers", + "type": "array", + "items": { + "$ref": "#/definitions/Signer" }, - "email": { - "description": "The email of the recipient.", - "type": "string", - "x-ms-summary": "Email", - "x-ms-visibility": "important" - } + "x-ms-summary": "Signers", + "x-ms-visibility": "advanced" } - }, - "GetLoginAccountsResponse": { - "type": "object", - "properties": { - "loginAccounts": { - "description": "Login accounts", - "type": "array", - "items": { - "$ref": "#/definitions/LoginAccount" - }, - "x-ms-summary": "Login accounts", - "x-ms-visibility": "advanced" - } + } + }, + "Signer": { + "type": "object", + "properties": { + "routingOrder": { + "description": "The signing order of the recipient in the document.", + "type": "string", + "x-ms-summary": "Signing Order", + "x-ms-visibility": "important" + }, + "roleName": { + "description": "The role of the signer.", + "type": "string", + "x-ms-summary": "Role", + "x-ms-visibility": "important" + }, + "recipientId": { + "description": "The id the recipient.", + "type": "string", + "x-ms-summary": "Recipient Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the recipient.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + }, + "email": { + "description": "The email of the recipient.", + "type": "string", + "x-ms-summary": "Email", + "x-ms-visibility": "important" } - }, - "LoginAccount": { - "required": [ - "accountIdGuid" - ], - "type": "object", - "properties": { - "name": { - "description": "The name of the account. ", - "type": "string", - "x-ms-summary": "Name" + } + }, + "GetLoginAccountsResponse": { + "type": "object", + "properties": { + "loginAccounts": { + "description": "Login accounts", + "type": "array", + "items": { + "$ref": "#/definitions/LoginAccount" }, - "accountIdGuid": { - "description": "The GUID of the account.", - "type": "string", - "x-ms-summary": "Account Id guid", - "x-ms-visibility": "advanced" - } + "x-ms-summary": "Login accounts", + "x-ms-visibility": "advanced" } - }, - "ListTemplatesResponse": { - "type": "object", - "properties": { - "envelopeTemplates": { - "description": "The availalbe envelope templates.", - "type": "array", - "items": { - "$ref": "#/definitions/EnvelopeTemplate" - }, - "x-ms-summary": "Envelope templates", - "x-ms-visibility": "advanced" - } + } + }, + "LoginAccount": { + "required": [ + "accountIdGuid" + ], + "type": "object", + "properties": { + "name": { + "description": "The name of the account. ", + "type": "string", + "x-ms-summary": "Name" + }, + "accountIdGuid": { + "description": "The GUID of the account.", + "type": "string", + "x-ms-summary": "Account Id guid", + "x-ms-visibility": "advanced" } - }, - "EnvelopeTemplate": { - "required": [ - "templateId" - ], - "type": "object", - "properties": { - "templateId": { - "description": "The id of the template.", - "type": "string", - "x-ms-summary": "Template Id", - "x-ms-visibility": "advanced" + } + }, + "ListTemplatesResponse": { + "type": "object", + "properties": { + "envelopeTemplates": { + "description": "The availalbe envelope templates.", + "type": "array", + "items": { + "$ref": "#/definitions/EnvelopeTemplate" }, - "name": { - "description": "The name of the template.", - "type": "string", - "x-ms-summary": "Name" - } + "x-ms-summary": "Envelope templates", + "x-ms-visibility": "advanced" } - }, - "ListFoldersResponse": { - "type": "object", - "properties": { - "folders": { - "description": "Folders", - "type": "array", - "items": { - "$ref": "#/definitions/Folder" - }, - "x-ms-summary": "Folders", - "x-ms-visibility": "advanced" - } + } + }, + "EnvelopeTemplate": { + "required": [ + "templateId" + ], + "type": "object", + "properties": { + "templateId": { + "description": "The id of the template.", + "type": "string", + "x-ms-summary": "Template Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the template.", + "type": "string", + "x-ms-summary": "Name" } - }, - "Folder": { - "type": "object", - "properties": { - "name": { - "description": "The name of the folder.", - "type": "string", - "x-ms-summary": "Name", - "x-ms-visibility": "advanced" + } + }, + "ListFoldersResponse": { + "type": "object", + "properties": { + "folders": { + "description": "Folders", + "type": "array", + "items": { + "$ref": "#/definitions/Folder" }, - "folderId": { - "description": "The id of the folder.", - "type": "string", - "x-ms-summary": "Folder Id", - "x-ms-visibility": "advanced" - } + "x-ms-summary": "Folders", + "x-ms-visibility": "advanced" } - }, - "ListEnvelopesResponse": { - "type": "object", - "properties": { - "folderItems": { - "description": "The envelopes within a folder.", - "type": "array", - "items": { - "$ref": "#/definitions/FolderItem" - }, - "x-ms-summary": "Folder items", - "x-ms-visibility": "advanced" - } + } + }, + "Folder": { + "type": "object", + "properties": { + "name": { + "description": "The name of the folder.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + }, + "folderId": { + "description": "The id of the folder.", + "type": "string", + "x-ms-summary": "Folder Id", + "x-ms-visibility": "advanced" } - }, - "FolderItem": { - "type": "object", - "properties": { - "envelopeId": { - "description": "The id of the envelope.", - "type": "string", - "x-ms-summary": "Envelope id", - "x-ms-visibility": "advanced" + } + }, + "ListEnvelopesResponse": { + "type": "object", + "properties": { + "folderItems": { + "description": "The envelopes within a folder.", + "type": "array", + "items": { + "$ref": "#/definitions/FolderItem" }, - "subject": { - "description": "The subject of the envelope.", - "type": "string", - "x-ms-summary": "Subject", - "x-ms-visibility": "advanced" - } + "x-ms-summary": "Folder items", + "x-ms-visibility": "advanced" } - }, - "ListDocumentsResponse": { - "type": "object", - "properties": { - "envelopeDocuments": { - "description": "The documents attached to the envelope.", - "type": "array", - "items": { - "$ref": "#/definitions/EnvelopeDocument" - }, - "x-ms-summary": "Envelope documents", - "x-ms-visibility": "advanced" - } + } + }, + "FolderItem": { + "type": "object", + "properties": { + "envelopeId": { + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope id", + "x-ms-visibility": "advanced" + }, + "subject": { + "description": "The subject of the envelope.", + "type": "string", + "x-ms-summary": "Subject", + "x-ms-visibility": "advanced" } - }, - "EnvelopeDocument": { - "type": "object", - "properties": { - "documentId": { - "description": "The id of the document.", - "type": "string", - "x-ms-summary": "Document Id", - "x-ms-visibility": "advanced" + } + }, + "ListDocumentsResponse": { + "type": "object", + "properties": { + "envelopeDocuments": { + "description": "The documents attached to the envelope.", + "type": "array", + "items": { + "$ref": "#/definitions/EnvelopeDocument" }, - "name": { - "description": "The name of the document.", - "type": "string", - "x-ms-summary": "Name", - "x-ms-visibility": "advanced" - } + "x-ms-summary": "Envelope documents", + "x-ms-visibility": "advanced" } - }, - "DeclineReasonWithoutType": { - "x-ms-summary": "Decline Reason", - "x-ms-visibility": "advanced" } }, - "x-ms-docs": [ - { - "url": "https://ms.flow.microsoft.com/en-us/blog/docusign-streamline-process/", - "description": "Streamline document signing and on-boarding processes" - } - ], - "x-ms-capabilities": { - "testConnection": { - "operationId": "GetLoginAccounts" + "EnvelopeDocument": { + "type": "object", + "properties": { + "documentId": { + "description": "The id of the document.", + "type": "string", + "x-ms-summary": "Document Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the document.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + } } }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.docusign.com" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.docusign.com/company/privacy-policy" - }, - { - "propertyName": "Categories", - "propertyValue": "Content and Files;Productivity" - } - ] - } \ No newline at end of file + "DeclineReasonWithoutType": { + "x-ms-summary": "Decline Reason", + "x-ms-visibility": "advanced" + } + }, + "x-ms-docs": [ + { + "url": "https://ms.flow.microsoft.com/en-us/blog/docusign-streamline-process/", + "description": "Streamline document signing and on-boarding processes" + } + ], + "x-ms-capabilities": { + "testConnection": { + "operationId": "GetLoginAccounts" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.docusign.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.docusign.com/company/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Productivity" + } + ] +} \ No newline at end of file From a69180d636a5d8512c0fdea422aa56892e056a48 Mon Sep 17 00:00:00 2001 From: VSagar21 <91666311+VSagar21@users.noreply.github.com> Date: Thu, 21 Oct 2021 23:51:46 +0530 Subject: [PATCH 077/219] Enate (#1202) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * The Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows Power Automate Flows to get work from the Enate platform, edit the data, add/download files, update the Enate platform and subscribe to the webhook triggers. We can also create new work items on the Enate platform using these actions in the connector. The Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows Power Automate Flows to get work from the Enate platform, edit the data, add/download files, update the Enate platform and subscribe to the webhook triggers. We can also create new work items on the Enate platform using these actions in the connector. * Updated contents with screenshots * Updated definition file as per comments from PA team --- certified-connectors/Enate/README.md | 74 + .../Enate/apiDefinition.swagger.json | 12364 ++++++++++++++++ certified-connectors/Enate/apiProperties.json | 18 + 3 files changed, 12456 insertions(+) create mode 100644 certified-connectors/Enate/README.md create mode 100644 certified-connectors/Enate/apiDefinition.swagger.json create mode 100644 certified-connectors/Enate/apiProperties.json diff --git a/certified-connectors/Enate/README.md b/certified-connectors/Enate/README.md new file mode 100644 index 0000000000..ea0b68e7b6 --- /dev/null +++ b/certified-connectors/Enate/README.md @@ -0,0 +1,74 @@ + +## Enate + +The Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows Power Automate Flows to get work from the Enate platform, edit the data, add/download files, update the Enate platform and subscribe to the webhook triggers. We can also create new work items on the Enate platform using these actions in the connector. + +## Pre-requisites + +You will need the following to proceed: + +- `Access to the Enate Instance which is hosted in cloud` + +## Supported Operations + +The Enate Connector currently supports the following operations available from Enate Platform: + +Enate Platform – Provides a service for work management of Bots and robots. It consists of several APIs that helps in various operations of Enate data. It receives requests and sends responses using HTTPS protocols with body content in JSON format + +## Supported Actions +- `Authenticate` : Action which will authenticate to the Enate Platform and returns the token. +- `GetCase` : Action which will get the Case details from the Enate Platform. +- `GetFileTags` : Action which will get the details related to the file tags from the Enate Platform. +- `GetFileTag` : Action which will get the details related to that file tag from the Enate Platform. +- `GetContactTags` : Action which will get the details related to the contact tags from the Enate Platform. +- `GetContactTag` : Action which will get the details related to that contact tag from the Enate Platform. +- `GetAction` : Action which will get the Action details from the Enate Platform. +- `GetTicket` : Action which will get the Ticket details from the Enate Platform. +- `GetLaunchableActions` : Action which will get the details related to the launchable actions available in the case from the Enate Platform. +- `CreateSubCase` : Action which will create a sub case in the Enate Platform. +- `GetCommunications` : Action which will get the details of all the communications in the packet from the Enate Platform. +- `GetCommunication` : Action which will get the details of that communication from the Enate Platform. +- `GetMoreWork` : Action which will get the work available in the Enate Platform. +- `IsWorkAvailable` : Action which will check if work is available in the Enate Platform. +- `RejectWork` : Action which will allows a robot to reject a piece of work so that it can be retrieved by a Human user +- `GetScheduleDetailsOfCase` : Action which will get the schedule details associated with the case attribute from the Enate platform +- `LaunchAdhocAction` : Action which will launch an adhoc action in the Enate platform +- `SearchForContact` : Action which searches for an Employee or External contact with the supplied search criteria. +- `CreatePacket` : Action which will create a new packet but does not start the process +- `SetAssignee` : Action which will set the assignee user for the packet +- `GetWebhookSubscriptions` : Action which will get a list of all current WebHook subscriptions in the Enate platform +- `GetWebhookSubscription` : Action which will get a specific WebHook subscription by GUID +- `UnsubscribeWebHookSubscription` : Action which will permanently deletes a WebHook subscription +- `UpdateWebhookSubscription` :Action which updates an existing webhook subscription +- `GetServiceLines` : Action which gets a list of service lined available in the Enate platform +- `CreateCase` : Action which creates a case in the Enate platform +- `UpdateCase` : Action which will update the case and all its data supplied +- `CreateTicket`: Action which will create a ticket in the Enate platform +- `GetContexts` : Action which returns a list of Contexts for a Case or Ticket +- `GetServiceMatrix` : Action which returns the service matrix details +- `UpdateTicket` : Action which will update all its ticket details supplied +- `UpdateAction`: Action which will update all the data supplied +- `SendEmailCommunication` : Action which sends an email from a packet +- `AddPacketCommunication` : Action which Writes a new Packet Communication of type note or Self-Service comment to the Packet based on the authenticated user type +- `SetToDoCase` : Action which will set the status of the case to ToDo +- `UpdateChecklist` : Action which will update an individual checklist item on an Action +- `AttachFile` : Action which will attach a file to the packet in the Enate +- `SetToDoTicket` : Action which will set the status of the ticket to ToDo +- `SetToResolvedCase` : Action which resolves a Case where all the Actions and Sub Cases have already completed, but the Case requires manually resolving. +- `SetToResolvedTicket` : Action which will set the ticket status to resolved +- `ActionResolveSuccessfully` : Action which resolves an Action after it has been successfully completed. + +## Obtaining Token + +The user must use Authenticate action before using any other actions. The Authenticate action will request for the URL, InstanceName, Username and Password for the Enate Instance for authenticating. This will return the AuthToken which can further be used in all other actions. + +![image](https://user-images.githubusercontent.com/91666311/137901482-0c24fe20-0fc9-4ed4-bbf6-d29bab0a8885.png) + +## Sample Flow + +A sample flow which will get the case details from the Enate platform - The HostUrl, InstanceName, Username and password are stored in the variables to provide in the Authenticate action which will return the token that can be used in further actions . The GetCase action takes the Case GUID as an input and returns all the details related to the case. + +![image](https://user-images.githubusercontent.com/91666311/137902399-47a5a7d5-fc62-4a30-9885-ae1890fe132c.png) + + + diff --git a/certified-connectors/Enate/apiDefinition.swagger.json b/certified-connectors/Enate/apiDefinition.swagger.json new file mode 100644 index 0000000000..4a6286d0c2 --- /dev/null +++ b/certified-connectors/Enate/apiDefinition.swagger.json @@ -0,0 +1,12364 @@ +{ + "swagger": "2.0", + "info": { + "title": "Enate", + "description":"Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows to get work from the Enate platform, edit the data and add/download files. We can also create new work items on the Enate platform using these actions of the Enate connector.", + "version": "1.0", + "contact": { + "name": "Enate Support", + "url": "https://helpdesk.enate.net/Enate", + "email": "enate-support@enate.net" + } + }, + "host": "yourhost.yourdomain.com", + "basePath": "/", + "schemes": [ + "https" + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.enate.net/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.enate.net/privacypolicy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management;Communication" + } + ], + "consumes": [], + "produces": [], + "paths": { + "/webapi/Authentication/Login": { + "post": { + "responses": { + "200": { + "description": "User successfully authenticated and {useCookie} was false.", + "schema": { + "type": "string" + } + }, + "204": { + "description": "User successfully authenticated and {useCookie} was true." + }, + "401": { + "description": "Username or Password incorrect, password has expired or account is locked out/disabled. If password has expired the response body will indicate so for all other errors the response body is blank for security reasons." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, EmployeeSelfService, Robot." + } + }, + "summary": "Authenticate", + "description": "Action which will authenticate to the Enate Platform and returns back the token.", + "operationId": "Authenticate", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the Hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "useCookie", + "in": "query", + "required": true, + "type": "boolean", + "description": "If false, gets the token", + "x-ms-summary": "useCookie" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Username": { + "type": "string", + "description": "Username of the Instance", + "title": "Username", + "default": "Username" + }, + "Password": { + "type": "string", + "description": "Password of the Instance", + "title": "Password", + "default": "Password" + } + }, + "required": [ + "Password", + "Username" + ] + } + } + ] + } + }, + "/webapi/Case/Get": { + "get": { + "responses": { + "200": { + "description": "Returns the Case requested in the {caseGUID} parameter.", + "schema": { + "$ref": "#/definitions/FullCasePacket" + } + }, + "404": { + "description": "No Packet can be found with the supplied {caseGUID} or the Packet is \r\n not an Case." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Case." + } + }, + "summary": "GetCase", + "description": "Action which will get the Case details from the Enate Platform.", + "operationId": "GetCase", + "consumes": [], + "produces": ["application/json","text/json","application/xml","text/xml"], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "CaseGUID", + "in": "query", + "required": true, + "type": "string", + "description": "Unique Identifier of the case to be fetched", + "x-ms-summary": "CaseGUID" + } + ] + } + }, + "/webapi/FileTagConfiguration/GetAll": { + "get": { + "responses": { + "200": { + "description": "Returns a list of the File Tags requested.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/BasicFileTag" + } + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, Robot." + } + }, + "summary": "GetFileTags", + "description": "Action which will get the details related to the file tags from the Enate Platform.", + "operationId": "GetFileTags", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/FileTagConfiguration/Get": { + "get": { + "responses": { + "200": { + "description": "Returns the File Tag requested in the {fileTagGuid} parameter.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullFileTag,ConfigurationValidationMessage]" + } + }, + "404": { + "description": "No File Tag can be found with the supplied {fileTagGuid}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, Robot." + } + }, + "summary": "GetFileTag", + "operationId": "GetFileTag", + "description": "Action which will get the details related to the particular file tag from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "FileTagGuid", + "in": "query", + "required": true, + "type": "string", + "description": "Unique identifier of the file tag to fetch the details", + "x-ms-summary": "FileTagGuid" + } + ] + } + }, + "/webapi/ContactTagConfiguration/GetAll": { + "get": { + "responses": { + "200": { + "description": "Returns a list of the Contact Tags requested.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/BasicContactTag" + } + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, EmployeeSelfService, Robot." + } + }, + "summary": "GetContactTags", + "operationId": "GetContactTags", + "description": "Action which will get the details related to the contact tags from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/ContactTagConfiguration/Get": { + "get": { + "responses": { + "200": { + "description": "Returns the Contact Tag requested in the {contactTagGuid} parameter.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullContactTag,ConfigurationValidationMessage]" + } + }, + "404": { + "description": "No Contact Tag can be found with the supplied {contactTagGuid}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, EmployeeSelfService, Robot." + } + }, + "summary": "GetContactTag", + "operationId": "GetContactTag", + "description": "Action which will get the details related to the particular contact tag from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "ContactTagGuid", + "in": "query", + "required": true, + "type": "string", + "description": "Unique identifier of the contact tag to fetch the details", + "x-ms-summary": "ContactTagGuid" + } + ] + } + }, + "/webapi/Action/Get": { + "get": { + "responses": { + "200": { + "description": "Returns the Action requested in the {actionGUID} parameter.", + "schema": { + "$ref": "#/definitions/FullActionPacket" + } + }, + "404": { + "description": "No Packet can be found with the supplied {actionGUID} or the Packet is \r\n not an Action." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Action." + } + }, + "summary": "GetAction", + "operationId": "GetAction", + "description": "Action which will get the Action details from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "ActionGUID", + "in": "query", + "required": true, + "type": "string", + "description": "Unique Identifier of the action to be fetched", + "x-ms-summary": "ActionGUID" + } + ] + } + }, + "/webapi/Ticket/Get": { + "get": { + "responses": { + "200": { + "description": "Returns the Ticket requested in the {ticketGUID} parameter.", + "schema": { + "$ref": "#/definitions/FullTicketPacket" + } + }, + "404": { + "description": "No Packet can be found with the supplied {ticketGUID} or the Packet is \r\n not an Ticket." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Ticket." + } + }, + "summary": "GetTicket", + "operationId": "GetTicket", + "description": "Action which will get the Ticket details from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "TicketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "Unique Identifier of the action to be fetched", + "x-ms-summary": "TicketGUID" + } + ] + } + }, + "/webapi/Case/GetLaunchableActions": { + "get": { + "responses": { + "200": { + "description": "New Action successfully launched.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ActionAttributeForLaunch" + } + } + }, + "404": { + "description": "No Packet can be found with the supplied packetGUID or the Packet is not an Case." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, Robot." + } + }, + "summary": "GetLaunchableActions", + "operationId": "GetLaunchableActions", + "description": "Action which will get the details related to the launchable actions available in the case from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "CaseGUID", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "CaseGUID", + "description": "Unique identifier of the case to fetch the launchable actions" + } + ] + } + }, + "/webapi/Case/LaunchChildCase": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ApiResponse[BasicPacket,PacketValidationMessage]" + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have permission to access this Case." + } + }, + "summary": "CreateSubCase", + "description": "Action which will create a sub case in the Enate Platform.", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "operationId": "CreateSubCase", + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "CaseGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the case", + "x-ms-summary": "CaseGUID" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "CaseAttributeGUID": { + "type": "string", + "description": "A unique identifier of the Case Attribute", + "title": "CaseAttributeGUID" + }, + "CaseTitle": { + "type": "string", + "description": "Title of the Sub Case", + "title": "CaseTitle" + }, + "IndependentCase": { + "type": "string", + "description": "True if case is Independent", + "title": "IndependentCase" + } + }, + "required": [ + "CaseAttributeGUID", + "CaseTitle" + ] + } + } + ] + } + }, + "/webapi/PacketCommunication/GetCommunications": { + "get": { + "responses": { + "200": { + "description": "Returns the communications of the Packet specified in the {packetGUID} parameter.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketCommunicationForList" + } + } + }, + "404": { + "description": "No Packet can be found with the supplied {packetGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet." + } + }, + "summary": "GetCommunications", + "operationId": "GetCommunications", + "description": "Action which will get the details of all the communications in the packet from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet to fetch the communications details", + "x-ms-summary": "PacketGUID" + } + ] + } + }, + "/webapi/PacketCommunication/GetCommunication": { + "get": { + "responses": { + "200": { + "description": "Returns the Communication specified in the {communicationGUID} parameter.", + "schema": { + "$ref": "#/definitions/PacketCommunication" + } + }, + "404": { + "description": "No Communication can be found with the supplied {communicationGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Communication." + } + }, + "summary": "GetCommunication", + "operationId": "GetCommunication", + "description": "Action which will get the details of the particular communication from the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "CommunicationGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the communication", + "x-ms-summary": "CommunicationGUID" + }, + { + "name": "SanitizeHTMLBody", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "description": "When true the HTML body will be parsed to remove potentially dangerous content.", + "x-ms-summary": "SanitizeHTMLBody" + } + ] + } + }, + "/webapi/Work/GetMoreWork": { + "get": { + "responses": { + "200": { + "description": "The most important Packet for the User to work on returned.", + "schema": { + "$ref": "#/definitions/PacketForGetMoreWork" + } + }, + "204": { + "description": "No more work is available for the User/Robot to work on. Please try again later." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, Robot." + } + }, + "summary": "GetMoreWork", + "operationId": "GetMoreWork", + "description": "Action which will get the work available in the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/Work/IsWorkAvailable": { + "get": { + "responses": { + "200": { + "description": "Returns true if there is more work for the User/Robot otherwise returns false.", + "schema": { + "type": "boolean" + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, Robot." + } + }, + "summary": "IsWorkAvailable", + "operationId": "IsWorkAvailable", + "description": "Action which will check if work is available in the Enate Platform.", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/Work/RejectWork": { + "post": { + "responses": { + "200": { + "description": "The work has been unassigned from the Robot and will not be given to any Robot resource." + }, + "404": { + "description": "No Packet can be found with the supplied {packetGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet or it is not currently assigned to them." + } + }, + "summary": "RejectWork", + "operationId": "RejectWork", + "description": "Action which will allows a Robot to reject a piece of work so that it can be retrieved by a Human user", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet to be rejected", + "x-ms-summary": "PacketGUID" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "RejectReason": { + "type": "string", + "description": "Reason for rejecting the work", + "title": "RejectReason" + } + }, + "required": [ + "RejectReason" + ] + } + } + ] + } + }, + "/webapi/Schedule/GetScheduleFromCaseAttributeVersion": { + "get": { + "responses": { + "200": { + "description": "Returns the specific Schedule.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullSchedule,ConfigurationValidationMessage]" + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, EmployeeSelfService, Robot." + } + }, + "summary": "GetScheduleDetailsOfCase", + "operationId": "GetScheduleDetailsOfCase", + "description": "Action which will get the schedule details associated with the case attribute from the Enate platform", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "CaseAttributeVersionGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the Case Attribute Version to which Schedule is attached", + "x-ms-summary": "CaseAttributeVersionGUID" + } + ] + } + }, + "/webapi/Case/LaunchAdhocAction": { + "post": { + "responses": { + "200": { + "description": "Action(s) sucessfully launched and a list of guids in response.", + "schema": { + "$ref": "#/definitions/ApiResponse[List[LaunchAdHocActionResult],PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {casePacket}.GUID or the Packet \r\n is not a CASE." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Action." + } + }, + "summary": "LaunchAdhocAction", + "operationId": "LaunchAdhocAction", + "description": "Action which will launch an adhoc action in the Enate platform", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier of the case", + "title": "CaseGUID" + }, + "ActionAttributeGUID": { + "type": "string", + "description": "A unique identifier of the Action Attribute", + "title": "ActionAttributeGUID" + }, + "ActionOverrideInstruction": { + "type": "string", + "description": "Instruction for the action", + "title": "ActionOverrideInstruction" + }, + "ActionOverrideDueDate": { + "type": "string", + "description": "Override Due Date of the action", + "title": "ActionOverrideDueDate" + }, + "NumberOfTimesToLaunch": { + "type": "integer", + "format": "int32", + "description": "Number of times the actions to be launched", + "title": "NumberOfTimesToLaunch" + } + }, + "required": [ + "GUID", + "ActionOverrideDueDate", + "ActionAttributeGUID", + "ActionOverrideInstruction", + "NumberOfTimesToLaunch" + ] + } + } + ] + } + }, + "/webapi/Contact/SearchForContact": { + "post": { + "responses": { + "200": { + "description": "Search successful. List of Employees and External Contacts returned.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/CaseFlowContact" + } + } + }, + "404": { + "description": "No Packet can be found with the supplied {packetGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet." + } + }, + "summary": "SearchForContact", + "operationId": "SearchForContact", + "description": "Action which searches for an Employee or External contact with the supplied search criteria.", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the Packet", + "x-ms-summary": "PacketGUID" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Search": { + "type": "string", + "description": "The email address, words or phrase that should be searched for.", + "title": "Search" + }, + "MaximumResults": { + "type": "integer", + "format": "int32", + "description": "Number of Maximum Results", + "title": "MaximumResults" + } + }, + "required": [ + "MaximumResults", + "Search" + ] + } + } + ] + } + }, + "/webapi/Packet/CreatePacket": { + "post": { + "responses": { + "200": { + "description": "Packet successfully created. Basic details returned in message body.", + "schema": { + "$ref": "#/definitions/NewPacketResult" + } + }, + "403": { + "description": "The authenticated user does not have permission to create Packets in this Process." + }, + "404": { + "description": "No Process Version Instance can be found with the supplied {request}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + } + }, + "summary": "CreatePacket", + "operationId": "CreatePacket", + "description": "Action which will create a new packet but does not start the process", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "ProcessVersionInstanceGUID": { + "type": "string", + "description": "A unique identifier of the Process Version Instance", + "title": "ProcessVersionInstanceGUID" + } + }, + "required": [ + "ProcessVersionInstanceGUID" + ] + } + } + ] + } + }, + "/webapi/Packet/SetAssignee": { + "post": { + "responses": { + "204": { + "description": "Packet successfully reassigned." + }, + "403": { + "description": "The authenticated user does not have permission to reassign packets or does not have access to the Packet in {packetGUID}." + }, + "404": { + "description": "No User can be found with the supplied {assignmentRequest}.UserGUID, or no Packet can be found with the supplied {packetGUID} or the Packet is not a CaseFlow Packet." + }, + "409": { + "description": "{forceAssign} is false and packet is already assigned to another user" + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + } + }, + "summary": "SetAssignee", + "operationId": "SetAssignee", + "description": "Action which will set the assignee user for the packet", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet", + "x-ms-summary": "PacketGUID" + }, + { + "name": "ForceAssign", + "in": "query", + "required": true, + "type": "boolean", + "description": "Forces the assignment to user if already assigned to another user.", + "x-ms-summary": "ForceAssign", + "default": false + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "UserGUID": { + "type": "string", + "description": "A unique identifier of the User", + "title": "UserGUID" + }, + "Note": { + "type": "string", + "description": "Note for the packet", + "title": "Note" + } + }, + "required": [ + "Note", + "UserGUID" + ] + } + } + ] + } + }, + "/webapi/WebHookSubscription/GetAllWebhookSubscriptions": { + "get": { + "responses": { + "200": { + "description": "Returns a list of WebHook subscriptions", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/WebHookSubscription" + } + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "summary": "GetWebhookSubscriptions", + "operationId": "GetWebhookSubscriptions", + "description": "Action which will get a list of all current WebHook subscriptions in the Enate platform", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/WebHookSubscription/GetWebhookSubscription": { + "get": { + "responses": { + "200": { + "description": "Returns details of a WebHook subscription", + "schema": { + "$ref": "#/definitions/WebHookSubscription" + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "summary": "GetWebhookSubscription", + "operationId": "GetWebhookSubscription", + "description": "Action which will get a specific WebHook subscription by GUID", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "WebhookSubscriptionGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the WebHook Subscription", + "x-ms-summary": "WebhookSubscriptionGUID" + } + ] + } + }, + "/webapi/WebHookSubscription/Unsubscribe": { + "post": { + "responses": { + "200": { + "description": "Successfully deleted", + "schema": { + "$ref": "#/definitions/ApiResponse[Boolean,ConfigurationValidationMessage]" + } + }, + "404": { + "description": "WebHook subscription not found" + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "summary": "UnsubscribeWebHookSubscription", + "operationId": "UnsubscribeWebHookSubscription", + "description": "Action which will permanently deletes a WebHook subscription", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "AuthToken", + "description": "Token obtained from authentication" + }, + { + "name": "webHookSubscriptionGUID", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "webHookSubscriptionGUID", + "description": "A unique identifier of the WebHook Subscription" + } + ] + } + }, + "/webapi/WebHookSubscription/UpdateWebhookSubscription": { + "post": { + "responses": { + "200": { + "description": "Returns the updated WebHook subscription", + "schema": { + "$ref": "#/definitions/ApiResponse[WebHookSubscription,ConfigurationValidationMessage]" + } + }, + "404": { + "description": "WebHook subscription not found" + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "summary": "UpdateWebhookSubscription", + "operationId": "UpdateWebhookSubscription", + "description": "Action which updates an existing webhook subscription", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier of the webhook", + "title": "GUID" + }, + "Webhook": { + "type": "string", + "description": "Webhook", + "title": "Webhook" + }, + "FilterObjectGUID": { + "type": "string", + "description": "FilterObjectGUID of the webhook", + "title": "FilterObjectGUID" + }, + "FilterObjectType": { + "type": "string", + "description": "FilterObjectType of the webhook", + "title": "FilterObjectType" + }, + "SubscriberURL": { + "type": "string", + "description": "SubscriberURL", + "title": "SubscriberURL" + } + } + } + } + ] + } + }, + "/webapi/ServiceLine/GetAll": { + "get": { + "responses": { + "200": { + "description": "Returns a list of the Service Lines requested.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/BasicServiceLine" + } + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "summary": "GetServiceLines", + "operationId": "GetServiceLines", + "description": "Action which gets a list of service lined available in the Enate platform", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + } + ] + } + }, + "/webapi/Case/Create": { + "post": { + "responses": { + "200": { + "description": "New Case successfully created. Returns the new Case.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullCasePacket,PacketValidationMessage]" + } + }, + "403": { + "description": "User is not allowed to Create Packets or User is a self service user and Category is\r\n not valid for Self Service." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + } + }, + "summary": "CreateCase", + "operationId": "CreateCase", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "CaseAttributeVersionGUID": { + "type": "string", + "description": "A unique identifer of the CaseAttributeVersion", + "title": "CaseAttributeVersionGUID" + }, + "Title": { + "type": "string", + "description": "Title of the case", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the case", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "SchedulePeriodGUID": { + "type": "string", + "description": "A unique identifier of the SchedulePeriod", + "title": "SchedulePeriodGUID" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean value to check the status of the tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier of the case", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Title", + "Description" + ] + } + } + ], + "description": "Action which creates a case in the Enate platform" + } + }, + "/webapi/Case/Update": { + "post": { + "responses": { + "200": { + "description": "case successfully updated and an updated copy of the case is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullCasePacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {casePacket}.GUID or the Packet \r\n is not a case." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Case." + } + }, + "summary": "UpdateCase", + "operationId": "UpdateCase", + "description": "Action which will update the case and all its data supplied", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the case", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the case", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "AffectedRecordCount": { + "type": "integer", + "format": "int32", + "description": "Number of records affected", + "title": "AffectedRecordCount", + "default": 1 + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachemnt", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean to check status of tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ] + } + }, + "/webapi/Ticket/Create": { + "post": { + "responses": { + "200": { + "description": "New Ticket successfully created. Returns the new Ticket.", + "schema": { + "$ref": "#/definitions/TicketPacket" + } + }, + "403": { + "description": "User is not allowed to Create Packets or User is a self service user and Category is not \r\n valid for Self Service." + }, + "404": { + "description": "No Ticket Category can be found with the supplied {ticket}.CategoryGUID." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + } + }, + "summary": "CreateTicket", + "operationId": "CreateTicket", + "description": "Action which will create a ticket in the Enate platform", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "TicketAttributeVersionGUID": { + "type": "string", + "description": "A unique identifier of the TicketAttributeVersion", + "title": "TicketAttributeVersionGUID" + }, + "Title": { + "type": "string", + "description": "Title of the ticket", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the ticket", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean value to check the status of the tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Title", + "Description" + ] + } + } + ] + } + }, + "/webapi/Packet/GetContexts": { + "get": { + "responses": { + "200": { + "description": "Returns a list of Contexts for a Case or Ticket.", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/ContextCustomerLevel" + } + } + }, + "404": { + "description": "No Packet can be found with the supplied {caseflowPacketGUID} or thePacket is not a Case or Ticket." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) Operational, EmployeeSelfService, Robot." + } + }, + "summary": "GetContexts", + "operationId": "GetContexts", + "description": "Action which returns a list of Contexts for a Case or Ticket", + "consumes": [ + + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "ProcessType", + "in": "query", + "required": true, + "type": "string", + "description": "What type of Process should the context information be returned for (Case/Ticket)", + "x-ms-summary": "ProcessType" + } + ] + } + }, + "/webapi/ServiceMatrix/GetServiceMatrix": { + "post": { + "responses": { + "200": { + "description": "Returns Service Matrix Details.", + "schema": { + "$ref": "#/definitions/ServiceMatrixResults" + } + }, + "400": { + "description": "ServiceLineGUID cannot be an Empty Guid." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have 1 or more of the role(s) ProcessBuilder." + } + }, + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "ServiceLineGUID": { + "type": "string", + "description": "A unique identifier of the Service Line", + "title": "ServiceLineGUID" + }, + "ContractNamesFilter": { + "type": "array", + "items": { + "type": "string", + "description": "Name of the Contract to be filtered", + "title": "" + }, + "description": "ContractNamesFilter" + }, + "CustomerNamesFilter": { + "type": "array", + "items": { + "type": "string", + "description": "Name of the Customer to be filtered", + "title": "" + }, + "description": "CustomerNamesFilter" + }, + "ServiceNamesFilter": { + "type": "array", + "items": { + "type": "string", + "description": "Name of the Service to be filtered", + "title": "" + }, + "description": "ServiceNamesFilter" + } + }, + "required": [ + "ServiceLineGUID" + ] + } + } + ], + "summary": "GetServiceMatrix", + "operationId": "GetServiceMatrix", + "description": "Action which returns the service matrix details" + } + }, + "/webapi/Ticket/Update": { + "post": { + "responses": { + "200": { + "description": "Ticket successfully updated and an updated copy of the Ticket is in the response body.", + "schema": { + "$ref": "#/definitions/TicketPacketUpdated" + } + }, + "204": { + "description": "Ticket successfully updated." + }, + "404": { + "description": "No Packet can be found with the supplied {ticket}.GUID or the Packet is \r\n not a Ticket." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have permission to access this Ticket or it is not currently assigned to them." + } + }, + "summary": "UpdateTicket", + "operationId": "UpdateTicket", + "description": "Action which will update all its ticket details supplied", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the ticket", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the ticket", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the attachment", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean value to check the status of the tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description" + ] + } + } + ] + } + }, + "/webapi/Action/Update": { + "post": { + "responses": { + "200": { + "description": "action successfully updated and an updated copy of the action is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullActionPacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {action}.GUID or the Packet \r\n is not an action." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Action." + } + }, + "summary": "UpdateAction", + "operationId": "UpdateAction", + "description": "Action which will update all the data supplied", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the action", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the action", + "title": "Description" + }, + "OverrideDueDate": { + "type": "string", + "description": "Override Due Date of the action", + "title": "OverrideDueDate" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TemporaryFileGUID": { + "type": "string", + "description": "A unique identifier of File", + "title": "TemporaryFileGUID" + }, + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean value that checks the status of tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Title", + "Description" + ] + } + } + ] + } + }, + "/webapi/PacketCommunication/SendEmailCommunication": { + "post": { + "responses": { + "200": { + "description": "Email successfully sent and new Packet Communication GUID returned.", + "schema": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + }, + "404": { + "description": "No Packet can be found with the supplied {packetGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet." + } + }, + "summary": "SendEmailCommunication", + "operationId": "SendEmailCommunication", + "description": "Action which sends an email from a packet", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet", + "x-ms-summary": "PacketGUID" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "Important": { + "type": "string", + "description": "Boolean to set the importance of mail", + "title": "Important" + }, + "Subject": { + "type": "string", + "description": "Subject of the mail", + "title": "Subject" + }, + "Body": { + "type": "string", + "description": "Body of the email", + "title": "Body" + }, + "CommunicationType": { + "type": "string", + "description": "Type of communication", + "title": "CommunicationType", + "default": "EmailOutgoing" + }, + "Attachments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Filename": { + "type": "string", + "description": "Filename of the attachment", + "title": "Filename" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "GUID" + }, + "Name": { + "type": "string", + "description": "Name" + } + } + }, + "description": "Tags" + } + } + }, + "description": "Attachments" + }, + "From": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "EmailAddress", + "title": "EmailAddress" + } + }, + "description": "From" + }, + "To": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "EmailAddress", + "title": "EmailAddress" + } + } + }, + "description": "To" + }, + "Cc": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "EmailAddress", + "title": "EmailAddress" + } + } + }, + "description": "Cc" + }, + "Bcc": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EmailAddress": { + "type": "string", + "description": "EmailAddress", + "title": "EmailAddress" + } + } + }, + "description": "Bcc" + }, + "IsResolutionCommunication": { + "type": "string", + "description": "Boolean to set the Communication Resolution", + "title": "IsResolutionCommunication" + }, + "IsSystemGenerated": { + "type": "string", + "description": "Boolean to check if mail is system generated", + "title": "IsSystemGenerated" + } + } + } + } + ] + } + }, + "/webapi/PacketCommunication/AddPacketCommunication": { + "post": { + "responses": { + "200": { + "description": "New communication successfully added to Packet. Returns the new communication.", + "schema": { + "$ref": "#/definitions/PacketCommunication" + } + }, + "404": { + "description": "No Packet can be found with the supplied {packetGUID}." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet." + } + }, + "summary": "AddPacketCommunication", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet", + "x-ms-summary": "PacketGUID" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "Body": { + "type": "string", + "description": "Body of the mail", + "title": "Body" + }, + "CommunicationType": { + "type": "string", + "description": "Type of communication", + "title": "CommunicationType" + }, + "IsResolutionCommunication": { + "type": "string", + "description": "Boolean to check Communication Resolution", + "title": "IsResolutionCommunication" + }, + "IsSystemGenerated": { + "type": "string", + "description": "Boolean to check if comunication is SystemGenerated", + "title": "IsSystemGenerated" + } + } + } + } + ], + "operationId": "AddPacketCommunication", + "description": "Action which Writes a new Packet Communication of type note or Self Service comment to the Packet based on the authenticated user type" + } + }, + "/webapi/Case/SetToDo": { + "post": { + "responses": { + "200": { + "description": "Case successfully updated and an updated copy of the Case is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullCasePacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {casePacket}.GUID or the Packet \r\n is not a Case." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Case." + } + }, + "summary": "SetToDoCase", + "operationId": "SetToDoCase", + "description": "Action which will set the status of the case to ToDo", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the case", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the case", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "AffectedRecordCount": { + "type": "integer", + "format": "int32", + "description": "Number of records affected", + "title": "AffectedRecordCount" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean to check the status of the tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ] + } + }, + "/webapi/Action/UpdateChecklist": { + "post": { + "responses": { + "204": { + "description": "Checklist successfully updated." + }, + "404": { + "description": "No Packet can be found with the supplied actionGUID or the Packet is not an Action." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "400": { + "description": "Data validation error. Details can be found in Reason header field and response body." + }, + "403": { + "description": "The authenticated user does not have permission to access this Action or it is not currently assigned to them." + } + }, + "summary": "UpdateChecklist", + "operationId": "UpdateChecklist", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "InstanceName", + "description": "Instance name of the site" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "x-ms-summary": "AuthToken", + "description": "Token obtained from authentication" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier to update checklist", + "title": "GUID" + }, + "Decision": { + "type": "string", + "description": "Decision of the checklist", + "title": "Decision", + "default": "None" + }, + "DecisionDescription": { + "type": "string", + "description": "Decision Description of the checklist", + "title": "DecisionDescription" + }, + "Note": { + "type": "string", + "description": "Note for the checklist", + "title": "Note" + }, + "PeerReviewNote": { + "type": "string", + "description": "Peer Review Note for the checklist", + "title": "PeerReviewNote" + } + }, + "required": [ + "GUID" + ] + } + } + ], + "description": "Action which will update an individual checklist item on an Action" + } + }, + "/webapi/Packet/AttachFile": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Packet." + } + }, + "summary": "AttachFile", + "operationId": "AttachFile", + "description": "Action which will attach a file to the packet in the Enate", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "PacketGUID", + "in": "query", + "required": true, + "type": "string", + "description": "A unique identifier of the packet", + "x-ms-summary": "PacketGUID" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileTagGUID": { + "type": "string", + "description": "A unique identifier of the FileTa", + "title": "FileTagGUID" + } + } + }, + "description": "Tags" + } + } + } + } + ] + } + }, + "/webapi/Ticket/SetToDo": { + "post": { + "responses": { + "200": { + "description": "Ticket successfully updated and an updated copy of the Ticket is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullTicketPacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {ticket}.GUID or the Packet \r\n is not a Ticket." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Ticket." + } + }, + "summary": "SetToDoTicket", + "operationId": "SetToDoTicket", + "description": "Action which will set the status of the ticket to ToDo", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the ticket", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the ticket", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "SchedulePeriodGUID": { + "type": "string", + "description": "A unique identifier of SchedulePeriod", + "title": "SchedulePeriodGUID" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source", + "default": "AttachedToPacket" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean value to check status of tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ] + } + }, + "/webapi/Case/SetResolved": { + "post": { + "responses": { + "200": { + "description": "Case successfully updated and an updated copy of the Case is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullCasePacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {casePacket}.GUID or the Packet \r\n is not a Case." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Case." + } + }, + "summary": "SetToResolvedCase", + "operationId": "SetToResolvedCase", + "description": "Action which resolves a Case where all the Actions and Sub Cases have already completed, but the Case requires manually resolving.", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "Title": { + "type": "string", + "description": "Title of the case", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the case", + "title": "Description" + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "AffectedRecordCount": { + "type": "integer", + "format": "int32", + "description": "Number of records affected", + "title": "AffectedRecordCount", + "default": 1 + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean to check the status of tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ] + } + }, + "/webapi/Ticket/Resolve": { + "post": { + "responses": { + "200": { + "description": "Ticket successfully updated and an updated copy of the Ticket is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullTicketPacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {ticket}.GUID or the Packet \r\n is not a Ticket." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Ticket." + } + }, + "summary": "SetToResolvedTicket", + "operationId": "SetToResolvedTicket", + "description": "Action which will set the ticket status to resolved", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "TicketCategoryAttribute": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + }, + "description": "TicketCategoryAttribute" + }, + "Title": { + "type": "string", + "description": "Title for the ticket", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description for the ticket", + "title": "Description" + }, + "AffectedRecordCount": { + "type": "integer", + "format": "int32", + "description": "Number of records affected", + "title": "AffectedRecordCount", + "default": 1 + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean to check the status of the tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ] + } + }, + "/webapi/Action/ResolveSuccessfully": { + "post": { + "responses": { + "200": { + "description": "Action successfully updated and an updated copy of the Action is in the response body.", + "schema": { + "$ref": "#/definitions/ApiResponse[FullActionPacket,PacketValidationMessage]" + } + }, + "404": { + "description": "No Packet can be found with the supplied {action}.GUID or the Packet \r\n is not a Action." + }, + "401": { + "description": "No authentication token supplied. Authentication can be provided in the 'authToken' Query String, 'apikey' HTTP Header or by returning the cookie supplied in the response to the Login method of the Authentication controller." + }, + "403": { + "description": "The authenticated user does not have permission to access this Action." + } + }, + "summary": "ActionResolveSuccessfully", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "HostUrl", + "in": "query", + "required": true, + "type": "string", + "description": "Url of the hosted site", + "x-ms-summary": "HostUrl" + }, + { + "name": "InstanceName", + "in": "query", + "required": true, + "type": "string", + "description": "Instance name of the site", + "x-ms-summary": "InstanceName" + }, + { + "name": "AuthToken", + "in": "query", + "required": true, + "type": "string", + "description": "Token obtained from authentication", + "x-ms-summary": "AuthToken" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + }, + "RobotRejectedReason": { + "type": "string", + "description": "Reason for rejecting", + "title": "RobotRejectedReason" + }, + "Title": { + "type": "string", + "description": "Title of the action", + "title": "Title" + }, + "Description": { + "type": "string", + "description": "Description of the action", + "title": "Description" + }, + "AffectedRecordCount": { + "type": "integer", + "format": "int32", + "description": "Number of records affected", + "title": "AffectedRecordCount", + "default": 1 + }, + "DataFields": { + "type": "object", + "properties": {}, + "description": "DataFields" + }, + "Files": { + "type": "array", + "items": { + "type": "object", + "properties": { + "FileName": { + "type": "string", + "description": "FileName of the attachment", + "title": "FileName" + }, + "Data": { + "type": "string", + "description": "File Data of the attachment", + "title": "Data" + }, + "Note": { + "type": "string", + "description": "Note for the file", + "title": "Note" + }, + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Source": { + "type": "string", + "description": "Source of the file", + "title": "Source" + } + } + }, + "description": "Files" + }, + "Contacts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Retired": { + "type": "boolean", + "description": "Retired" + }, + "GUID": { + "type": "string", + "description": "GUID" + } + } + }, + "description": "Tags" + }, + "Retired": { + "type": "string", + "description": "Boolean values which check the status of tags", + "title": "Retired" + }, + "GUID": { + "type": "string", + "description": "A unique identifier", + "title": "GUID" + } + } + }, + "description": "Contacts" + } + }, + "required": [ + "Description", + "Title" + ] + } + } + ], + "operationId": "ActionResolveSuccessfully", + "description": "Action which resolves an Action after it has been successfully completed." + } + } + }, + "definitions": { + "FullCasePacket": { + "description": "All data about a Case Packet.", + "type": "object", + "properties": { + "SchedulePeriodGUID": { + "format": "uuid", + "description": "The Schedule Period Unique Identifier.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "EndDate": { + "format": "date-time", + "description": "The date/time that the Packet was Closed.", + "type": "string" + }, + "CustomerGUID": { + "format": "uuid", + "description": "The unique identifier of the Customer that the Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ContractGUID": { + "format": "uuid", + "description": "The unique identifier of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceGUID": { + "format": "uuid", + "description": "The unique identifier of the Service under the Contract that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceLineGUID": { + "format": "uuid", + "description": "The unique identifier of the Service Line that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ResolutionMethod": { + "$ref": "#/definitions/PacketResolutionMethod" + }, + "ResolvedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that resolved the Packet." + }, + "Files": { + "description": "The list of Files associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketFile" + } + }, + "Contacts": { + "description": "The list of Contacts associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketContact" + } + }, + "Defects": { + "description": "The list of Defects associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketDefect" + } + }, + "StartDate": { + "format": "date-time", + "description": "The date/time that the Packet was created.", + "type": "string" + }, + "CustomerName": { + "description": "The name of the Customer that the Packet is for.", + "type": "string" + }, + "ContractName": { + "description": "The name of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string" + }, + "ServiceName": { + "description": "The name of the Service under the Contract that this Packet is for.", + "type": "string" + }, + "ServiceLineName": { + "description": "The name of the Service Line that this Packet is for.", + "type": "string" + }, + "ProcessTypeName": { + "description": "The name of the Process Type within the Service Line that this Packet is for.", + "type": "string" + }, + "Reference": { + "description": "The unique and human-readable reference of the Packet.", + "type": "string" + }, + "Title": { + "description": "The Title of the Packet.", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PacketStatus" + }, + "LastUpdatedByUserOn": { + "format": "date-time", + "description": "The date/time that the Packet was updated by the User identified in .", + "type": "string" + }, + "DueDate": { + "format": "date-time", + "description": "The date/time that the Packet is currently due to be Resolved to meet SLA.", + "type": "string" + }, + "ResolvedOn": { + "format": "date-time", + "description": "The date/time that the Packet was Resolved.", + "type": "string" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "OwnerUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that is currently responsible for the Packet even if it is not currently assigned to them to work on." + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "PacketResolutionMethod": { + "enum": [ + "CommunicationWithServiceRecipient", + "CaseLaunched", + "NoCustomerResponse", + "SplitIntoMultipleTickets", + "Merged", + "AllChildWorkItemsClosed", + "Cancelled", + "DoneSuccessfully", + "NotDoneSuccessfully", + "CaseCompleted", + "Rework", + "Rejected", + "RejectedAsSpam", + "RejectedUnconfiguredEmailAddress" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "CommunicationWithServiceRecipient", + "Value": 0, + "Description": "Communication with Service Recipient" + }, + { + "Name": "CaseLaunched", + "Value": 1, + "Description": "New Case launched" + }, + { + "Name": "NoCustomerResponse", + "Value": 2, + "Description": "No customer response" + }, + { + "Name": "SplitIntoMultipleTickets", + "Value": 3, + "Description": "Split into multiple Tickets" + }, + { + "Name": "Merged", + "Value": 4, + "Description": "Merged into another Work Item" + }, + { + "Name": "AllChildWorkItemsClosed", + "Value": 5, + "Description": "All Child Work Items Closed" + }, + { + "Name": "Cancelled", + "Value": 6, + "Description": "Cancelled" + }, + { + "Name": "DoneSuccessfully", + "Value": 7, + "Description": "Done successfully" + }, + { + "Name": "NotDoneSuccessfully", + "Value": 9, + "Description": "Not done successfully" + }, + { + "Name": "CaseCompleted", + "Value": 11, + "Description": "Case completed" + }, + { + "Name": "Rework", + "Value": 12, + "Description": "Rework" + }, + { + "Name": "Rejected", + "Value": 100, + "Description": "Rejected" + }, + { + "Name": "RejectedAsSpam", + "Value": 101, + "Description": "Rejected as SPAM" + }, + { + "Name": "RejectedUnconfiguredEmailAddress", + "Value": 102, + "Description": "Rejected due to no configured email address matching recipient address" + } + ] + }, + "UserForList": { + "description": "Basic details of a user as shown in Enate GUI.", + "required": [ + "HasProfilePicture", + "UserType", + "IsMe", + "Retired" + ], + "type": "object", + "properties": { + "FullName": { + "description": "Full name of the user.", + "type": "string" + }, + "EmailAddress": { + "description": "Email address of the user.", + "type": "string" + }, + "HasProfilePicture": { + "description": "Does the user have a profile picture available.", + "type": "boolean" + }, + "UserType": { + "$ref": "#/definitions/UserTypes" + }, + "IsMe": { + "description": "Identifies if the User represents the currently authenticated User.", + "type": "boolean", + "readOnly": true + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ExistingPacketFile": { + "description": "Details of a file attached to a Packet either directly or via Email.", + "required": [ + "Source", + "FileSize" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "Source": { + "$ref": "#/definitions/PacketFileSource" + }, + "FileName": { + "description": "The name of the File.", + "maxLength": 1024, + "minLength": 0, + "type": "string" + }, + "Note": { + "description": "A note to describe the File.", + "type": "string" + }, + "Tags": { + "description": "A collection of Tags to attribute to the new File.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketFileTag" + } + }, + "LastUpdatedOn": { + "format": "date-time", + "description": "The date/time that the File was added or had it's metadata updated by the User identified in .", + "type": "string" + }, + "LastUpdatedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that added the file or most recently updated it's metadata." + }, + "FileSize": { + "format": "int32", + "description": "The size of the file.", + "type": "integer" + }, + "Packet": { + "$ref": "#/definitions/BasicPacket", + "description": "The Packet that the Email is associated with when {Enate.Core.Contracts.DTOs.ExistingPacketFile.Source} is {Enate.Core.Contracts.Enumerations.PacketFileSource.EmailAttachment}." + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "PacketFileSource": { + "enum": [ + "AttachedToPacket", + "EmailAttachment" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "AttachedToPacket", + "Value": 0, + "Description": "Attached to Packet" + }, + { + "Name": "EmailAttachment", + "Value": 1, + "Description": "Attached to an Email" + } + ] + }, + "ExistingPacketContact": { + "description": "Details of a contact attached to a Packet.", + "required": [ + "UserRetired", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/UserForList" + } + ], + "properties": { + "AddedOn": { + "format": "date-time", + "description": "The date/time that the Contact was added by the User identified in .", + "type": "string" + }, + "AddedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that added the Contact." + }, + "UserRetired": { + "description": "Is the User logically deleted.", + "type": "boolean", + "readOnly": true + }, + "Retired": { + "type": "boolean" + }, + "FullName": { + "description": "Full name of the user.", + "type": "string" + }, + "EmailAddress": { + "description": "Email address of the user.", + "type": "string" + }, + "HasProfilePicture": { + "description": "Does the user have a profile picture available.", + "type": "boolean" + }, + "UserType": { + "$ref": "#/definitions/UserTypes" + }, + "IsMe": { + "description": "Identifies if the User represents the currently authenticated User.", + "type": "boolean", + "readOnly": true + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ExistingPacketDefect": { + "description": "Details of a defect attached to a Packet.", + "required": [ + "Resolved" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "Packet": { + "$ref": "#/definitions/BasicPacket", + "description": "The Packet that the Defect is associated with." + }, + "AddedOn": { + "format": "date-time", + "description": "The date/time that the Defect was added by the User identified in .", + "type": "string" + }, + "AddedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that added the Defect." + }, + "Description": { + "description": "A description of the Defect.", + "type": "string" + }, + "AffectedRecordCount": { + "format": "int32", + "description": "The number of records affected by the Defect.", + "type": "integer" + }, + "Resolved": { + "description": "Indicates if the Defect has been resolved or not.", + "type": "boolean" + }, + "LoggedOnStep": { + "format": "int32", + "description": "The Step Number the Case was on when the Defect was logged.", + "type": "integer" + }, + "DefectPartyAtFaultOption": { + "$ref": "#/definitions/BasicLocalisedName", + "description": "The Party that caused the Defect." + }, + "DefectCategory": { + "$ref": "#/definitions/DefectCategoryForPacket", + "description": "The Category of Defect." + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "BasicLocalisedName": { + "description": "Generic object to return the Name and Description of a related object.", + "required": [ + "Name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "DefectCategoryForPacket": { + "description": "Basic GUID, Name, Description information for a ServiceLine.", + "required": [ + "Name" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedName" + } + ], + "properties": { + "ParentDefectCategory": { + "$ref": "#/definitions/DefectCategoryForPacket", + "description": "The Parent of this Defect Category." + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "PacketStatus": { + "enum": [ + "Draft", + "ToDo", + "InProgress", + "Waiting", + "Resolved", + "Closed" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Draft", + "Value": 0, + "Description": "Draft" + }, + { + "Name": "ToDo", + "Value": 1, + "Description": "To do" + }, + { + "Name": "InProgress", + "Value": 2, + "Description": "In progress" + }, + { + "Name": "Waiting", + "Value": 3, + "Description": "Waiting" + }, + { + "Name": "Resolved", + "Value": 4, + "Description": "Resolved" + }, + { + "Name": "Closed", + "Value": 5, + "Description": "Closed" + } + ] + }, + "PacketStartedByMethod": { + "enum": [ + "ByWorkflow", + "ByOperationalUser", + "BySelfServiceUser", + "ByRobotUser", + "ByEmail", + "FromTicket", + "ByOperationalUserInBulk", + "ByRobotUserInBulk", + "BySchedule" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "ByWorkflow", + "Value": 0, + "Description": "An Action or Case started by a Case" + }, + { + "Name": "ByOperationalUser", + "Value": 1, + "Description": "A Case, Ticket, Sub-Case or Ad-hoc Action started by a User" + }, + { + "Name": "BySelfServiceUser", + "Value": 2, + "Description": "A Ticket started by a self service user" + }, + { + "Name": "ByRobotUser", + "Value": 3, + "Description": "A Case, Ticket, Sub-Case or Ad-hoc Action started by a Robot" + }, + { + "Name": "ByEmail", + "Value": 4, + "Description": "A Case or Ticket started by an email" + }, + { + "Name": "FromTicket", + "Value": 5, + "Description": "A Case or (split) Ticket started by a User or Robot" + }, + { + "Name": "ByOperationalUserInBulk", + "Value": 6, + "Description": "A Case or Ticket started in bulk by a User" + }, + { + "Name": "ByRobotUserInBulk", + "Value": 7, + "Description": "A Case or Ticket started in bulk by a Robot" + }, + { + "Name": "BySchedule", + "Value": 8, + "Description": "A Case or Ticket started by a Schedule" + } + ] + }, + "UserTypes": { + "enum": [ + "None", + "Operational", + "EmployeeSelfService", + "Robot" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "None", + "Value": 0, + "Description": "None" + }, + { + "Name": "Operational", + "Value": 1, + "Description": "Operational" + }, + { + "Name": "EmployeeSelfService", + "Value": 2, + "Description": "Employee Self Service" + }, + { + "Name": "Robot", + "Value": 8, + "Description": "Robot" + } + ] + }, + "BaseObject": { + "description": "Base for all Enate DTOs.", + "required": [ + "GUID" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "BasicFileTag": { + "description": "Abridged version of FullFileTag DTO for use in lists.", + "required": [ + "Name", + "IsHidden", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "IsHidden": { + "description": "Whether the Files with this tag are hidden from Users. Hidden files are used for integration between systems only.", + "type": "boolean" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "BasicLocalisedNameAndDescription": { + "description": "Generic object to return the Name and Description of a related object.", + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "FullFileTag": { + "description": "Abridged version of FullFileTag DTO for use in lists.", + "required": [ + "Name", + "IsHidden", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "IsHidden": { + "description": "Whether the Files with this tag are hidden from Users. Hidden files are used for integration between systems only.", + "type": "boolean" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ApiResponse[FullFileTag,ConfigurationValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullFileTag", + "description": "The created/updated object." + } + } + }, + "ConfigurationValidationMessage": { + "description": "A validation message that relates to Configuration objects.", + "required": [ + "RelatedObjectGUID", + "RelatedObjectType", + "MessageID" + ], + "type": "object", + "properties": { + "RelatedObjectGUID": { + "format": "uuid", + "description": "The unique identifier of the object that this validation message relates to.", + "type": "string", + "readOnly": true, + "example": "00000000-0000-0000-0000-000000000000" + }, + "IsError": { + "description": "Indicates the severity of this message.", + "type": "boolean", + "readOnly": true + }, + "RelatedObjectType": { + "$ref": "#/definitions/EnateObjects" + }, + "MessageID": { + "$ref": "#/definitions/ConfigurationValidatorMessage" + }, + "MessageDescription": { + "description": "Default (en-gb) translation lookup (without parameter replacement).", + "type": "string", + "readOnly": true + }, + "Parameters": { + "description": "A zero based, integer indexed collection of objects to insert into the MessageDescription.", + "type": "array", + "items": { + "type": "object" + }, + "readOnly": true + } + } + }, + "ConfigurationValidatorMessage": { + "enum": [ + "General_UnexpectedFailure", + "General_NoData", + "General_GuidMustBeEmpty", + "General_IsNotInEditableVersionState", + "General_PacketsExist", + "General_ObjectUpdatedTimeConflict", + "General_GlobalUsersFound", + "General_UserDoesNotHavePermission", + "General_CannotCreateRetiredObjects", + "Company_NameIsRequired", + "Company_NameIsDuplicated", + "Company_DefaultLanguageIsRequired", + "Company_DefaultLanguageIsNotValid", + "Company_CalendarDoesNotExist", + "Company_CalendarIsRetired", + "Company_EmployeeSelfServicePortalDoesNotExist", + "Company_EmployeeSelfServicePortalIsRetired", + "Company_ParentCompanyDoesNotExist", + "Company_ParentCompanyIsRetired", + "Company_ParentCompanyIsAlreadyAChild", + "Company_SupplierCompanyCanNotBeParent", + "Company_SupplierCompanyCanNotBeChild", + "Company_ParentCompanyMustBeCustomer", + "Company_ParentCompanyCanNotChange", + "ScheduleStructure_NameIsDuplicated", + "EmailConnector_NameIsRequired", + "EmailConnector_UsernameIsRequired", + "EmailConnector_IncomingServerNameIsRequired", + "EmailConnector_IncomingServerPortIsRequired", + "EmailConnector_PrimaryEmailAddressRequired", + "EmailConnector_OutgoingServerNameIsRequired", + "EmailConnector_OutgoingServerPortIsRequired", + "EmailConnector_PrimaryEmailAddressInvalid", + "EmailConnector_SuccessfulTestRequired", + "EmailConnector_PrimaryEmailAddressAlreadyInUse", + "EmailRoute_NameIsRequired", + "EmailRoute_OrderIsDuplicated", + "EmailRoute_EmailAddressRequired", + "EmailRoute_EmailAddressInvalid", + "EmailRoute_RecipientEmailAddressInvalid", + "EmailRoute_SenderEmailAddressInvalid", + "EmailRoute_EmailConnectorDoesNotExist", + "EmailRoute_EmailConnectorIsRetired", + "EmailRoute_TicketCategoryAttributeMustHaveLiveOrTestVersion", + "EmailRoute_TicketCategoryAttributeMustHaveLiveVersion", + "EmailRoute_CaseAttributeMustHaveLiveOrTestVersion", + "EmailRoute_CaseAttributeMustHaveLiveVersion", + "EmailRoute_TicketCategoryAttributeDoesNotExist", + "EmailRoute_CaseAttributeDoesNotExist", + "EmailRoute_TicketCategoryIsRequired", + "EmailRoute_OrderIsRequired", + "EmailRoute_CannotChangePrimaryEmailAddress", + "ServiceLine_DoesNotExist", + "ServiceLine_NameIsRequired", + "ServiceLine_NameIsDuplicated", + "ServiceLine_NameIsTooLong", + "GlobalChecklist_DescriptionIsRequired", + "GlobalChecklist_OrderInvalid", + "GlobalChecklist_OrderIsDuplicated", + "Contract_DoesNotExist", + "Contract_NameIsDuplicated", + "Contract_CustomerCompanyDoesNotExist", + "Contract_CustomerCompanyIsRetired", + "Contract_CustomerCompanyIsNotOfTypeCustomer", + "Contract_CustomerCompanyCannotChange", + "Contract_SupplierCompanyDoesNotExist", + "Contract_SupplierCompanyIsRetired", + "Contract_SupplierCompanyIsNotOfTypeSupplier", + "ContractVersion_ContractDoesNotExist", + "ContractVersion_ContractIsRetired", + "Contract_CustomerCompanyCompanyTypeInvalid", + "Contract_SupplierCompanyCompanyTypeInvalid", + "LocalChecklist_GlobalChecklistDoesNotExist", + "LocalChecklist_GlobalChecklistIsRetired", + "LocalChecklist_GlobalChecklistIsRequired", + "LocalChecklist_GlobalChecklistMustBeBlank", + "LocalChecklist_GlobalChecklistMustBeSimilarType", + "Service_NameIsRequired", + "Service_NameIsDuplicated", + "Service_ServiceLineDoesNotExist", + "Service_ServiceLineIsRetired", + "Service_NameIsTooLong", + "Service_ContractDoesNotExist", + "Service_ContractIsRetired", + "ContractVersion_DoesNotExist", + "ContractVersion_CustomerCalendarDoesNotExist", + "ContractVersion_CustomerCalendarIsRetired", + "ContractVersion_SupplierCalendarDoesNotExist", + "ContractVersion_SupplierCalendarIsRetired", + "ContractVersion_DefaultLanguageIsRequired", + "ContractVersion_DefaultLanguageIsNotValid", + "ContractVersion_TeamIsTooLong", + "ContractVersion_TimeZoneIsRequired", + "ContractVersion_TimeZoneIsNotValid", + "ContractVersion_WorkingHoursInADayIsRequired", + "ContractVersion_MultipleVersionsExist", + "ContractVersion_TooManyWorkingHoursInADay", + "ContractVersion_ContractInUse", + "FixedFrequencySchedule_NameIsDuplicated", + "FixedFrequencySchedule_DaysOrLastDayOfMonthRequired", + "FixedFrequencySchedule_FrequencyOutOfRange", + "FixedFrequencySchedule_ScheduleOutOfRange", + "FixedFrequencySchedule_HourFilterInvalidForDailySchedule", + "FixedFrequencySchedule_DayFilterInvalidForWeeklySchedule", + "FixedFrequencySchedule_HourFilterInvalidForWeeklySchedule", + "FixedFrequencySchedule_DayFilterInvalidForMonthlySchedule", + "FixedFrequencySchedule_HourFilterInvalidFoMonthlySchedule", + "FixedFrequencySchedule_DayFilterInvalidForDaysOfMonthSchedule", + "FixedFrequencySchedule_HourFilterInvalidForDaysOfMonthSchedule", + "FixedFrequencySchedule_NoCasesToStart", + "Schedule_NameIsDuplicated", + "Schedule_PeriodNameIsRequired", + "Schedule_PeriodStartDateIsRequired", + "User_EmailAddressRequired", + "User_EmailAddressInvalid", + "User_CompanyIsRequired", + "User_UserHasMultipleCompanies", + "User_UserHasAnotherCompany", + "User_UserCannotBeMappedToACompany", + "User_UserAlreadyExists", + "User_CompanyChangeNotSupported", + "UserGroup_DoesNotExist", + "UserGroup_NameIsRequired", + "UserGroup_NameIsDuplicated", + "UserGroup_NameIsTooLong", + "DataDictionaryTable_SafeNamesIsDuplicated", + "DataDictionaryTable_SafeNameCannotChange", + "DataDictionary_SafeNamesIsDuplicated", + "DataDictionary_SafeNameCannotChange", + "DataDictionary_DataTypeCannotChange", + "DataDictionary_ShortCodeIsTooLong", + "DataDictionary_ShortCodeIsInvalid", + "DataDictionary_ShortCodeIsReserved", + "DataDictionary_ShortCodeIsDuplicated", + "ContactTag_DoesNotExist", + "ContactTag_NameIsRequired", + "ContactTag_NameIsDuplicated", + "ContactTag_SupplierCompanyDoesNotExist", + "ContactTag_SupplierCompanyIsRetired", + "ContactTag_SupplierCompanyIsNotOfTypeSupplier", + "ContactTag_SupplierCompanyCannotChange", + "ContactTag_NameIsTooLong", + "ContactTag_CannotModifySystemDefault", + "CaseAttribute_DoesNotExist", + "CaseAttribute_ServiceDoesNotExist", + "CaseAttribute_ServiceCannotChange", + "CaseAttribute_CaseTypeDoesNotExist", + "CaseAttribute_CaseTypeIsRetired", + "CaseAttribute_CaseTypeAlreadyExistsInService", + "CaseAttribute_CaseTypeInDifferentServiceLineToService", + "CaseAttribute_CaseTypeCannotChange", + "CaseType_DoesNotExist", + "CaseType_NameIsRequired", + "CaseType_NameIsDuplicated", + "CaseType_ServiceLineDoesNotExist", + "CaseType_ServiceLineIsRetired", + "CaseType_ServiceLineCannotChange", + "CaseAttribute_ServiceIsRetired", + "CaseType_NameIsTooLong", + "CaseType_ProcessGroupIsTooLong", + "ActionType_DoesNotExist", + "ActionType_NameIsRequired", + "ActionType_NameIsDuplicated", + "ActionType_ServiceLineDoesNotExist", + "ActionType_ServiceLineIsRetired", + "ActionType_ServiceLineCannotChange", + "ActionType_NameIsTooLong", + "TicketType_DoesNotExist", + "TicketType_NameIsRequired", + "TicketType_NameIsDuplicated", + "TicketType_ServiceLineDoesNotExist", + "TicketType_ServiceLineIsRetired", + "TicketType_ServiceLineCannotChange", + "TicketAttribute_ServiceIsRetired", + "TicketAttribute_TicketTypeIsRetired", + "TicketType_NameIsTooLong", + "TicketType_ProcessGroupIsTooLong", + "TicketAttribute_DoesNotExist", + "TicketAttribute_ServiceDoesNotExist", + "TicketAttribute_ServiceCannotChange", + "TicketAttribute_TicketTypeDoesNotExist", + "TicketAttribute_TicketTypeAlreadyExistsInService", + "TicketAttribute_TicketTypeInDifferentServiceLineToService", + "TicketAttribute_TicketTypeCannotChange", + "Calendar_NameIsRequired", + "Calendar_NameIsDuplicated", + "Calendar_TimeZoneIsRequired", + "CalendarException_DateIsRequired", + "CaseStep_NameIsRequired", + "CaseStep_NameIsDuplicated", + "CaseStep_NameIsTooLong", + "CaseStep_MilestoneInvalid", + "CaseStep_StepNumberInvalid", + "CaseStep_StepNumberIsDuplicated", + "TicketCategoryAttribute_FeedbackWindowDaysMustBeZeroOrPositiveNumber", + "TicketCategoryAttribute_OutboundEmailAddressIsRequired", + "TicketCategoryAttribute_OutboundEmailAddressIsTooLong", + "TicketCategoryAttribute_EstimatedDurationMustBePositiveNumber", + "TicketCategoryAttribute_TicketCategoryDoesNotExist", + "TicketCategoryAttribute_TicketCategoryIsRetired", + "TicketCategoryAttribute_TicketCategoryCannotChange", + "TicketCategoryAttribute_TicketCategoryHasChildLevels", + "TicketCategoryAttribute_TicketCategoryDuplicated", + "TicketCategoryAttribute_TicketCategoryInDifferentServiceLine", + "TicketCategoryAttribute_DueDateAttributeIsRequired", + "TicketCategoryAttribute_DueDateAttributeDoesNotExist", + "TicketCategoryAttribute_DueDateAttributeIsNotValid", + "TicketCategoryAttribute_DueDateAttributeRequiresContractWithCustomerCalendar", + "TicketCategoryAttribute_DueDateAttributeRequiresContractWithSupplierCalendar", + "TicketCategoryAttribute_DueDateAttributeNotValidForProcessType", + "TicketCategoryAttribute_DueDateAttributeRequiresDataDictionaryOnCard", + "TicketCategoryAttribute_AllocationAttributeIsRequired", + "TicketCategoryAttribute_AllocationAttributeDoesNotExist", + "TicketCategoryAttribute_AllocationAttributeIsNotValid", + "TicketCategoryAttribute_AllocationAttributeRequiresDataDictionaryOnCard", + "TicketCategoryAttribute_AllocationAttributeRequiresContractWithTeam", + "TicketCategoryAttribute_ContactTagDoesNotExist", + "TicketCategoryAttribute_ContactTagIsRetired", + "TicketCategoryAttribute_CannotUseSameAddressForFromAndBCC", + "TicketCategoryAttribute_AllocationAttributeNotValidForProcessType", + "DueDateAttribute_DoesNotExist", + "DueDateAttribute_NameIsRequired", + "DueDateAttribute_NameIsDuplicated", + "DueDateAttribute_NextWorkingMomentAndUseEndOfDayForCalculationMutuallyExclusive", + "DueDateAttribute_InUseByLiveConfiguration", + "DueDateAttribute_NameIsTooLong", + "DueDateAttribute_CalendarIsRequired", + "DueDateAttribute_CalendarDoesNotExist", + "DueDateAttribute_CalendarIsRetired", + "DueDateAttribute_DataDictionaryIsRequired", + "DueDateAttribute_DataDictionaryDoesNotExist", + "DueDateAttribute_DataDictionaryIsRetired", + "DueDateAttribute_DataDictionaryIsWrongDataType", + "DueDateAttribute_TargetDurationDataDictionaryDoesNotExist", + "DueDateAttribute_TargetDurationDataDictionaryIsRetired", + "DueDateAttribute_TargetDurationDataDictionaryIsWrongDataType", + "DueDateAttribute_ScheduleStructureDateIsRequired", + "DueDateAttribute_ScheduleStructureDateDoesNotExist", + "DueDateAttribute_ScheduleStructureDateIsRetired", + "DueDateAttribute_DayOfMonthIsRequired", + "DueDateAttribute_DayOfMonthInvalid", + "DueDateAttribute_MonthOfYearIsRequired", + "DueDateAttribute_MonthOfYearInvalid", + "DueDateAttribute_CalendarTypeIsRequired", + "DueDateAttribute_CalendarMustBeBlank", + "DueDateAttribute_TargetDurationUnitInvalid", + "DueDateAttribute_CannotChangeFieldWhenInLiveUse", + "DueDateAttribute_DueDateCalculationMethodInvalid", + "AllocationAttribute_DoesNotExist", + "AllocationAttribute_NameIsRequired", + "AllocationAttribute_NameIsDuplicated", + "AllocationAttribute_InUseByLiveConfiguration", + "AllocationAttribute_NameIsTooLong", + "AllocationAttribute_QueueIsRequired", + "AllocationAttribute_QueueDoesNotExist", + "AllocationAttribute_QueueIsRetired", + "AllocationAttribute_PrimaryAllocationActionTypeIsRequired", + "AllocationAttribute_PrimaryAllocationActionTypeDoesNotExist", + "AllocationAttribute_PrimaryAllocationActionTypeIsRetired", + "AllocationAttribute_PrimaryAllocationPositionIsRequired", + "AllocationAttribute_PrimaryAllocationPositionDoesNotExist", + "AllocationAttribute_PrimaryAllocationPositionIsRetired", + "AllocationAttribute_PrimaryAllocationDataDictionaryIsRequired", + "AllocationAttribute_PrimaryAllocationDataDictionaryDoesNotExist", + "AllocationAttribute_PrimaryAllocationDataDictionaryIsRetired", + "AllocationAttribute_PrimaryAllocationDataDictionaryIsWrongDataType", + "AllocationAttribute_SecondaryAllocationActionTypeIsRequired", + "AllocationAttribute_SecondaryAllocationActionTypeDoesNotExist", + "AllocationAttribute_SecondaryAllocationActionTypeIsRetired", + "AllocationAttribute_SecondaryAllocationPositionIsRequired", + "AllocationAttribute_SecondaryAllocationPositionDoesNotExist", + "AllocationAttribute_SecondaryAllocationPositionIsRetired", + "AllocationAttribute_SecondaryAllocationDataDictionaryIsRequired", + "AllocationAttribute_SecondaryAllocationDataDictionaryDoesNotExist", + "AllocationAttribute_SecondaryAllocationDataDictionaryIsRetired", + "AllocationAttribute_SecondaryAllocationDataDictionaryIsWrongDataType", + "AllocationAttribute_CannotChangeFieldWhenInLiveUse", + "TicketCategory_NameIsDuplicated", + "TicketCategory_ServiceLineDoesNotExist", + "TicketCategory_ServiceLineIsRetired", + "TicketCategory_ServiceLineCannotChange", + "TicketCategory_ParentCannotChange", + "TicketCategory_TooManyLevels", + "TicketCategory_ParentDoesNotExist", + "TicketCategory_ParentIsRetired", + "CaseAttributeVersion_MainCardDoesNotExist", + "CaseAttributeVersion_MainCardIsRetired", + "CaseAttributeVersion_MainCardIsOfTypeSelfService", + "CaseAttributeVersion_SideCardDoesNotExist", + "CaseAttributeVersion_SideCardIsRetired", + "CaseAttributeVersion_SideCardIsOfTypeSelfService", + "CaseAttributeVersion_OutboundEmailAddressIsRequired", + "CaseAttributeVersion_OutboundEmailAddressIsTooLong", + "CaseAttributeVersion_DueDateAttributeIsRequired", + "CaseAttributeVersion_DueDateAttributeDoesNotExist", + "CaseAttributeVersion_DueDateAttributeIsNotValid", + "CaseAttributeVersion_DueDateAttributeRequiresContractWithCustomerCalendar", + "CaseAttributeVersion_DueDateAttributeRequiresContractWithSupplierCalendar", + "CaseAttributeVersion_DueDateAttributeNotValidForProcessType", + "CaseAttributeVersion_DueDateAttributeRequiresDataDictionaryOnCard", + "CaseAttributeVersion_DueDateAttributeMustLinkToSpecificScheduleStructure", + "CaseAttributeVersion_AllocationAttributeIsRequired", + "CaseAttributeVersion_AllocationAttributeDoesNotExist", + "CaseAttributeVersion_AllocationAttributeIsNotValid", + "CaseAttributeVersion_AllocationAttributeRequiresDataDictionaryOnCard", + "CaseAttributeVersion_AllocationAttributeRequiresContractWithTeam", + "CaseAttributeVersion_RecordCountMustBePositiveInteger", + "CaseAttributeVersion_ScheduleIsRequired", + "CaseAttributeVersion_ScheduleDoesNotExist", + "CaseAttributeVersion_ScheduleIsRetired", + "CaseAttributeVersion_SOPURLTooLong", + "CaseAttributeVersion_DaysToKeepOpenAfterCompletedMustBePositiveNumberOrZero", + "CaseAttributeVersion_DueDateAttributeMustLinkToScheduleDate", + "CaseAttributeVersion_ActionAttributeInDifferentServiceLineToCase", + "CaseAttributeVersion_DueDateAttributeAllStepsMustLinkToScheduleDate", + "CaseAttributeVersion_EmailTemplateDoesNotExist", + "CaseAttributeVersion_EmailTemplateIsRetired", + "CaseAttributeVersion_EmailTemplatePurposeIsNotGeneral", + "CaseAttributeVersion_InvalidCaseCondition", + "CaseAttributeVersion_CaseStepScheduleStructureDateDoesNotExist", + "CaseAttributeVersion_CaseStepScheduleStructureDateIsRetired", + "CaseAttributeVersion_SideCardMustBeDifferentToMainCard", + "CaseAttributeVersion_CaseStepDoesNotExist", + "CaseAttributeVersion_CaseStepScheduleStructureDateAlreadyExists", + "CaseAttributeVersion_CaseStepScheduleStructureStepCannotChange", + "CaseAttributeVersion_CaseStepIsRetired", + "CaseAttributeVersion_ContactTagDoesNotExist", + "CaseAttributeVersion_ContactTagIsRetired", + "CaseAttributeVersion_CannotUseSameAddressForFromAndTo", + "CaseAttributeVersion_CannotUseSameAddressForFromAndCC", + "CaseAttributeVersion_CannotUseSameAddressForFromAndBCC", + "CaseAttributeVersion_AllocationAttributeNotValidForProcessType", + "ActionAttribute_MainCardDoesNotExist", + "ActionAttribute_MainCardIsRetired", + "ActionAttribute_MainCardIsOfTypeSelfService", + "ActionAttribute_SideCardDoesNotExist", + "ActionAttribute_SideCardIsRetired", + "ActionAttribute_SideCardIsOfTypeSelfService", + "ActionAttribute_DueDateAttributeIsRequired", + "ActionAttribute_DueDateAttributeDoesNotExist", + "ActionAttribute_DueDateAttributeIsNotValid", + "ActionAttribute_DueDateAttributeRequiresContractWithCustomerCalendar", + "ActionAttribute_DueDateAttributeRequiresContractWithSupplierCalendar", + "ActionAttribute_DueDateAttributeNotValidForProcessType", + "ActionAttribute_DueDateAttributeRequiresDataDictionaryOnCard", + "ActionAttribute_DueDateAttributeMustLinkToSpecificScheduleStructure", + "ActionAttribute_AllocationAttributeIsRequired", + "ActionAttribute_AllocationAttributeDoesNotExist", + "ActionAttribute_AllocationAttributeIsNotValid", + "ActionAttribute_AllocationAttributeRequiresDataDictionaryOnCard", + "ActionAttribute_AllocationAttributeRequiresContractWithTeam", + "ActionAttribute_DueDateAttributeStepMustLinkToScheduleDate", + "ActionAttribute_StepNumberIsRequired", + "ActionAttribute_PreviousActionAttributeDoesNotExist", + "ActionAttribute_PreviousActionAttributeIsRetired", + "ActionAttribute_ResponseEmailFromIsRequired", + "ActionAttribute_ResponseEmailFromTooLong", + "ActionAttribute_EmailToIsRequired", + "ActionAttribute_ActionGeneralAttributeIsRequired", + "ActionAttribute_ActionGeneralAttributeIsRetired", + "ActionAttribute_ActionGeneralAttributeDoesNotExist", + "ActionAttribute_DueDateAttributeAllStepsMustLinkToScheduleDate", + "ActionAttribute_PeerReviewDueDateAttributeMustBeEmpty", + "ActionAttribute_PeerReviewAllocationAttributeMustBeEmpty", + "ActionAttribute_PeerReviewDueDateAttributeIsRequired", + "ActionAttribute_PeerReviewDueDateAttributeDoesNotExist", + "ActionAttribute_PeerReviewDueDateAttributeIsNotValid", + "ActionAttribute_PeerReviewDueDateAttributeRequiresContractWithCustomerCalendar", + "ActionAttribute_PeerReviewDueDateAttributeRequiresContractWithSupplierCalendar", + "ActionAttribute_PeerReviewDueDateAttributeNotValidForProcessType", + "ActionAttribute_PeerReviewDueDateAttributeRequiresDataDictionaryOnCard", + "ActionAttribute_PeerReviewDueDateAttributeMustLinkToSpecificScheduleStructure", + "ActionAttribute_PeerReviewDueDateAttributeStepMustLinkToScheduleDate", + "ActionAttribute_PeerReviewDueDateAttributeAllStepsMustLinkToScheduleDate", + "ActionAttribute_PeerReviewAllocationAttributeIsRequired", + "ActionAttribute_PeerReviewAllocationAttributeDoesNotExist", + "ActionAttribute_PeerReviewAllocationAttributeIsNotValid", + "ActionAttribute_PeerReviewAllocationAttributeRequiresDataDictionaryOnCard", + "ActionAttribute_PeerReviewAllocationAttributeRequiresContractWithTeam", + "ActionAttribute_AbbyyPlatformIsRequired", + "ActionAttribute_AbbyyProjectIsRequired", + "ActionAttribute_AbbyyPlatformMustBeEmpty", + "ActionAttribute_AbbyyProjectMustBeEmpty", + "ActionAttribute_AbbyyFileTagMustBeEmpty", + "ActionAttribute_AbbyyOutputFileTagMustBeEmpty", + "ActionAttribute_PreviousCaseConditionOutputAttributeDoesNotExist", + "ActionAttribute_PreviousCaseConditionOutputAttributeIsRetired", + "ActionAttribute_EmailTemplateDoesNotExist", + "ActionAttribute_EmailTemplateIsRetired", + "ActionAttribute_EmailTemplatePurposeNotGeneral", + "ActionAttribute_WebApiIntegrationUrlIsRequired", + "ActionAttribute_WebApiIntegrationUrlMustBeBlank", + "ActionAttribute_WebApiIntegrationUrlIsNotValid", + "ActionAttribute_DuplicateOrderWithinStep", + "ActionAttribute_StartOrWaitCaseMustHaveLiveVersion", + "ActionAttribute_StartOrWaitCaseMustHaveLiveOrTestVersion", + "ActionAttribute_StartOrWaitCaseAttributeDoesNotExist", + "ActionAttribute_StartOrWaitCaseAttributeIsRetired", + "ActionAttribute_SideCardMustBeDifferentToMainCard", + "ActionAttribute_ActionGeneralAttributeActionTypeMismatch", + "ActionAttribute_StepNumberDoesNotExistInCaseType", + "ActionAttribute_CaseStepMismatch", + "ActionAttribute_StartOrWaitCaseIsRequired", + "ActionAttribute_StartOrWaitCaseAttributeMustNotBeSelf", + "ActionAttribute_ContactTagDoesNotExist", + "ActionAttribute_ContactTagIsRetired", + "ActionAttribute_PeerReviewLocalChecklistMustBeEmpty", + "ActionAttribute_AbbyyPlatformDoesNotExist", + "ActionAttribute_AbbyyPlatformIsRetired", + "ActionAttribute_AbbyyProjectDoesNotExist", + "ActionAttribute_AbbyyProjectIsRetired", + "ActionAttribute_AbbyyFileTagDoesNotExist", + "ActionAttribute_AbbyyFileTagIsRetired", + "ActionAttribute_AbbyyOutputFileTagDoesNotExist", + "ActionAttribute_AbbyyOutputFileTagIsRetired", + "ActionAttribute_StartOrWaitCaseAttributeUsesDifferentSchedule", + "ActionAttribute_CannotUseSameAddressForFromAndTo", + "ActionAttribute_CannotUseSameAddressForFromAndCC", + "ActionAttribute_CannotUseSameAddressForFromAndBCC", + "ActionAttribute_WebApiIntegrationResponseWindowMustBePositiveInteger", + "ActionAttribute_WebApiIntegrationResponseWindowMustBlank", + "ActionAttribute_AllocationAttributeNotValidForProcessType", + "ActionAttribute_PeerReviewAllocationAttributeNotValidForProcessType", + "ActionGeneralAttribute_DoesNotExist", + "ActionGeneralAttribute_NameIsRequired", + "ActionGeneralAttribute_NameIsDuplicated", + "ActionGeneralAttribute_InUseByLiveConfiguration", + "ActionGeneralAttribute_NameIsTooLong", + "ActionGeneralAttribute_SOPURLIsTooLong", + "ActionGeneralAttribute_ActionTypeCannotChange", + "ActionGeneralAttribute_CannotChangeFieldWhenInLiveUse", + "TicketAttributeVersion_MainCardDoesNotExist", + "TicketAttributeVersion_MainCardIsRetired", + "TicketAttributeVersion_MainCardIsOfTypeSelfService", + "TicketAttributeVersion_SideCardDoesNotExist", + "TicketAttributeVersion_SideCardIsRetired", + "TicketAttributeVersion_SideCardIsOfTypeSelfService", + "TicketAttributeVersion_SelfServiceCardDoesNotExist", + "TicketAttributeVersion_SelfServiceCardIsRetired", + "TicketAttributeVersion_SelfServiceCardIsNotOfTypeSelfService", + "TicketAttributeVersion_TicketLoggedEmailTemplateDoesNotExist", + "TicketAttributeVersion_TicketLoggedEmailTemplateIsRetired", + "TicketAttributeVersion_TicketLoggedEmailTemplateNotOfTypeTicketLogged", + "TicketAttributeVersion_TicketSplitEmailTemplateDoesNotExist", + "TicketAttributeVersion_TicketSplitEmailTemplateIsRetired", + "TicketAttributeVersion_TicketSplitEmailTemplateNotOfTypeTicketSplit", + "TicketAttributeVersion_TicketRejectedEmailTemplateDoesNotExist", + "TicketAttributeVersion_TicketRejectedEmailTemplateIsRetired", + "TicketAttributeVersion_TicketRejectedEmailTemplateNotOfTypeTicketRejected", + "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateDoesNotExist", + "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateIsRetired", + "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateNotOfTypeTicketLaunchedCase", + "TicketAttributeVersion_TicketNoResponseEmailTemplateDoesNotExist", + "TicketAttributeVersion_TicketNoResponseEmailTemplateIsRetired", + "TicketAttributeVersion_TicketNoResponseEmailTemplateNotOfTypeTicketNoResponse", + "TicketAttributeVersion_FeedbackFooterEmailTemplateDoesNotExist", + "TicketAttributeVersion_FeedbackFooterEmailTemplateIsRetired", + "TicketAttributeVersion_FeedbackFooterEmailTemplateNotOfTypeFeedbackFooter", + "TicketAttributeVersion_DefaultAdHocEmailTemplateDoesNotExist", + "TicketAttributeVersion_DefaultAdHocEmailTemplateIsRetired", + "TicketAttributeVersion_DefaultAdHocEmailTemplateNotOfTypeGeneral", + "TicketAttributeVersion_SideCardMustBeDifferentToMainCard", + "TicketAttributeVersion_OneOrMoreCategoriesRequired", + "TicketAttributeVersion_TooManyTicketCategories", + "DefectCategory_NameIsRequired", + "DefectCategory_NameIsDuplicated", + "DefectCategory_NameIsTooLong", + "DefectPartyAtFaultOption_NameIsRequired", + "DefectPartyAtFaultOption_NameIsDuplicated", + "FileTag_DoesNotExist", + "FileTag_NameIsRequired", + "FileTag_NameIsDuplicated", + "FileTag_NameIsTooLong", + "AbbyyPlatform_NameIsRequired", + "AbbyyPlatform_NameIsDuplicated", + "AbbyyPlatform_UrlIsRequired", + "AbbyyPlatform_UrlIsNotValid", + "AbbyyPlatform_UrlIsTooLong", + "AbbyyPlatform_UsernameIsRequired", + "AbbyyPlatform_PasswordIsRequired", + "CaseConditionAttribute_NameIsRequired", + "CaseConditionAttribute_ExpressionIsRequired", + "CaseConditionAttribute_ExactlyOneElseIsRequired", + "CaseConditionAttribute_External", + "CaseConditionAttribute_MustNotBeFirstCondition", + "CaseConditionOutputAttribute_NameIsRequired", + "CannedResponse_EmailTemplateAlreadyExists", + "WebHookSubscription_FilterObjectTypeIsRequired", + "WebHookSubscription_WebHookIsRequired", + "WebHookSubscription_SubscriberURLIsRequired", + "WebHookSubscription_URLIsNotValid", + "WebHookSubscription_WebHookDoesNotExist", + "WebHookSubscription_CreatedByAnotherUser", + "InvalidIntegrationRobotFarmProcessGUID", + "WebHookSubscription_AlreadyExists" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "General_UnexpectedFailure", + "Value": 100, + "Description": "Unexpected failure during validation. This has been logged as incident {0}." + }, + { + "Name": "General_NoData", + "Value": 101, + "Description": "No data supplied." + }, + { + "Name": "General_GuidMustBeEmpty", + "Value": 102, + "Description": "GUID in field '{0}' must be omitted or empty." + }, + { + "Name": "General_IsNotInEditableVersionState", + "Value": 103, + "Description": "Not in an editable Version State (Draft or Testing)." + }, + { + "Name": "General_PacketsExist", + "Value": 104, + "Description": "One or more Packets exist." + }, + { + "Name": "General_ObjectUpdatedTimeConflict", + "Value": 105, + "Description": "The Updated time of Object is not matching. The Last Update was at {0}" + }, + { + "Name": "General_GlobalUsersFound", + "Value": 106, + "Description": "Cannot change scope to Local '{0}' Global users exist. All users must have a Company value before scope change can be completed." + }, + { + "Name": "General_UserDoesNotHavePermission", + "Value": 107, + "Description": "User with GUID '{0}' does not have the required permission to access the '{1}' with the GUID '{2}'." + }, + { + "Name": "General_CannotCreateRetiredObjects", + "Value": 108, + "Description": "Can not create retired objects." + }, + { + "Name": "Company_NameIsRequired", + "Value": 31001, + "Description": "Name is required." + }, + { + "Name": "Company_NameIsDuplicated", + "Value": 31002, + "Description": "Company name is duplicated." + }, + { + "Name": "Company_DefaultLanguageIsRequired", + "Value": 31084, + "Description": "Default Language is required." + }, + { + "Name": "Company_DefaultLanguageIsNotValid", + "Value": 31085, + "Description": "Default Language is not valid." + }, + { + "Name": "Company_CalendarDoesNotExist", + "Value": 31179, + "Description": "Calendar '{0}' does not exist." + }, + { + "Name": "Company_CalendarIsRetired", + "Value": 31180, + "Description": "Calendar '{0}' is retired." + }, + { + "Name": "Company_EmployeeSelfServicePortalDoesNotExist", + "Value": 31262, + "Description": "Employee Self Service Portal '{0}' does not exist." + }, + { + "Name": "Company_EmployeeSelfServicePortalIsRetired", + "Value": 31263, + "Description": "Employee Self Service Portal '{0}' is retired." + }, + { + "Name": "Company_ParentCompanyDoesNotExist", + "Value": 31264, + "Description": "Company '{0}' does not exist." + }, + { + "Name": "Company_ParentCompanyIsRetired", + "Value": 31265, + "Description": "Company '{0}' is retired." + }, + { + "Name": "Company_ParentCompanyIsAlreadyAChild", + "Value": 31266, + "Description": "Multi-level company hierarchy not supported. Company '{0}' is already a child." + }, + { + "Name": "Company_SupplierCompanyCanNotBeParent", + "Value": 31267, + "Description": "Parent companies can not be suppliers." + }, + { + "Name": "Company_SupplierCompanyCanNotBeChild", + "Value": 31268, + "Description": "Child companies can not be suppliers." + }, + { + "Name": "Company_ParentCompanyMustBeCustomer", + "Value": 31269, + "Description": "Parent companies must be type 'Customer'." + }, + { + "Name": "Company_ParentCompanyCanNotChange", + "Value": 31270, + "Description": "Parent company can not be changed." + }, + { + "Name": "ScheduleStructure_NameIsDuplicated", + "Value": 92002, + "Description": "Schedule Structure with Name '{0}' already exists." + }, + { + "Name": "EmailConnector_NameIsRequired", + "Value": 95001, + "Description": "Name is required." + }, + { + "Name": "EmailConnector_UsernameIsRequired", + "Value": 95241, + "Description": "Username is required." + }, + { + "Name": "EmailConnector_IncomingServerNameIsRequired", + "Value": 95271, + "Description": "Incoming server name is required." + }, + { + "Name": "EmailConnector_IncomingServerPortIsRequired", + "Value": 95272, + "Description": "Incoming server port is required." + }, + { + "Name": "EmailConnector_PrimaryEmailAddressRequired", + "Value": 95273, + "Description": "Primary email address is required." + }, + { + "Name": "EmailConnector_OutgoingServerNameIsRequired", + "Value": 95274, + "Description": "Outgoing server name is required." + }, + { + "Name": "EmailConnector_OutgoingServerPortIsRequired", + "Value": 95275, + "Description": "Outgoing server port is required." + }, + { + "Name": "EmailConnector_PrimaryEmailAddressInvalid", + "Value": 95276, + "Description": "Primary email address is not a valid email address." + }, + { + "Name": "EmailConnector_SuccessfulTestRequired", + "Value": 95277, + "Description": "Email connector has not been tested successfully." + }, + { + "Name": "EmailConnector_PrimaryEmailAddressAlreadyInUse", + "Value": 95278, + "Description": "Primary Email Address already exists as a Email Route for another connector." + }, + { + "Name": "EmailRoute_NameIsRequired", + "Value": 96001, + "Description": "Name is required." + }, + { + "Name": "EmailRoute_OrderIsDuplicated", + "Value": 96154, + "Description": "Route order must be unique between routes on this email connector." + }, + { + "Name": "EmailRoute_EmailAddressRequired", + "Value": 96245, + "Description": "Email Address is required." + }, + { + "Name": "EmailRoute_EmailAddressInvalid", + "Value": 96246, + "Description": "One or more Email Address is not * or a valid email address." + }, + { + "Name": "EmailRoute_RecipientEmailAddressInvalid", + "Value": 96279, + "Description": "One or more Recipient Address is not a valid email address." + }, + { + "Name": "EmailRoute_SenderEmailAddressInvalid", + "Value": 96280, + "Description": "One or more Sender Address is not a valid email address." + }, + { + "Name": "EmailRoute_EmailConnectorDoesNotExist", + "Value": 96281, + "Description": "Email Connector '{0}' does not exist." + }, + { + "Name": "EmailRoute_EmailConnectorIsRetired", + "Value": 96282, + "Description": "Email Connector '{0}' is retired." + }, + { + "Name": "EmailRoute_TicketCategoryAttributeMustHaveLiveOrTestVersion", + "Value": 96283, + "Description": "Ticket Category Attribute '{0}' must have a Live or Test Version." + }, + { + "Name": "EmailRoute_TicketCategoryAttributeMustHaveLiveVersion", + "Value": 96284, + "Description": "Ticket Category Attribute '{0}' must have a Live Version." + }, + { + "Name": "EmailRoute_CaseAttributeMustHaveLiveOrTestVersion", + "Value": 96285, + "Description": "Case Attribute '{0}' must have a Live or Test Version." + }, + { + "Name": "EmailRoute_CaseAttributeMustHaveLiveVersion", + "Value": 96286, + "Description": "Case Attribute '{0}' must have a Live Version." + }, + { + "Name": "EmailRoute_TicketCategoryAttributeDoesNotExist", + "Value": 96287, + "Description": "Ticket Category Attribute '{0}' does not exist." + }, + { + "Name": "EmailRoute_CaseAttributeDoesNotExist", + "Value": 96288, + "Description": "Case Attribute '{0}' does not exist." + }, + { + "Name": "EmailRoute_TicketCategoryIsRequired", + "Value": 96289, + "Description": "Ticket Category Attribute is required." + }, + { + "Name": "EmailRoute_OrderIsRequired", + "Value": 96290, + "Description": "Email route must have an order number above 0." + }, + { + "Name": "EmailRoute_CannotChangePrimaryEmailAddress", + "Value": 96291, + "Description": "Unable to change the email address of the Email Route that is the Primary Email Address of the Connector. Update the Email Connector instead." + }, + { + "Name": "ServiceLine_DoesNotExist", + "Value": 115000, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "ServiceLine_NameIsRequired", + "Value": 115001, + "Description": "Name is required." + }, + { + "Name": "ServiceLine_NameIsDuplicated", + "Value": 115002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "ServiceLine_NameIsTooLong", + "Value": 115147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "GlobalChecklist_DescriptionIsRequired", + "Value": 132152, + "Description": "Description is a required field." + }, + { + "Name": "GlobalChecklist_OrderInvalid", + "Value": 132153, + "Description": "Order must be zero or a positive number." + }, + { + "Name": "GlobalChecklist_OrderIsDuplicated", + "Value": 132154, + "Description": "Order '{0}' is duplicated." + }, + { + "Name": "Contract_DoesNotExist", + "Value": 215000, + "Description": "Contract '{0}' does not exist." + }, + { + "Name": "Contract_NameIsDuplicated", + "Value": 215002, + "Description": "Customer Company '{0}' already has a contract named '{1}'." + }, + { + "Name": "Contract_CustomerCompanyDoesNotExist", + "Value": 215072, + "Description": "Customer Company '{0}' does not exist." + }, + { + "Name": "Contract_CustomerCompanyIsRetired", + "Value": 215073, + "Description": "Customer Company '{0}' is retired." + }, + { + "Name": "Contract_CustomerCompanyIsNotOfTypeCustomer", + "Value": 215074, + "Description": "Customer Company '{0}' is not of Type Customer." + }, + { + "Name": "Contract_CustomerCompanyCannotChange", + "Value": 215075, + "Description": "Customer Company cannot be changed after creation." + }, + { + "Name": "Contract_SupplierCompanyDoesNotExist", + "Value": 215076, + "Description": "Supplier Company '{0}' does not exist." + }, + { + "Name": "Contract_SupplierCompanyIsRetired", + "Value": 215077, + "Description": "Supplier Company '{0}' is retired." + }, + { + "Name": "Contract_SupplierCompanyIsNotOfTypeSupplier", + "Value": 215078, + "Description": "Supplier Company '{0}' is not of Type Service Provider." + }, + { + "Name": "ContractVersion_ContractDoesNotExist", + "Value": 215209, + "Description": "Contract '{0}' does not exist." + }, + { + "Name": "ContractVersion_ContractIsRetired", + "Value": 215210, + "Description": "Contract '{0}' is retired." + }, + { + "Name": "Contract_CustomerCompanyCompanyTypeInvalid", + "Value": 215222, + "Description": "Customer Company '{0} Company Type is invalid." + }, + { + "Name": "Contract_SupplierCompanyCompanyTypeInvalid", + "Value": 215223, + "Description": "Supplier Company '{0} Company Type is invalid." + }, + { + "Name": "LocalChecklist_GlobalChecklistDoesNotExist", + "Value": 216205, + "Description": "Linked Global Checklist '{0}' does not exist." + }, + { + "Name": "LocalChecklist_GlobalChecklistIsRetired", + "Value": 216206, + "Description": "Linked Global Checklist '{0}' is retired." + }, + { + "Name": "LocalChecklist_GlobalChecklistIsRequired", + "Value": 216207, + "Description": "Linked Global Checklist is required." + }, + { + "Name": "LocalChecklist_GlobalChecklistMustBeBlank", + "Value": 216208, + "Description": "Linked Global Checklist must be blank." + }, + { + "Name": "LocalChecklist_GlobalChecklistMustBeSimilarType", + "Value": 216334, + "Description": "Linked Global Checklist must be similar type." + }, + { + "Name": "Service_NameIsRequired", + "Value": 217001, + "Description": "Name is required." + }, + { + "Name": "Service_NameIsDuplicated", + "Value": 217002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "Service_ServiceLineDoesNotExist", + "Value": 217003, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "Service_ServiceLineIsRetired", + "Value": 217004, + "Description": "Service Line '{0}' is retired." + }, + { + "Name": "Service_NameIsTooLong", + "Value": 217147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "Service_ContractDoesNotExist", + "Value": 217209, + "Description": "Contract '{0}' does not exist." + }, + { + "Name": "Service_ContractIsRetired", + "Value": 217210, + "Description": "Contract '{0}' is retired." + }, + { + "Name": "ContractVersion_DoesNotExist", + "Value": 227000, + "Description": "Contract Version '{0}' does not exist." + }, + { + "Name": "ContractVersion_CustomerCalendarDoesNotExist", + "Value": 227080, + "Description": "Customer Calendar '{0}' does not exist." + }, + { + "Name": "ContractVersion_CustomerCalendarIsRetired", + "Value": 227081, + "Description": "Customer Calendar '{0}' is retired." + }, + { + "Name": "ContractVersion_SupplierCalendarDoesNotExist", + "Value": 227082, + "Description": "Supplier Calendar '{0}' does not exist." + }, + { + "Name": "ContractVersion_SupplierCalendarIsRetired", + "Value": 227083, + "Description": "Supplier Calendar '{0}' is retired." + }, + { + "Name": "ContractVersion_DefaultLanguageIsRequired", + "Value": 227084, + "Description": "Default Language is a required field." + }, + { + "Name": "ContractVersion_DefaultLanguageIsNotValid", + "Value": 227085, + "Description": "Default Language is not valid." + }, + { + "Name": "ContractVersion_TeamIsTooLong", + "Value": 227086, + "Description": "Team is too long. Maximum length is 256 characters." + }, + { + "Name": "ContractVersion_TimeZoneIsRequired", + "Value": 227087, + "Description": "Time zone is a required field." + }, + { + "Name": "ContractVersion_TimeZoneIsNotValid", + "Value": 227088, + "Description": "Time zone is not valid." + }, + { + "Name": "ContractVersion_WorkingHoursInADayIsRequired", + "Value": 227091, + "Description": "Working hours in a day must be > 0." + }, + { + "Name": "ContractVersion_MultipleVersionsExist", + "Value": 227092, + "Description": "Contract {0} is used in service {1}." + }, + { + "Name": "ContractVersion_TooManyWorkingHoursInADay", + "Value": 227198, + "Description": "Working hours in a day must be <= 24." + }, + { + "Name": "ContractVersion_ContractInUse", + "Value": 227211, + "Description": "Contract {0} is used in service {1}." + }, + { + "Name": "FixedFrequencySchedule_NameIsDuplicated", + "Value": 235002, + "Description": "Fixed Frequency Schedule with Name '{0}' already exists." + }, + { + "Name": "FixedFrequencySchedule_DaysOrLastDayOfMonthRequired", + "Value": 235318, + "Description": "Schedule requires either days specified, or last day of month specified." + }, + { + "Name": "FixedFrequencySchedule_FrequencyOutOfRange", + "Value": 235319, + "Description": "Schedule cannot specify a zero or negative frequency." + }, + { + "Name": "FixedFrequencySchedule_ScheduleOutOfRange", + "Value": 235320, + "Description": "Schedule cannot specify more than 23 Hours on Hourly Schedule." + }, + { + "Name": "FixedFrequencySchedule_HourFilterInvalidForDailySchedule", + "Value": 235321, + "Description": "Cannot Specify Hour Filter on a Daily Schedule." + }, + { + "Name": "FixedFrequencySchedule_DayFilterInvalidForWeeklySchedule", + "Value": 235322, + "Description": "Cannot Specify Day Filter on a Weekly Schedule." + }, + { + "Name": "FixedFrequencySchedule_HourFilterInvalidForWeeklySchedule", + "Value": 235323, + "Description": "Cannot Specify Hour Filter on a Weekly Schedule." + }, + { + "Name": "FixedFrequencySchedule_DayFilterInvalidForMonthlySchedule", + "Value": 235324, + "Description": "Cannot Specify Day Filter on a Monthly Schedule." + }, + { + "Name": "FixedFrequencySchedule_HourFilterInvalidFoMonthlySchedule", + "Value": 235325, + "Description": "Cannot Specify Hour Filter on a Monthly Schedule." + }, + { + "Name": "FixedFrequencySchedule_DayFilterInvalidForDaysOfMonthSchedule", + "Value": 235326, + "Description": "Cannot Specify Day Filter on a Days Of Month Schedule." + }, + { + "Name": "FixedFrequencySchedule_HourFilterInvalidForDaysOfMonthSchedule", + "Value": 235327, + "Description": "Cannot Specify Hour Filter on a Days Of Month Schedule." + }, + { + "Name": "FixedFrequencySchedule_NoCasesToStart", + "Value": 235328, + "Description": "Fixed Frequency Schedule must start at least one case." + }, + { + "Name": "Schedule_NameIsDuplicated", + "Value": 260002, + "Description": "Schedule with Name '{0}' already exists." + }, + { + "Name": "Schedule_PeriodNameIsRequired", + "Value": 260329, + "Description": "Period Name is required." + }, + { + "Name": "Schedule_PeriodStartDateIsRequired", + "Value": 260330, + "Description": "Period Start Date is required." + }, + { + "Name": "User_EmailAddressRequired", + "Value": 312245, + "Description": "EmailAddress is required." + }, + { + "Name": "User_EmailAddressInvalid", + "Value": 312246, + "Description": "Email address is invalid." + }, + { + "Name": "User_CompanyIsRequired", + "Value": 312248, + "Description": "Company value is required." + }, + { + "Name": "User_UserHasMultipleCompanies", + "Value": 312250, + "Description": "User is configured with multiple companies." + }, + { + "Name": "User_UserHasAnotherCompany", + "Value": 312251, + "Description": "User is already configured with another company." + }, + { + "Name": "User_UserCannotBeMappedToACompany", + "Value": 312252, + "Description": "User cannot be mapped to a company." + }, + { + "Name": "User_UserAlreadyExists", + "Value": 312253, + "Description": "User already exists." + }, + { + "Name": "User_CompanyChangeNotSupported", + "Value": 312254, + "Description": "Changing the CompanyGUID of a User is not supported." + }, + { + "Name": "UserGroup_DoesNotExist", + "Value": 341000, + "Description": "User Group '{0}' does not exist." + }, + { + "Name": "UserGroup_NameIsRequired", + "Value": 341001, + "Description": "Name is required." + }, + { + "Name": "UserGroup_NameIsDuplicated", + "Value": 341002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "UserGroup_NameIsTooLong", + "Value": 341147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "DataDictionaryTable_SafeNamesIsDuplicated", + "Value": 427255, + "Description": "Safe name '{0}' is already in use." + }, + { + "Name": "DataDictionaryTable_SafeNameCannotChange", + "Value": 427256, + "Description": "Cannot change safe name." + }, + { + "Name": "DataDictionary_SafeNamesIsDuplicated", + "Value": 428255, + "Description": "Safe name '{0}' is already in use." + }, + { + "Name": "DataDictionary_SafeNameCannotChange", + "Value": 428256, + "Description": "Cannot change safe name." + }, + { + "Name": "DataDictionary_DataTypeCannotChange", + "Value": 428257, + "Description": "Cannot change data type." + }, + { + "Name": "DataDictionary_ShortCodeIsTooLong", + "Value": 428258, + "Description": "ShortCodes must be 1 or 2 characters. '{0}' is {1}." + }, + { + "Name": "DataDictionary_ShortCodeIsInvalid", + "Value": 428259, + "Description": "ShortCode '{shortCode}' contains invalid characters. ShortCodes can only contain a-z/A-Z." + }, + { + "Name": "DataDictionary_ShortCodeIsReserved", + "Value": 428260, + "Description": "ShortCode '{shortCode}' is reserved." + }, + { + "Name": "DataDictionary_ShortCodeIsDuplicated", + "Value": 428261, + "Description": "DataDictionary with ShortCode '{shortCode}' already exists." + }, + { + "Name": "ContactTag_DoesNotExist", + "Value": 910000, + "Description": "Contact Tag '{0}' does not exist." + }, + { + "Name": "ContactTag_NameIsRequired", + "Value": 910001, + "Description": "Name is a required field." + }, + { + "Name": "ContactTag_NameIsDuplicated", + "Value": 910002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "ContactTag_SupplierCompanyDoesNotExist", + "Value": 910076, + "Description": "Supplier Company '{0}' does not exist." + }, + { + "Name": "ContactTag_SupplierCompanyIsRetired", + "Value": 910077, + "Description": "Supplier Company '{0}' is retired." + }, + { + "Name": "ContactTag_SupplierCompanyIsNotOfTypeSupplier", + "Value": 910078, + "Description": "Supplier Company '{0}' is not of Type Service Provider." + }, + { + "Name": "ContactTag_SupplierCompanyCannotChange", + "Value": 910079, + "Description": "Supplier Company cannot be changed after creation." + }, + { + "Name": "ContactTag_NameIsTooLong", + "Value": 910147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "ContactTag_CannotModifySystemDefault", + "Value": 910199, + "Description": "Cannot modify system default Contact Tags." + }, + { + "Name": "CaseAttribute_DoesNotExist", + "Value": 911000, + "Description": "Case Attribute '{0}' does not exist." + }, + { + "Name": "CaseAttribute_ServiceDoesNotExist", + "Value": 911008, + "Description": "Service '{0}' does not exist." + }, + { + "Name": "CaseAttribute_ServiceCannotChange", + "Value": 911010, + "Description": "Service cannot be changed after creation." + }, + { + "Name": "CaseAttribute_CaseTypeDoesNotExist", + "Value": 911011, + "Description": "Case Type '{0}' does not exist." + }, + { + "Name": "CaseAttribute_CaseTypeIsRetired", + "Value": 911012, + "Description": "Case Type '{0}' is retired." + }, + { + "Name": "CaseAttribute_CaseTypeAlreadyExistsInService", + "Value": 911013, + "Description": "Case Type '{0}' already exists in Service '{1}'." + }, + { + "Name": "CaseAttribute_CaseTypeInDifferentServiceLineToService", + "Value": 911014, + "Description": "Case Type '{0}' exists in a different Service Line to Service '{1}'." + }, + { + "Name": "CaseAttribute_CaseTypeCannotChange", + "Value": 911015, + "Description": "Case Type cannot be changed after creation." + }, + { + "Name": "CaseType_DoesNotExist", + "Value": 912000, + "Description": "Case Type '{0}' does not exist." + }, + { + "Name": "CaseType_NameIsRequired", + "Value": 912001, + "Description": "Name is required." + }, + { + "Name": "CaseType_NameIsDuplicated", + "Value": 912002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "CaseType_ServiceLineDoesNotExist", + "Value": 912003, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "CaseType_ServiceLineIsRetired", + "Value": 912004, + "Description": "Service Line '{0}' is retired." + }, + { + "Name": "CaseType_ServiceLineCannotChange", + "Value": 912005, + "Description": "Service Line cannot be changed after creation." + }, + { + "Name": "CaseAttribute_ServiceIsRetired", + "Value": 912009, + "Description": "Service '{0}' is retired." + }, + { + "Name": "CaseType_NameIsTooLong", + "Value": 912147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "CaseType_ProcessGroupIsTooLong", + "Value": 912148, + "Description": "Process Group is too long. Maximum length is 256 characters." + }, + { + "Name": "ActionType_DoesNotExist", + "Value": 913000, + "Description": "Action Type '{0}' does not exist." + }, + { + "Name": "ActionType_NameIsRequired", + "Value": 913001, + "Description": "Name is a required field." + }, + { + "Name": "ActionType_NameIsDuplicated", + "Value": 913002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "ActionType_ServiceLineDoesNotExist", + "Value": 913003, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "ActionType_ServiceLineIsRetired", + "Value": 913004, + "Description": "Service Line '{0}' is retired." + }, + { + "Name": "ActionType_ServiceLineCannotChange", + "Value": 913005, + "Description": "Service Line cannot be changed after creation." + }, + { + "Name": "ActionType_NameIsTooLong", + "Value": 913147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "TicketType_DoesNotExist", + "Value": 914000, + "Description": "Ticket Type '{0}' does not exist." + }, + { + "Name": "TicketType_NameIsRequired", + "Value": 914001, + "Description": "Name is a required field." + }, + { + "Name": "TicketType_NameIsDuplicated", + "Value": 914002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "TicketType_ServiceLineDoesNotExist", + "Value": 914003, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "TicketType_ServiceLineIsRetired", + "Value": 914004, + "Description": "Service Line '{0}' is retired." + }, + { + "Name": "TicketType_ServiceLineCannotChange", + "Value": 914005, + "Description": "Service Line cannot be changed after creation." + }, + { + "Name": "TicketAttribute_ServiceIsRetired", + "Value": 914009, + "Description": "Service '{0}' is retired." + }, + { + "Name": "TicketAttribute_TicketTypeIsRetired", + "Value": 914012, + "Description": "Ticket Type '{0}' is retired." + }, + { + "Name": "TicketType_NameIsTooLong", + "Value": 914147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "TicketType_ProcessGroupIsTooLong", + "Value": 914148, + "Description": "Process Group is too long. Maximum length is 256 characters." + }, + { + "Name": "TicketAttribute_DoesNotExist", + "Value": 915000, + "Description": "Ticket Attribute '{0}' does not exist." + }, + { + "Name": "TicketAttribute_ServiceDoesNotExist", + "Value": 915008, + "Description": "Service '{0}' does not exist." + }, + { + "Name": "TicketAttribute_ServiceCannotChange", + "Value": 915010, + "Description": "Service cannot be changed after creation." + }, + { + "Name": "TicketAttribute_TicketTypeDoesNotExist", + "Value": 915011, + "Description": "Ticket Type '{0}' does not exist." + }, + { + "Name": "TicketAttribute_TicketTypeAlreadyExistsInService", + "Value": 915013, + "Description": "Ticket Type '{0}' already exists in Service '{1}'." + }, + { + "Name": "TicketAttribute_TicketTypeInDifferentServiceLineToService", + "Value": 915014, + "Description": "Ticket Type '{0}' exists in a different Service Line to Service '{1}'." + }, + { + "Name": "TicketAttribute_TicketTypeCannotChange", + "Value": 915015, + "Description": "Ticket Type cannot be changed after creation." + }, + { + "Name": "Calendar_NameIsRequired", + "Value": 924001, + "Description": "Calendar Name is required." + }, + { + "Name": "Calendar_NameIsDuplicated", + "Value": 924002, + "Description": "Calendar Name is duplicated." + }, + { + "Name": "Calendar_TimeZoneIsRequired", + "Value": 924087, + "Description": "Calendar Time zone is required." + }, + { + "Name": "CalendarException_DateIsRequired", + "Value": 925243, + "Description": "Calendar Exception Date is required." + }, + { + "Name": "CaseStep_NameIsRequired", + "Value": 953001, + "Description": "Name is required." + }, + { + "Name": "CaseStep_NameIsDuplicated", + "Value": 953002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "CaseStep_NameIsTooLong", + "Value": 953147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "CaseStep_MilestoneInvalid", + "Value": 953149, + "Description": "Milestone must be between 0 - 100." + }, + { + "Name": "CaseStep_StepNumberInvalid", + "Value": 953150, + "Description": "Step Number must be above 0." + }, + { + "Name": "CaseStep_StepNumberIsDuplicated", + "Value": 953151, + "Description": "Step Number '{0}' is duplicated." + }, + { + "Name": "TicketCategoryAttribute_FeedbackWindowDaysMustBeZeroOrPositiveNumber", + "Value": 954047, + "Description": "Feedback Window Days must be zero or a positive number." + }, + { + "Name": "TicketCategoryAttribute_OutboundEmailAddressIsRequired", + "Value": 954048, + "Description": "Outbound Email Address is required." + }, + { + "Name": "TicketCategoryAttribute_OutboundEmailAddressIsTooLong", + "Value": 954049, + "Description": "Outbound Email Address is too long. Maximum length is 100 characters." + }, + { + "Name": "TicketCategoryAttribute_EstimatedDurationMustBePositiveNumber", + "Value": 954050, + "Description": "Estimated Duration must be a positive number if set." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryDoesNotExist", + "Value": 954051, + "Description": "Ticket Category '{0}' does not exist." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryIsRetired", + "Value": 954052, + "Description": "Ticket Category '{0}' is retired." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryCannotChange", + "Value": 954053, + "Description": "Ticket Category cannot be changed after creation." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryHasChildLevels", + "Value": 954054, + "Description": "Ticket Category '{0}' has child levels." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryDuplicated", + "Value": 954055, + "Description": "Ticket Category '{0}' exists in multiple Ticket Attribute Categories." + }, + { + "Name": "TicketCategoryAttribute_TicketCategoryInDifferentServiceLine", + "Value": 954056, + "Description": "Ticket Category '{0}' exists in a different Service Line to Ticket." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeIsRequired", + "Value": 954057, + "Description": "Due Date Attribute is required." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeDoesNotExist", + "Value": 954058, + "Description": "Due Date Attribute '{0}' does not exist." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeIsNotValid", + "Value": 954059, + "Description": "Due Date Attribute '{0} is not valid." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeRequiresContractWithCustomerCalendar", + "Value": 954060, + "Description": "Due Date Attribute '{0}' can only be used when parent Contract has a Customer Calendar." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeRequiresContractWithSupplierCalendar", + "Value": 954061, + "Description": "Due Date Attribute '{0}'can only be used when parent Contract has a Supplier Calendar." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeNotValidForProcessType", + "Value": 954062, + "Description": "Due Date Attribute '{0}' uses a Method which cannot be used on Tickets." + }, + { + "Name": "TicketCategoryAttribute_DueDateAttributeRequiresDataDictionaryOnCard", + "Value": 954063, + "Description": "Due Date Attribute '{0}' requires one of the Cards linked to the Ticket to contain Data Dictionary '{1}'." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeIsRequired", + "Value": 954065, + "Description": "Allocation Attribute is required." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeDoesNotExist", + "Value": 954066, + "Description": "Allocation Attribute '{0}' does not exist." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeIsNotValid", + "Value": 954067, + "Description": "Allocation Attribute is not valid." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeRequiresDataDictionaryOnCard", + "Value": 954068, + "Description": "Allocation Attribute '{0}' requires one of the Cards linked to the Ticket to contain Data Dictionary '{1}'." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeRequiresContractWithTeam", + "Value": 954069, + "Description": "Allocation Attribute '{0}' can only be used when parent Contract has a Team specified." + }, + { + "Name": "TicketCategoryAttribute_ContactTagDoesNotExist", + "Value": 954331, + "Description": "Contact Tag '{0}' does not exist." + }, + { + "Name": "TicketCategoryAttribute_ContactTagIsRetired", + "Value": 954332, + "Description": "Contact Tag '{0}' is retired." + }, + { + "Name": "TicketCategoryAttribute_CannotUseSameAddressForFromAndBCC", + "Value": 954368, + "Description": "The 'from' email address cannot be in the BCC address list." + }, + { + "Name": "TicketCategoryAttribute_AllocationAttributeNotValidForProcessType", + "Value": 954371, + "Description": "Allocation Attribute '{0}' uses a Allocation Method which cannot be used on Tickets." + }, + { + "Name": "DueDateAttribute_DoesNotExist", + "Value": 956000, + "Description": "Due Date Attribute '{0}' does not exist." + }, + { + "Name": "DueDateAttribute_NameIsRequired", + "Value": 956001, + "Description": "Name is a required field." + }, + { + "Name": "DueDateAttribute_NameIsDuplicated", + "Value": 956002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "DueDateAttribute_NextWorkingMomentAndUseEndOfDayForCalculationMutuallyExclusive", + "Value": 956006, + "Description": "NextWorkingMoment and UseEndOfDayForCalculation cannot be set at the same time." + }, + { + "Name": "DueDateAttribute_InUseByLiveConfiguration", + "Value": 956007, + "Description": "In use by Live configuration." + }, + { + "Name": "DueDateAttribute_NameIsTooLong", + "Value": 956147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "DueDateAttribute_CalendarIsRequired", + "Value": 956178, + "Description": "Calendar is required Calendar Type is Explicit." + }, + { + "Name": "DueDateAttribute_CalendarDoesNotExist", + "Value": 956179, + "Description": "Calendar '{0}' does not exist." + }, + { + "Name": "DueDateAttribute_CalendarIsRetired", + "Value": 956180, + "Description": "Calendar '{0}' is retired." + }, + { + "Name": "DueDateAttribute_DataDictionaryIsRequired", + "Value": 956181, + "Description": "Data Dictionary is required for this Due Date Method." + }, + { + "Name": "DueDateAttribute_DataDictionaryDoesNotExist", + "Value": 956182, + "Description": "Data Dictionary '{0}' does not exist." + }, + { + "Name": "DueDateAttribute_DataDictionaryIsRetired", + "Value": 956183, + "Description": "Data Dictionary '{0}' is retired." + }, + { + "Name": "DueDateAttribute_DataDictionaryIsWrongDataType", + "Value": 956184, + "Description": "Data Dictionary '{0}' must be of Data Type Date/Time." + }, + { + "Name": "DueDateAttribute_TargetDurationDataDictionaryDoesNotExist", + "Value": 956185, + "Description": "Target Duration Data Dictionary '{0}' does not exist." + }, + { + "Name": "DueDateAttribute_TargetDurationDataDictionaryIsRetired", + "Value": 956186, + "Description": "Target Duration Data Dictionary '{0}' is retired." + }, + { + "Name": "DueDateAttribute_TargetDurationDataDictionaryIsWrongDataType", + "Value": 956187, + "Description": "Target Duration Data Dictionary '{0}' must be of DataType WholeNumber." + }, + { + "Name": "DueDateAttribute_ScheduleStructureDateIsRequired", + "Value": 956188, + "Description": "Schedule Structure Date is required for this Due Date Method." + }, + { + "Name": "DueDateAttribute_ScheduleStructureDateDoesNotExist", + "Value": 956189, + "Description": "Schedule Structure Date '{0}' does not exist." + }, + { + "Name": "DueDateAttribute_ScheduleStructureDateIsRetired", + "Value": 956190, + "Description": "Schedule Structure Date '{0}' is retired." + }, + { + "Name": "DueDateAttribute_DayOfMonthIsRequired", + "Value": 956191, + "Description": "DayOfMonth is required for this Due Date Method." + }, + { + "Name": "DueDateAttribute_DayOfMonthInvalid", + "Value": 956192, + "Description": "When set DayOfMonth must be between 1 - 31." + }, + { + "Name": "DueDateAttribute_MonthOfYearIsRequired", + "Value": 956193, + "Description": "MonthOfYear is required for this Due Date Method." + }, + { + "Name": "DueDateAttribute_MonthOfYearInvalid", + "Value": 956194, + "Description": "When set MonthOfYear must be between 1 - 12." + }, + { + "Name": "DueDateAttribute_CalendarTypeIsRequired", + "Value": 956200, + "Description": "Calendar Type is required when TargetDurationUnits or DynamicDurationUnits is in 'Working' Minutes/Hours/Days." + }, + { + "Name": "DueDateAttribute_CalendarMustBeBlank", + "Value": 956219, + "Description": "Calendar cannot be set unless CalendarType is Explicit." + }, + { + "Name": "DueDateAttribute_TargetDurationUnitInvalid", + "Value": 956224, + "Description": "'{0}' is not a valid value for property 'TargetDurationUnits'." + }, + { + "Name": "DueDateAttribute_CannotChangeFieldWhenInLiveUse", + "Value": 956226, + "Description": "Field cannot be changed when in use by Live configuration." + }, + { + "Name": "DueDateAttribute_DueDateCalculationMethodInvalid", + "Value": 956234, + "Description": "'{0}' is not a valid value for property 'DueDateCalculationMethod'." + }, + { + "Name": "AllocationAttribute_DoesNotExist", + "Value": 957000, + "Description": "Allocation Attribute '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_NameIsRequired", + "Value": 957001, + "Description": "Name is a required field." + }, + { + "Name": "AllocationAttribute_NameIsDuplicated", + "Value": 957002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "AllocationAttribute_InUseByLiveConfiguration", + "Value": 957007, + "Description": "In use by Live configuration." + }, + { + "Name": "AllocationAttribute_NameIsTooLong", + "Value": 957147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "AllocationAttribute_QueueIsRequired", + "Value": 957155, + "Description": "Queue is required." + }, + { + "Name": "AllocationAttribute_QueueDoesNotExist", + "Value": 957156, + "Description": "Queue '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_QueueIsRetired", + "Value": 957157, + "Description": "Queue '{0}' is retired." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationActionTypeIsRequired", + "Value": 957158, + "Description": "Primary Method of Previous Action Completer requires a PrimaryAllocationActionTypeGUID." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationActionTypeDoesNotExist", + "Value": 957159, + "Description": "Primary Allocation Action Type '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationActionTypeIsRetired", + "Value": 957160, + "Description": "Primary Allocation Action Type '{0}' is retired." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationPositionIsRequired", + "Value": 957161, + "Description": "Primary Method of Team By Path requires a PrimaryAllocationPositionGUID." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationPositionDoesNotExist", + "Value": 957162, + "Description": "Primary Allocation Position '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationPositionIsRetired", + "Value": 957163, + "Description": "Primary Allocation Position '{0}' is retired." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationDataDictionaryIsRequired", + "Value": 957164, + "Description": "Primary Method of Username From Custom Data Field requires a PrimaryAllocationDataDictionaryGUID." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationDataDictionaryDoesNotExist", + "Value": 957165, + "Description": "Primary Allocation Data Dictionary '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationDataDictionaryIsRetired", + "Value": 957166, + "Description": "Primary Allocation Data Dictionary '{0}' is retired." + }, + { + "Name": "AllocationAttribute_PrimaryAllocationDataDictionaryIsWrongDataType", + "Value": 957167, + "Description": "Primary Allocation Data Dictionary '{0}' must be of data type 'Short Text' or 'List'." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationActionTypeIsRequired", + "Value": 957168, + "Description": "Secondary Method of Previous Action Completer requires a SecondaryAllocationActionTypeGUID." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationActionTypeDoesNotExist", + "Value": 957169, + "Description": "Secondary Allocation Action Type '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationActionTypeIsRetired", + "Value": 957170, + "Description": "Secondary Allocation Action Type '{0}' is retired." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationPositionIsRequired", + "Value": 957171, + "Description": "Secondary Method of Team By Path requires a SecondaryAllocationPositionGUID." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationPositionDoesNotExist", + "Value": 957172, + "Description": "Secondary Allocation Position '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationPositionIsRetired", + "Value": 957173, + "Description": "Secondary Allocation Position '{0}' is retired." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationDataDictionaryIsRequired", + "Value": 957174, + "Description": "Secondary Method of Username From Custom Data Field requires a SecondaryAllocationDataDictionaryGUID." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationDataDictionaryDoesNotExist", + "Value": 957175, + "Description": "Secondary Allocation Data Dictionary '{0}' does not exist." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationDataDictionaryIsRetired", + "Value": 957176, + "Description": "Secondary Allocation Data Dictionary '{0}' is retired." + }, + { + "Name": "AllocationAttribute_SecondaryAllocationDataDictionaryIsWrongDataType", + "Value": 957177, + "Description": "Secondary Allocation Data Dictionary '{0}' must be of data type 'Short Text' or 'List'." + }, + { + "Name": "AllocationAttribute_CannotChangeFieldWhenInLiveUse", + "Value": 957226, + "Description": "Field cannot be changed when in use by Live configuration." + }, + { + "Name": "TicketCategory_NameIsDuplicated", + "Value": 958002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "TicketCategory_ServiceLineDoesNotExist", + "Value": 958003, + "Description": "Service Line '{0}' does not exist." + }, + { + "Name": "TicketCategory_ServiceLineIsRetired", + "Value": 958004, + "Description": "Service Line '{0}' is retired." + }, + { + "Name": "TicketCategory_ServiceLineCannotChange", + "Value": 958005, + "Description": "Service Line cannot be changed after creation." + }, + { + "Name": "TicketCategory_ParentCannotChange", + "Value": 958201, + "Description": "Parent cannot be changed after creation." + }, + { + "Name": "TicketCategory_TooManyLevels", + "Value": 958202, + "Description": "Category nesting is too deep. Only 3 levels of category are permitted. No further validation will be performed." + }, + { + "Name": "TicketCategory_ParentDoesNotExist", + "Value": 958217, + "Description": "Ticket Category '{0}' does not exist." + }, + { + "Name": "TicketCategory_ParentIsRetired", + "Value": 958218, + "Description": "Ticket Category '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_MainCardDoesNotExist", + "Value": 963016, + "Description": "Main Card '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_MainCardIsRetired", + "Value": 963017, + "Description": "Main Card '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_MainCardIsOfTypeSelfService", + "Value": 963018, + "Description": "Main Card '{0}' is of type self service." + }, + { + "Name": "CaseAttributeVersion_SideCardDoesNotExist", + "Value": 963019, + "Description": "Side Card '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_SideCardIsRetired", + "Value": 963020, + "Description": "Side Card '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_SideCardIsOfTypeSelfService", + "Value": 963021, + "Description": "Side Card '{0}' is of type self service." + }, + { + "Name": "CaseAttributeVersion_OutboundEmailAddressIsRequired", + "Value": 963048, + "Description": "Outbound email address is required." + }, + { + "Name": "CaseAttributeVersion_OutboundEmailAddressIsTooLong", + "Value": 963049, + "Description": "Outbound Email Address is too long. Maximum length is 100 characters." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeIsRequired", + "Value": 963057, + "Description": "Due Date Attribute is required." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeDoesNotExist", + "Value": 963058, + "Description": "Due Date Attribute '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeIsNotValid", + "Value": 963059, + "Description": "Due Date Attribute '{0}' is not valid." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeRequiresContractWithCustomerCalendar", + "Value": 963060, + "Description": "Due Date Attribute '{0}' can only be used when parent Contract has a Customer Calendar." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeRequiresContractWithSupplierCalendar", + "Value": 963061, + "Description": "Due Date Attribute '{0}' can only be used when parent Contract has a Supplier Calendar." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeNotValidForProcessType", + "Value": 963062, + "Description": "Due Date Attribute '{0}' uses a Method which cannot be used on Cases." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeRequiresDataDictionaryOnCard", + "Value": 963063, + "Description": "Due Date Attribute '{0}' requires one of the Cards linked to the Case to contain Data Dictionary '{1}'." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeMustLinkToSpecificScheduleStructure", + "Value": 963064, + "Description": "Due Date Attribute '{0}' requires the Case to be linked to Schedule Structure '{1}'." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeIsRequired", + "Value": 963065, + "Description": "Allocation Attribute is required." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeDoesNotExist", + "Value": 963066, + "Description": "Allocation Attribute '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeIsNotValid", + "Value": 963067, + "Description": "Allocation Attribute '{0}' is not valid." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeRequiresDataDictionaryOnCard", + "Value": 963068, + "Description": "Allocation Attribute '{0}' requires one of the Cards linked to the Case to contain Data Dictionary '{1}'." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeRequiresContractWithTeam", + "Value": 963069, + "Description": "Allocation Attribute '{0}' can only be used when parent Contract has a Team specified." + }, + { + "Name": "CaseAttributeVersion_RecordCountMustBePositiveInteger", + "Value": 963094, + "Description": "Record count must be a positive integer." + }, + { + "Name": "CaseAttributeVersion_ScheduleIsRequired", + "Value": 963095, + "Description": "StartCaseBySchedule cannot be set when ScheduleGUID is blank." + }, + { + "Name": "CaseAttributeVersion_ScheduleDoesNotExist", + "Value": 963096, + "Description": "Schedule '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_ScheduleIsRetired", + "Value": 963097, + "Description": "Schedule '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_SOPURLTooLong", + "Value": 963098, + "Description": "SOP URL is too long ({0} chars)." + }, + { + "Name": "CaseAttributeVersion_DaysToKeepOpenAfterCompletedMustBePositiveNumberOrZero", + "Value": 963099, + "Description": "Days to Keep Open After Completed must be a positive integer or zero." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeMustLinkToScheduleDate", + "Value": 963100, + "Description": "Due Date Attribute '{0}' requires the Case to be linked to a Schedule Date." + }, + { + "Name": "CaseAttributeVersion_ActionAttributeInDifferentServiceLineToCase", + "Value": 963101, + "Description": "Action Attribute Service Line ('{0}') is different Service Line To Case ('{1}')." + }, + { + "Name": "CaseAttributeVersion_DueDateAttributeAllStepsMustLinkToScheduleDate", + "Value": 963111, + "Description": "Due Date Attribute '{0}' requires all steps to be linked to a Schedule Date." + }, + { + "Name": "CaseAttributeVersion_EmailTemplateDoesNotExist", + "Value": 963137, + "Description": "Email Template '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_EmailTemplateIsRetired", + "Value": 963138, + "Description": "Email Template '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_EmailTemplatePurposeIsNotGeneral", + "Value": 963139, + "Description": "Email Template '{0}' is not of type General." + }, + { + "Name": "CaseAttributeVersion_InvalidCaseCondition", + "Value": 963146, + "Description": "Condition '{0}' is not valid." + }, + { + "Name": "CaseAttributeVersion_CaseStepScheduleStructureDateDoesNotExist", + "Value": 963189, + "Description": "Schedule Structure Date '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_CaseStepScheduleStructureDateIsRetired", + "Value": 963190, + "Description": "Schedule Structure Date '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_SideCardMustBeDifferentToMainCard", + "Value": 963216, + "Description": "Cannot use the same card for Main Card and Side Card." + }, + { + "Name": "CaseAttributeVersion_CaseStepDoesNotExist", + "Value": 963228, + "Description": "Case Step '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_CaseStepScheduleStructureDateAlreadyExists", + "Value": 963229, + "Description": "Entry for Case Step '{0}', Schedule Structure Date '{1}' already exists." + }, + { + "Name": "CaseAttributeVersion_CaseStepScheduleStructureStepCannotChange", + "Value": 963230, + "Description": "Case Step Schedule Structure Step cannot be changed after creation." + }, + { + "Name": "CaseAttributeVersion_CaseStepIsRetired", + "Value": 963231, + "Description": "Case Step '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_ContactTagDoesNotExist", + "Value": 963331, + "Description": "Contact Tag '{0}' does not exist." + }, + { + "Name": "CaseAttributeVersion_ContactTagIsRetired", + "Value": 963332, + "Description": "Contact Tag '{0}' is retired." + }, + { + "Name": "CaseAttributeVersion_CannotUseSameAddressForFromAndTo", + "Value": 963366, + "Description": "The 'To' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "CaseAttributeVersion_CannotUseSameAddressForFromAndCC", + "Value": 963367, + "Description": "The 'CC' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "CaseAttributeVersion_CannotUseSameAddressForFromAndBCC", + "Value": 963368, + "Description": "The 'BCC' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "CaseAttributeVersion_AllocationAttributeNotValidForProcessType", + "Value": 963371, + "Description": "Allocation Attribute '{0}' uses a Allocation Method which cannot be used on Cases." + }, + { + "Name": "ActionAttribute_MainCardDoesNotExist", + "Value": 964016, + "Description": "Main Card '{0}' does not exist." + }, + { + "Name": "ActionAttribute_MainCardIsRetired", + "Value": 964017, + "Description": "Main Card '{0}' is retired." + }, + { + "Name": "ActionAttribute_MainCardIsOfTypeSelfService", + "Value": 964018, + "Description": "Main Card '{0}' is of type self service." + }, + { + "Name": "ActionAttribute_SideCardDoesNotExist", + "Value": 964019, + "Description": "Side Card '{0}' does not exist." + }, + { + "Name": "ActionAttribute_SideCardIsRetired", + "Value": 964020, + "Description": "Side Card '{0}' is retired." + }, + { + "Name": "ActionAttribute_SideCardIsOfTypeSelfService", + "Value": 964021, + "Description": "Side Card '{0}' is of type self service." + }, + { + "Name": "ActionAttribute_DueDateAttributeIsRequired", + "Value": 964057, + "Description": "Due Date Attribute '{0}' is required in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_DueDateAttributeDoesNotExist", + "Value": 964058, + "Description": "Due Date Attribute '{0}' in Action Attribute '{1}' does not exist." + }, + { + "Name": "ActionAttribute_DueDateAttributeIsNotValid", + "Value": 964059, + "Description": "Due Date Attribute '{0}' in Action Attribute '{1}' is not valid." + }, + { + "Name": "ActionAttribute_DueDateAttributeRequiresContractWithCustomerCalendar", + "Value": 964060, + "Description": "Due Date Attribute '{0}' can only be used when parent Contract has a Customer Calendar in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_DueDateAttributeRequiresContractWithSupplierCalendar", + "Value": 964061, + "Description": "Due Date Attribute '{0}' can only be used when parent Contract has a Supplier Calendar in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_DueDateAttributeNotValidForProcessType", + "Value": 964062, + "Description": "Due Date Attribute '{0}' uses a Method which cannot be used on Actions." + }, + { + "Name": "ActionAttribute_DueDateAttributeRequiresDataDictionaryOnCard", + "Value": 964063, + "Description": "Due Date Attribute '{0}' requires one of the Cards linked to the Action to contain Data Dictionary '{1}'." + }, + { + "Name": "ActionAttribute_DueDateAttributeMustLinkToSpecificScheduleStructure", + "Value": 964064, + "Description": "Due Date Attribute '{0}' requires the Action to be linked to Schedule Structure '{1}'." + }, + { + "Name": "ActionAttribute_AllocationAttributeIsRequired", + "Value": 964065, + "Description": "Allocation Attribute is required in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_AllocationAttributeDoesNotExist", + "Value": 964066, + "Description": "Allocation Attribute '{0}' in Action Attribute '{1}' does not exist." + }, + { + "Name": "ActionAttribute_AllocationAttributeIsNotValid", + "Value": 964067, + "Description": "Allocation Attribute '{0}' in Action Attribute '{1}' is not valid." + }, + { + "Name": "ActionAttribute_AllocationAttributeRequiresDataDictionaryOnCard", + "Value": 964068, + "Description": "Allocation Attribute '{0}' requires one of the Cards linked to the Case to contain Data Dictionary '{1}'." + }, + { + "Name": "ActionAttribute_AllocationAttributeRequiresContractWithTeam", + "Value": 964069, + "Description": "Allocation Attribute '{0}' can only be used when parent Contract has a Team specified in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_DueDateAttributeStepMustLinkToScheduleDate", + "Value": 964100, + "Description": "Due Date Attribute '{0}' requires the Action to be linked to a Schedule Date." + }, + { + "Name": "ActionAttribute_StepNumberIsRequired", + "Value": 964102, + "Description": "Step number is required." + }, + { + "Name": "ActionAttribute_PreviousActionAttributeDoesNotExist", + "Value": 964103, + "Description": "Previous action attribute '{0}' does not exist." + }, + { + "Name": "ActionAttribute_PreviousActionAttributeIsRetired", + "Value": 964104, + "Description": "Previous action attribute '{0}' is retired." + }, + { + "Name": "ActionAttribute_ResponseEmailFromIsRequired", + "Value": 964105, + "Description": "Response Email From is required in Action Attribute unless set on Case." + }, + { + "Name": "ActionAttribute_ResponseEmailFromTooLong", + "Value": 964106, + "Description": "Response Email From is too long." + }, + { + "Name": "ActionAttribute_EmailToIsRequired", + "Value": 964107, + "Description": "Email To is required." + }, + { + "Name": "ActionAttribute_ActionGeneralAttributeIsRequired", + "Value": 964108, + "Description": "Action General Attribute '{0} is required." + }, + { + "Name": "ActionAttribute_ActionGeneralAttributeIsRetired", + "Value": 964109, + "Description": "Action General Attribute '{0} is retired." + }, + { + "Name": "ActionAttribute_ActionGeneralAttributeDoesNotExist", + "Value": 964110, + "Description": "Action General Attribute '{0} does not exist." + }, + { + "Name": "ActionAttribute_DueDateAttributeAllStepsMustLinkToScheduleDate", + "Value": 964111, + "Description": "Due Date Attribute '{0}' requires all steps to be linked to a Schedule Date." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeMustBeEmpty", + "Value": 964112, + "Description": "Peer review due date attribute must not be set." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeMustBeEmpty", + "Value": 964113, + "Description": "Peer review allocation attribute must not be set." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeIsRequired", + "Value": 964114, + "Description": "Peer Review Due Date Attribute is required." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeDoesNotExist", + "Value": 964115, + "Description": "Peer Review Due Date Attribute '{0}' does not exist." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeIsNotValid", + "Value": 964116, + "Description": "Peer Review Due Date Attribute '{0}' is not valid." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeRequiresContractWithCustomerCalendar", + "Value": 964117, + "Description": "Peer Review Due Date Attribute '{0}' can only be used when parent Contract has a Customer Calendar in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeRequiresContractWithSupplierCalendar", + "Value": 964118, + "Description": "Peer Review Due Date Attribute '{0}' can only be used when parent Contract has a Supplier Calendar in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeNotValidForProcessType", + "Value": 964119, + "Description": "Peer Review Due Date Attribute '{0}' uses a Method which cannot be used on Actions." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeRequiresDataDictionaryOnCard", + "Value": 964120, + "Description": "Peer Review Due Date Attribute '{0}' requires one of the Cards linked to the Action to contain Data Dictionary '{1}'." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeMustLinkToSpecificScheduleStructure", + "Value": 964121, + "Description": "Peer Review Due Date Attribute '{0}' requires the Action to be linked to Schedule Structure '{1}'." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeStepMustLinkToScheduleDate", + "Value": 964122, + "Description": "Peer Review Due Date Attribute '{0}' requires the Action to be linked to a Schedule Date." + }, + { + "Name": "ActionAttribute_PeerReviewDueDateAttributeAllStepsMustLinkToScheduleDate", + "Value": 964123, + "Description": "Peer Review Due Date Attribute '{0}' requires all Actions to be linked to a Schedule Date." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeIsRequired", + "Value": 964124, + "Description": "Peer Review Allocation Attribute is required." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeDoesNotExist", + "Value": 964125, + "Description": "Peer Review Allocation Attribute '{0}' does not exist." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeIsNotValid", + "Value": 964126, + "Description": "Peer Review Allocation Attribute '{0}' is not valid." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeRequiresDataDictionaryOnCard", + "Value": 964127, + "Description": "Peer Review Allocation Attribute '{0}' requires one of the Cards linked to the Case to contain Data Dictionary '{1}'." + }, + { + "Name": "ActionAttribute_PeerReviewAllocationAttributeRequiresContractWithTeam", + "Value": 964128, + "Description": "Peer Review Allocation Attribute '{0}' can only be used when parent Contract has a Team specified in Action Attribute '{1}'." + }, + { + "Name": "ActionAttribute_AbbyyPlatformIsRequired", + "Value": 964129, + "Description": "Abbyy Platform is required." + }, + { + "Name": "ActionAttribute_AbbyyProjectIsRequired", + "Value": 964130, + "Description": "Abbyy Project is required." + }, + { + "Name": "ActionAttribute_AbbyyPlatformMustBeEmpty", + "Value": 964131, + "Description": "Abbyy Platform Must Be Empty." + }, + { + "Name": "ActionAttribute_AbbyyProjectMustBeEmpty", + "Value": 964132, + "Description": "Abbyy Project Must Be Empty." + }, + { + "Name": "ActionAttribute_AbbyyFileTagMustBeEmpty", + "Value": 964133, + "Description": "Abbyy File Tag Must Be Empty." + }, + { + "Name": "ActionAttribute_AbbyyOutputFileTagMustBeEmpty", + "Value": 964134, + "Description": "Abbyy Output File Tag Must Be Empty." + }, + { + "Name": "ActionAttribute_PreviousCaseConditionOutputAttributeDoesNotExist", + "Value": 964135, + "Description": "Previous Case Condition Output Attribute '{1}' does not exist." + }, + { + "Name": "ActionAttribute_PreviousCaseConditionOutputAttributeIsRetired", + "Value": 964136, + "Description": "Previous Case Condition Output Attribute '{1}' is retired." + }, + { + "Name": "ActionAttribute_EmailTemplateDoesNotExist", + "Value": 964137, + "Description": "Email Template '{0}' does not exist." + }, + { + "Name": "ActionAttribute_EmailTemplateIsRetired", + "Value": 964138, + "Description": "Email Template '{0}' is retired." + }, + { + "Name": "ActionAttribute_EmailTemplatePurposeNotGeneral", + "Value": 964139, + "Description": "Email Template '{0}' purpose is not 'General'." + }, + { + "Name": "ActionAttribute_WebApiIntegrationUrlIsRequired", + "Value": 964141, + "Description": "Web Api Integration URL is required." + }, + { + "Name": "ActionAttribute_WebApiIntegrationUrlMustBeBlank", + "Value": 964142, + "Description": "Web Api Integration URL must be blank." + }, + { + "Name": "ActionAttribute_WebApiIntegrationUrlIsNotValid", + "Value": 964143, + "Description": "Web Api Integration URL ('{0}') is not valid." + }, + { + "Name": "ActionAttribute_DuplicateOrderWithinStep", + "Value": 964144, + "Description": "Order '{0}' is duplicated within step '{1}'." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseMustHaveLiveVersion", + "Value": 964196, + "Description": "Start or Wait Case '{0}' must have a Live Version." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseMustHaveLiveOrTestVersion", + "Value": 964197, + "Description": "Start or Wait Case '{0}' must have a Live or Test Version." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseAttributeDoesNotExist", + "Value": 964203, + "Description": "Start or Wait Case '{1}' must does not exist." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseAttributeIsRetired", + "Value": 964204, + "Description": "Start or Wait Case '{1}' is retired." + }, + { + "Name": "ActionAttribute_SideCardMustBeDifferentToMainCard", + "Value": 964216, + "Description": "Cannot use the same card for Main Card and Side Card." + }, + { + "Name": "ActionAttribute_ActionGeneralAttributeActionTypeMismatch", + "Value": 964220, + "Description": "Action General Attribute '{0} action type does not match action type." + }, + { + "Name": "ActionAttribute_StepNumberDoesNotExistInCaseType", + "Value": 964227, + "Description": "Step number '{0}' does not exist in Case Type." + }, + { + "Name": "ActionAttribute_CaseStepMismatch", + "Value": 964232, + "Description": "Case Step Mismatch. Step Number Expected '{0}' but found '{1}'." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseIsRequired", + "Value": 964233, + "Description": "Start or Wait Case is required." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseAttributeMustNotBeSelf", + "Value": 964235, + "Description": "Process to Launch is the same Process which is not supported." + }, + { + "Name": "ActionAttribute_ContactTagDoesNotExist", + "Value": 964331, + "Description": "Contact Tag '{0}' does not exist." + }, + { + "Name": "ActionAttribute_ContactTagIsRetired", + "Value": 964332, + "Description": "Contact Tag '{0}' is retired." + }, + { + "Name": "ActionAttribute_PeerReviewLocalChecklistMustBeEmpty", + "Value": 964333, + "Description": "Peer review local checklist must not be set." + }, + { + "Name": "ActionAttribute_AbbyyPlatformDoesNotExist", + "Value": 964357, + "Description": "Abbyy Platform '{0}' does not exist." + }, + { + "Name": "ActionAttribute_AbbyyPlatformIsRetired", + "Value": 964358, + "Description": "Abbyy Platform '{0}' is retired." + }, + { + "Name": "ActionAttribute_AbbyyProjectDoesNotExist", + "Value": 964359, + "Description": "Abbyy Project '{0}' does not exist." + }, + { + "Name": "ActionAttribute_AbbyyProjectIsRetired", + "Value": 964360, + "Description": "Abbyy Project '{0}' is retired." + }, + { + "Name": "ActionAttribute_AbbyyFileTagDoesNotExist", + "Value": 964361, + "Description": "Abbyy File Tag '{0}' does not exist." + }, + { + "Name": "ActionAttribute_AbbyyFileTagIsRetired", + "Value": 964362, + "Description": "Abbyy File Tag '{0}' is retired." + }, + { + "Name": "ActionAttribute_AbbyyOutputFileTagDoesNotExist", + "Value": 964363, + "Description": "Abbyy Output File Tag '{0}' does not exist." + }, + { + "Name": "ActionAttribute_AbbyyOutputFileTagIsRetired", + "Value": 964364, + "Description": "Abbyy Output File Tag '{0}' is retired." + }, + { + "Name": "ActionAttribute_StartOrWaitCaseAttributeUsesDifferentSchedule", + "Value": 964365, + "Description": "Start or Wait Case '{0}' uses a different schedule." + }, + { + "Name": "ActionAttribute_CannotUseSameAddressForFromAndTo", + "Value": 964366, + "Description": "The 'To' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "ActionAttribute_CannotUseSameAddressForFromAndCC", + "Value": 964367, + "Description": "The 'CC' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "ActionAttribute_CannotUseSameAddressForFromAndBCC", + "Value": 964368, + "Description": "The 'BCC' recipient list contains an address that may be used as a 'From' address." + }, + { + "Name": "ActionAttribute_WebApiIntegrationResponseWindowMustBePositiveInteger", + "Value": 964369, + "Description": "Web Api Integration Response Window can not be less than 1 minute." + }, + { + "Name": "ActionAttribute_WebApiIntegrationResponseWindowMustBlank", + "Value": 964370, + "Description": "Web Api Integration Response Window must be blank." + }, + { + "Name": "ActionAttribute_AllocationAttributeNotValidForProcessType", + "Value": 964371, + "Description": "Allocation Attribute '{0}' uses a Allocation Method which cannot be used on Actions." + }, + { + "Name": "ActionGeneralAttribute_DoesNotExist", + "Value": 965000, + "Description": "Action General Attribute '{0}' does not exist." + }, + { + "Name": "ActionGeneralAttribute_NameIsRequired", + "Value": 965001, + "Description": "Name is a required field." + }, + { + "Name": "ActionGeneralAttribute_NameIsDuplicated", + "Value": 965002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "ActionGeneralAttribute_InUseByLiveConfiguration", + "Value": 965007, + "Description": "In use by Live configuration." + }, + { + "Name": "ActionGeneralAttribute_NameIsTooLong", + "Value": 965147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "ActionGeneralAttribute_SOPURLIsTooLong", + "Value": 965195, + "Description": "SOP URL is too long. Maximum length is SOPURL characters." + }, + { + "Name": "ActionGeneralAttribute_ActionTypeCannotChange", + "Value": 965221, + "Description": "Action Type cannot be changed after creation." + }, + { + "Name": "ActionGeneralAttribute_CannotChangeFieldWhenInLiveUse", + "Value": 965226, + "Description": "Field cannot be changed when in use by Live configuration." + }, + { + "Name": "TicketAttributeVersion_MainCardDoesNotExist", + "Value": 967016, + "Description": "Main Card '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_MainCardIsRetired", + "Value": 967017, + "Description": "Main Card '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_MainCardIsOfTypeSelfService", + "Value": 967018, + "Description": "Main Card '{0}' is of type self service." + }, + { + "Name": "TicketAttributeVersion_SideCardDoesNotExist", + "Value": 967019, + "Description": "Side Card '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_SideCardIsRetired", + "Value": 967020, + "Description": "Side Card '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_SideCardIsOfTypeSelfService", + "Value": 967021, + "Description": "Side Card '{0}' is of type self service." + }, + { + "Name": "TicketAttributeVersion_SelfServiceCardDoesNotExist", + "Value": 967022, + "Description": "Self Service Card '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_SelfServiceCardIsRetired", + "Value": 967023, + "Description": "Self Service Card '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_SelfServiceCardIsNotOfTypeSelfService", + "Value": 967024, + "Description": "Self Service Card '{0}' is of type self service." + }, + { + "Name": "TicketAttributeVersion_TicketLoggedEmailTemplateDoesNotExist", + "Value": 967026, + "Description": "Ticket Logged Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_TicketLoggedEmailTemplateIsRetired", + "Value": 967027, + "Description": "Ticket Logged Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_TicketLoggedEmailTemplateNotOfTypeTicketLogged", + "Value": 967028, + "Description": "Ticket Logged Email Template '{0}' is not of type Ticket Logged." + }, + { + "Name": "TicketAttributeVersion_TicketSplitEmailTemplateDoesNotExist", + "Value": 967029, + "Description": "Ticket Split Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_TicketSplitEmailTemplateIsRetired", + "Value": 967030, + "Description": "Ticket Split Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_TicketSplitEmailTemplateNotOfTypeTicketSplit", + "Value": 967031, + "Description": "Ticket Split Email Template '{0}' is not of type Ticket Split." + }, + { + "Name": "TicketAttributeVersion_TicketRejectedEmailTemplateDoesNotExist", + "Value": 967032, + "Description": "Ticket Rejected Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_TicketRejectedEmailTemplateIsRetired", + "Value": 967033, + "Description": "Ticket Rejected Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_TicketRejectedEmailTemplateNotOfTypeTicketRejected", + "Value": 967034, + "Description": "Ticket Rejected Email Template '{0}' is not of type Ticket Rejected." + }, + { + "Name": "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateDoesNotExist", + "Value": 967035, + "Description": "Ticket Launched Case Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateIsRetired", + "Value": 967036, + "Description": "Ticket Launched Case Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_TicketLaunchedCaseEmailTemplateNotOfTypeTicketLaunchedCase", + "Value": 967037, + "Description": "Ticket Launched Case Email Template '{0}' is not of type Ticket Launch Case." + }, + { + "Name": "TicketAttributeVersion_TicketNoResponseEmailTemplateDoesNotExist", + "Value": 967038, + "Description": "Ticket No Response Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_TicketNoResponseEmailTemplateIsRetired", + "Value": 967039, + "Description": "Ticket No Response Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_TicketNoResponseEmailTemplateNotOfTypeTicketNoResponse", + "Value": 967040, + "Description": "Ticket No Response Email Template '{0}' is not of type Ticket No Response." + }, + { + "Name": "TicketAttributeVersion_FeedbackFooterEmailTemplateDoesNotExist", + "Value": 967041, + "Description": "Feedback Footer Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_FeedbackFooterEmailTemplateIsRetired", + "Value": 967042, + "Description": "Feedback Footer Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_FeedbackFooterEmailTemplateNotOfTypeFeedbackFooter", + "Value": 967043, + "Description": "Feedback Footer Email Template '{0}' is not of type Feedback Footer." + }, + { + "Name": "TicketAttributeVersion_DefaultAdHocEmailTemplateDoesNotExist", + "Value": 967044, + "Description": "Default AdHoc Email Template '{0}' does not exist." + }, + { + "Name": "TicketAttributeVersion_DefaultAdHocEmailTemplateIsRetired", + "Value": 967045, + "Description": "Default AdHoc Email Template '{0}' is retired." + }, + { + "Name": "TicketAttributeVersion_DefaultAdHocEmailTemplateNotOfTypeGeneral", + "Value": 967046, + "Description": "Default AdHoc Email Template '{0}' is not of type General." + }, + { + "Name": "TicketAttributeVersion_SideCardMustBeDifferentToMainCard", + "Value": 967216, + "Description": "Cannot use the same card for Main Card and Side Card." + }, + { + "Name": "TicketAttributeVersion_OneOrMoreCategoriesRequired", + "Value": 967225, + "Description": "Ticket must include one or more Categories." + }, + { + "Name": "TicketAttributeVersion_TooManyTicketCategories", + "Value": 967236, + "Description": "The ticket should have less then or equal to {0} Categories." + }, + { + "Name": "DefectCategory_NameIsRequired", + "Value": 973001, + "Description": "Name is required." + }, + { + "Name": "DefectCategory_NameIsDuplicated", + "Value": 973002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "DefectCategory_NameIsTooLong", + "Value": 973147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "DefectPartyAtFaultOption_NameIsRequired", + "Value": 974001, + "Description": "Defect Party at Fault Option Name is required." + }, + { + "Name": "DefectPartyAtFaultOption_NameIsDuplicated", + "Value": 974002, + "Description": "Defect Party at Fault Option Name is duplicated." + }, + { + "Name": "FileTag_DoesNotExist", + "Value": 976000, + "Description": "File Tag '{0}' does not exist." + }, + { + "Name": "FileTag_NameIsRequired", + "Value": 976001, + "Description": "Name is a required field." + }, + { + "Name": "FileTag_NameIsDuplicated", + "Value": 976002, + "Description": "Name '{0}' is already in use." + }, + { + "Name": "FileTag_NameIsTooLong", + "Value": 976147, + "Description": "Name is too long. Maximum length is 256 characters." + }, + { + "Name": "AbbyyPlatform_NameIsRequired", + "Value": 977001, + "Description": "Abbyy Platform Name is required." + }, + { + "Name": "AbbyyPlatform_NameIsDuplicated", + "Value": 977002, + "Description": "Abbyy Platform Name is in Use." + }, + { + "Name": "AbbyyPlatform_UrlIsRequired", + "Value": 977237, + "Description": "Abbyy Platform URL is required." + }, + { + "Name": "AbbyyPlatform_UrlIsNotValid", + "Value": 977239, + "Description": "Abbyy Platform URL is not valid." + }, + { + "Name": "AbbyyPlatform_UrlIsTooLong", + "Value": 977240, + "Description": "Abbyy Platform URL is too long." + }, + { + "Name": "AbbyyPlatform_UsernameIsRequired", + "Value": 977241, + "Description": "Abbyy Platform Username is required." + }, + { + "Name": "AbbyyPlatform_PasswordIsRequired", + "Value": 977242, + "Description": "Abbyy Platform Password is required." + }, + { + "Name": "CaseConditionAttribute_NameIsRequired", + "Value": 980001, + "Description": "Condition Name is required." + }, + { + "Name": "CaseConditionAttribute_ExpressionIsRequired", + "Value": 980212, + "Description": "Condition Expression is required." + }, + { + "Name": "CaseConditionAttribute_ExactlyOneElseIsRequired", + "Value": 980213, + "Description": "Condition must have exactly 1 Else output." + }, + { + "Name": "CaseConditionAttribute_External", + "Value": 980214, + "Description": "{0}." + }, + { + "Name": "CaseConditionAttribute_MustNotBeFirstCondition", + "Value": 980215, + "Description": "Condition using variable '{0}' must not be the first condition." + }, + { + "Name": "CaseConditionOutputAttribute_NameIsRequired", + "Value": 981001, + "Description": "Condition Output Name is required." + }, + { + "Name": "CannedResponse_EmailTemplateAlreadyExists", + "Value": 984244, + "Description": "Email Template '{0}' already exists in Service Line '{1}'." + }, + { + "Name": "WebHookSubscription_FilterObjectTypeIsRequired", + "Value": 990293, + "Description": "Missing value, FilterObjectType is mandatory and must be supplied." + }, + { + "Name": "WebHookSubscription_WebHookIsRequired", + "Value": 990294, + "Description": "Missing value, WebHook type is mandatory and must be supplied." + }, + { + "Name": "WebHookSubscription_SubscriberURLIsRequired", + "Value": 990295, + "Description": "Missing value, Subscriber URL is mandatory and must be supplied." + }, + { + "Name": "WebHookSubscription_URLIsNotValid", + "Value": 990296, + "Description": "The supplied subscription URL is not valid." + }, + { + "Name": "WebHookSubscription_WebHookDoesNotExist", + "Value": 990297, + "Description": "The requested WebHook does not exist." + }, + { + "Name": "WebHookSubscription_CreatedByAnotherUser", + "Value": 990298, + "Description": "This WebHook subscription was created by another user, you may not amend or delete it." + }, + { + "Name": "InvalidIntegrationRobotFarmProcessGUID", + "Value": 990299, + "Description": "Invalid Integration Robot Farm Process GUID" + }, + { + "Name": "WebHookSubscription_AlreadyExists", + "Value": 990372, + "Description": "A WebHook subscription with the same settings already exists. Duplicate subscriptions are not permitted" + } + ] + }, + "BasicContactTag": { + "description": "Abridged version of FullContactTag DTO for use in lists.", + "required": [ + "Name", + "AllowMultiple", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "AllowMultiple": { + "description": "Whether multiple Contacts can be attributed with this Contact Tag on the same Packet.", + "type": "boolean" + }, + "SupplierCompanyGUID": { + "format": "uuid", + "description": "Unique identifier for the Supplier Company", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "FullContactTag": { + "description": "All data about an Contact Tag for Builder.", + "required": [ + "Name", + "AllowMultiple", + "ShowToCallHandling", + "ShowToSelfService", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "AllowMultiple": { + "description": "Whether multiple Contacts can be attributed with this Contact Tag on the same Packet.", + "type": "boolean" + }, + "ShowToCallHandling": { + "description": "Whether the Packets including a Contact attributed with this Contact Tag show on the Call Handling page for the Contact.", + "type": "boolean" + }, + "ShowToSelfService": { + "description": "Whether the Packets including a Contact attributed with this Contact Tag show to the Contact in Self Service.", + "type": "boolean" + }, + "SupplierCompany": { + "$ref": "#/definitions/BasicLocalisedNameAndDescription", + "description": "The (optional) Supplier Company that this Contact Tag is associated with. If set the Tag will only show to Packets under a Contract for this Company." + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ApiResponse[FullContactTag,ConfigurationValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullContactTag", + "description": "The created/updated object." + } + } + }, + "FullActionPacket": { + "description": "All data about an Action Packet.", + "type": "object", + "properties": { + "Checklist": { + "description": "The checklist that the resource performing the Action must complete.", + "type": "array", + "items": { + "$ref": "#/definitions/ChecklistItem" + } + }, + "PeerReviewerChecklist": { + "description": "The checklist for the peer reviewer resource while performing review of the completed Action.", + "type": "array", + "items": { + "$ref": "#/definitions/PeerReviewerChecklistItem" + } + }, + "EndDate": { + "format": "date-time", + "description": "The date/time that the Packet was Closed.", + "type": "string" + }, + "CustomerGUID": { + "format": "uuid", + "description": "The unique identifier of the Customer that the Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ContractGUID": { + "format": "uuid", + "description": "The unique identifier of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceGUID": { + "format": "uuid", + "description": "The unique identifier of the Service under the Contract that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceLineGUID": { + "format": "uuid", + "description": "The unique identifier of the Service Line that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "LastUpdatedByUserOn": { + "format": "date-time", + "description": "The date/time that the Packet was updated by the User identified in .", + "type": "string" + }, + "ResolutionMethod": { + "$ref": "#/definitions/PacketResolutionMethod" + }, + "OwnerUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that is currently responsible for the Packet even if it is not currently assigned to them to work on." + }, + "ResolvedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that resolved the Packet." + }, + "LastUpdatedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that last updated the Packet." + }, + "Files": { + "description": "The list of Files associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketFile" + } + }, + "Contacts": { + "description": "The list of Contacts associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketContact" + } + }, + "Defects": { + "description": "The list of Defects associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketDefect" + } + }, + "StartDate": { + "format": "date-time", + "description": "The date/time that the Packet was created.", + "type": "string" + }, + "CustomerName": { + "description": "The name of the Customer that the Packet is for.", + "type": "string" + }, + "SupplierName": { + "description": "The name of the Supplier delivering the service for this Packet.", + "type": "string" + }, + "ContractName": { + "description": "The name of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string" + }, + "ServiceName": { + "description": "The name of the Service under the Contract that this Packet is for.", + "type": "string" + }, + "ServiceLineName": { + "description": "The name of the Service Line that this Packet is for.", + "type": "string" + }, + "ProcessTypeName": { + "description": "The name of the Process Type within the Service Line that this Packet is for.", + "type": "string" + }, + "Reference": { + "description": "The unique and human-readable reference of the Packet.", + "type": "string" + }, + "Title": { + "description": "The Title of the Packet.", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PacketStatus" + }, + "DueDate": { + "format": "date-time", + "description": "The date/time that the Packet is currently due to be Resolved to meet SLA.", + "type": "string" + }, + "ResolvedOn": { + "format": "date-time", + "description": "The date/time that the Packet was Resolved.", + "type": "string" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ChecklistItem": { + "description": "A single Checklist on an Action.", + "type": "object", + "properties": { + "PeerReviewNote": { + "description": "Optional notes entered by the User when reviewing the decision.", + "type": "string" + }, + "CheckedBy": { + "$ref": "#/definitions/UserForList", + "description": "The user that updated the checklist decision." + }, + "CheckedOn": { + "format": "date-time", + "description": "The date/time that the Checklist decision was given.", + "type": "string" + }, + "Result": { + "$ref": "#/definitions/ChecklistResult" + }, + "Note": { + "description": "Optional notes entered by the User when giving the decision.", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/ChecklistForPacket", + "description": "The definition of the Check being performed." + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "PeerReviewerChecklistItem": { + "description": "A single Checklist on an Action.", + "required": [ + "Result" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "CheckedBy": { + "$ref": "#/definitions/UserForList", + "description": "The user that updated the checklist decision." + }, + "CheckedOn": { + "format": "date-time", + "description": "The date/time that the Checklist decision was given.", + "type": "string" + }, + "Result": { + "$ref": "#/definitions/ChecklistResult" + }, + "Note": { + "description": "Optional notes entered by the User when giving the decision.", + "type": "string" + }, + "Definition": { + "$ref": "#/definitions/ChecklistForPacket", + "description": "The definition of the Check being performed." + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ChecklistResult": { + "enum": [ + "None", + "NA", + "No", + "Yes" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "None", + "Value": 0, + "Description": "None" + }, + { + "Name": "NA", + "Value": 1, + "Description": "N/A" + }, + { + "Name": "No", + "Value": 2, + "Description": "No" + }, + { + "Name": "Yes", + "Value": 3, + "Description": "Yes" + } + ] + }, + "ChecklistForPacket": { + "description": "Details about a Checklist relevant for operational users.", + "required": [ + "Order", + "IsGlobal" + ], + "type": "object", + "properties": { + "Order": { + "format": "int32", + "description": "The position of the Checklist when shown on screen.", + "type": "integer" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "IsGlobal": { + "description": "Indication of if the Checklist is common to all Actions of the same Action Type.", + "type": "boolean" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "FullTicketPacket": { + "description": "All data about a Ticket Packet.", + "type": "object", + "properties": { + "TicketCategoryAttribute": { + "$ref": "#/definitions/TicketCategoryAttributeForPacket", + "description": "The category of the Ticket." + }, + "EndDate": { + "format": "date-time", + "description": "The date/time that the Packet was Closed.", + "type": "string" + }, + "CustomerGUID": { + "format": "uuid", + "description": "The unique identifier of the Customer that the Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ContractGUID": { + "format": "uuid", + "description": "The unique identifier of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceGUID": { + "format": "uuid", + "description": "The unique identifier of the Service under the Contract that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceLineGUID": { + "format": "uuid", + "description": "The unique identifier of the Service Line that this Packet is for.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "LastUpdatedByUserOn": { + "format": "date-time", + "description": "The date/time that the Packet was updated by the User identified in .", + "type": "string" + }, + "ResolutionMethod": { + "$ref": "#/definitions/PacketResolutionMethod" + }, + "OwnerUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that is currently responsible for the Packet even if it is not currently assigned to them to work on." + }, + "StartedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that started the Packet." + }, + "ResolvedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that resolved the Packet." + }, + "LastUpdatedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that last updated the Packet." + }, + "Files": { + "description": "The list of Files associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketFile" + } + }, + "Contacts": { + "description": "The list of Contacts associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketContact" + } + }, + "Defects": { + "description": "The list of Defects associated with this group of Packets.", + "type": "array", + "items": { + "$ref": "#/definitions/ExistingPacketDefect" + } + }, + "StartDate": { + "format": "date-time", + "description": "The date/time that the Packet was created.", + "type": "string" + }, + "CustomerName": { + "description": "The name of the Customer that the Packet is for.", + "type": "string" + }, + "SupplierName": { + "description": "The name of the Supplier delivering the service for this Packet.", + "type": "string" + }, + "ContractName": { + "description": "The name of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string" + }, + "ServiceName": { + "description": "The name of the Service under the Contract that this Packet is for.", + "type": "string" + }, + "ServiceLineName": { + "description": "The name of the Service Line that this Packet is for.", + "type": "string" + }, + "ProcessTypeName": { + "description": "The name of the Process Type within the Service Line that this Packet is for.", + "type": "string" + }, + "Reference": { + "description": "The unique and human-readable reference of the Packet.", + "type": "string" + }, + "Title": { + "description": "The Title of the Packet.", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PacketStatus" + }, + "DueDate": { + "format": "date-time", + "description": "The date/time that the Packet is currently due to be Resolved to meet SLA.", + "type": "string" + }, + "ResolvedOn": { + "format": "date-time", + "description": "The date/time that the Packet was Resolved.", + "type": "string" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + + }, + "TicketCategoryAttributeForPacket": { + "description": "The data about a Ticket Category that is relevant for a Ticket Packet at runtime.", + "required": [ + "CategoryLevel1GUID", + "CategoryLevel2GUID", + "CategoryLevel3GUID", + "AllowTitleChange", + "RecordCount" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "CategoryLevel1": { + "description": "The name of the Level 1 Ticket Category", + "type": "string" + }, + "CategoryLevel1GUID": { + "format": "uuid", + "description": "The unique identifier of the Level 1 Ticket Category", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CategoryLevel2": { + "description": "The name of the Level 2 Ticket Category", + "type": "string" + }, + "CategoryLevel2GUID": { + "format": "uuid", + "description": "The unique identifier of the Level 2 Ticket Category", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CategoryLevel3": { + "description": "The name of the Level 3 Ticket Category", + "type": "string" + }, + "CategoryLevel3GUID": { + "format": "uuid", + "description": "The unique identifier of the Level 3 Ticket Category", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "AllowTitleChange": { + "description": "Can the Title of Tickets in this category have their Titles changed after they have been created.", + "type": "boolean" + }, + "EstimatedDurationMS": { + "format": "double", + "description": "The time in milliseconds it is estimated for an Operational User to resolve a Ticket in this Category.", + "type": "number" + }, + "RecordCount": { + "description": "Should the Record Count field show to Operational Users for Tickets in this Category.", + "type": "boolean" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ActionAttributeForLaunch": { + "description": "The data about an Action Attribute that is relevant for launching an action", + "required": [ + "Order", + "AllowManualCreation", + "AllowOverrideDueDate", + "IsAdhoc" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "Order": { + "format": "int32", + "description": "The Order of the Action within the Step.", + "type": "integer" + }, + "StepNumber": { + "format": "int32", + "description": "The number of the Step that this Action is on.", + "type": "integer" + }, + "AllowManualCreation": { + "description": "True if a User can manually start this Action.", + "type": "boolean" + }, + "Instruction": { + "description": "The instructions to display to Operational Users to help them complete this Action.", + "type": "string" + }, + "AllowOverrideDueDate": { + "$ref": "#/definitions/AllowOverrideDueDate" + }, + "DueDateAttribute": { + "$ref": "#/definitions/DueDateAttributeForPacket", + "description": "The Due Date flavour for this Action." + }, + "ActionName": { + "description": "The name of the action", + "type": "string" + }, + "IsAdhoc": { + "description": "Is This an Adhoc Action", + "type": "boolean" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "AllowOverrideDueDate": { + "enum": [ + "No", + "Yes", + "OnCreationOnly" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "No", + "Value": 0, + "Description": "No" + }, + { + "Name": "Yes", + "Value": 1, + "Description": "Yes" + }, + { + "Name": "OnCreationOnly", + "Value": 2, + "Description": "On Creation Only" + } + ] + }, + "DueDateAttributeForPacket": { + "description": "The data about an Due Date Attribute that is relevant for a Packet at runtime.", + "required": [ + "Name", + "AllowOverrideDueDate" + ], + "type": "object", + "properties": { + "AllowOverrideDueDate": { + "$ref": "#/definitions/AllowOverrideDueDate" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "InUseByLiveProcess": { + "description": "Flag indicating if the attribute is referenced by a live Case/Ticket process.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "BasicPacket": { + "description": "Abridged version of FullPacket DTO for use in lists.", + "required": [ + "StartDate", + "Status", + "StartedByMethod" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "StartDate": { + "format": "date-time", + "description": "The date/time that the Packet was created.", + "type": "string" + }, + "CustomerName": { + "description": "The name of the Customer that the Packet is for.", + "type": "string" + }, + "SupplierName": { + "description": "The name of the Supplier delivering the service for this Packet.", + "type": "string" + }, + "ContractName": { + "description": "The name of the Contract between the Customer and Supplier that this Packet is transacting under.", + "type": "string" + }, + "ServiceName": { + "description": "The name of the Service under the Contract that this Packet is for.", + "type": "string" + }, + "ServiceLineName": { + "description": "The name of the Service Line that this Packet is for.", + "type": "string" + }, + "ProcessTypeName": { + "description": "The name of the Process Type within the Service Line that this Packet is for.", + "type": "string" + }, + "Reference": { + "description": "The unique and human-readable reference of the Packet.", + "type": "string" + }, + "Title": { + "description": "The Title of the Packet.", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PacketStatus" + }, + "DueDate": { + "format": "date-time", + "description": "The date/time that the Packet is currently due to be Resolved to meet SLA.", + "type": "string" + }, + "ResolvedOn": { + "format": "date-time", + "description": "The date/time that the Packet was Resolved.", + "type": "string" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "PacketValidationMessage": { + "description": "A validation message that relates to Packet objects.", + "required": [ + "MessageID" + ], + "type": "object", + "properties": { + "MessageID": { + "$ref": "#/definitions/PacketValidatorMessage" + }, + "IsError": { + "description": "Indicates the severity of this message.", + "type": "boolean", + "readOnly": true + }, + "MessageDescription": { + "description": "Default (en-gb) translation lookup (without parameter replacement).", + "type": "string", + "readOnly": true + }, + "Parameters": { + "description": "A zero based, integer indexed collection of objects to insert into the MessageDescription.", + "type": "array", + "items": { + "type": "object" + }, + "readOnly": true + } + } + }, + "PacketValidatorMessage": { + "enum": [ + "General_UnexpectedFailure", + "Packet_CannotChangeTitle", + "Packet_ScheduledFollowUpOnMustBeInFuture", + "Packet_ScheduledFollowUpOnRequired", + "Packet_RecordCountMustBeGreatherThanZero", + "Packet_OverrideDueDateCannotChange", + "Packet_OverrideDueDateNotValid", + "Packet_PrimaryContactMissing", + "Packet_RequestorContactMissing", + "Packet_NotAccessibleBySSOUser", + "Packet_NotAccessibleByAuthenticatedUser", + "Packet_IsCompletedNoUpdatesPossible", + "Packet_IsNotAssignedToAuthenticatedUser", + "Packet_AuthenticatedUserCanOnlyAccessLivePackets", + "Packet_AuthenticatedUserCanOnlyAccessTestPackets", + "Packet_DaysToWaitForMoreInformationMustBeGreaterThanOne", + "Packet_PacketCannotBeDeletedWhenProcessing", + "Packet_PacketCannotBeDeletedWithCommunications", + "Packet_TitleCannotBeBlank", + "Packet_CannotLinkToItself", + "PacketContact_EmployeeDoesNotExist", + "PacketContact_EmployeeNotValidForPacketCompany", + "PacketContact_UserIsRetired", + "PacketContactTag_TagDoesNotExist", + "PacketContactTag_TagUseIncorrect", + "PacketContactTag_ContactTagNotValidForPacketCompany", + "PacketContactTag_ContactTagRetired", + "PacketDefect_NotFound", + "PacketDefect_DefectPartyAtFaultDoesNotExist", + "PacketDefect_DefectCategoryDoesNotExist", + "PacketDefect_DefectCategoryHasChildLevels", + "PacketDefect_RetiredDefectCannotBeUpdated", + "PacketDefect_DefectCategoryIsRetired", + "PacketDefect_DefectPartyAtFaultIsRetired", + "PacketCommunication_NotAccessibleByAuthenticatedUser", + "PacketCommunication_AuthenticatedUserCanOnlyAccessLivePackets", + "PacketCommunication_AuthenticatedUserCanOnlyAccessTestPackets", + "PacketCustomData_AlreadyUpdated", + "PacketCustomData_ShortTextTooLong", + "PacketCustomData_ValueNotInList", + "PacketCustomData_MultipleLevelListTooLong", + "PacketCustomData_InvalidDateTimeValue", + "PacketCustomData_InvalidDateValue", + "PacketCustomData_InvalidCheckBoxValue", + "PacketCustomData_InvalidDecimalValue", + "PacketCustomData_InvalidWholeValue", + "PacketCustomData_FieldNotFound", + "PacketCustomData_TableFieldNotFound", + "PacketCustomData_InvalidMultipleLevelListValue", + "PacketCustomData_ValueNotInMultipleLevelList", + "PacketFile_NotFound", + "PacketFile_DataUpdateNotAllowed", + "PacketFile_ReplaceFileNotAllowed", + "PacketFile_FilenameChanged", + "PacketFile_DataRequired", + "PacketFile_DataOrTemporaryFileGUID", + "PacketFile_FileNameRequired", + "PacketFile_FileNameNotRequired", + "PacketFile_TemporaryFileNotFound", + "PacketFile_TagNotFound", + "PacketFile_EmailAttachmentMustHaveGUID", + "PacketFile_EmailAttachmentCannotBeRetired", + "AllocationAttribute_UserDoesNotHaveReassignPermission", + "AllocationAttribute_UserDoesNotHaveAccessToPacketType", + "AllocationAttribute_UserRetired", + "AllocationAttribute_UserDoesNotHaveAccessToPacket", + "AllocationAttribute_RobotIsSuspended", + "AllocationAttribute_PacketAlreadyAssignedToRobotTooManyTimes", + "AllocationAttribute_PacketCannotBeAssignedToRobotDuringPeerReview", + "AllocationAttribute_PacketCannotBeAssignedToRobot", + "AllocationAttribute_RobotNotInRobotFarm", + "AllocationAttribute_CaseCannotAssignToRobotUser", + "AllocationAttribute_UserIsWrongType", + "AllocationAttribute_UserInvolvedInDoing", + "AllocationAttribute_UserInvolvedInPeerReview", + "AllocationAttribute_PacketAlreadyAssigned", + "AllocationAttribute_UserDoesNotExist", + "Case_CaseAttributeVersionGUIDRequired", + "Case_ActionAttributeNotInCase", + "Case_ReworkFromStepMustBeCompletedOrCurrent", + "Case_CaseDoesNotSupportSchedules", + "Case_CaseScheduleSpecifiedIsDifferentToExpected", + "Case_CaseCannotChangeScheduleWithoutRework", + "Case_CaseRequireScheduleToBeSpecified", + "Case_CaseReworkParamenterRequiredTooMany", + "Case_CaseReworkParamenterRequiredNotEnough", + "Case_CaseAttributeGUIDNotFound", + "Case_CaseCantBeCompletedWithRunningWorkItems", + "Case_ActionAttributeVersionMismatch", + "Case_ReworkFromStepMustExist", + "Case_CannotResolveInThisState", + "Action_NotWaitingForExternalAPI", + "Action_RetryNotSupported", + "Action_NotDoneSuccessfullyCommentIsRequired", + "Action_CannotCloseWithOutstandingChecklists", + "Action_PeerReviewCommentIsRequired", + "Ticket_NewSplitTicketsNeedsMoreItems", + "Ticket_TicketCategoryAttributeOrTicketAttributeVersionGUIDRequired", + "Ticket_TicketAttributeVersionDraft", + "Ticket_TicketAttributeVersionTesting", + "Ticket_TicketAttributeVersionRetiring", + "Ticket_TicketAttributeVersionArchived", + "Ticket_RequesterUserGUIDCannotBeSetWithContacts", + "Ticket_UnableToUpdateWhileWaitingForChildPackets", + "Ticket_UnableToMergeIntoAClosedPacket", + "Ticket_UnableToReopenTicketWhenNotResolved", + "Ticket_MergeTargetDoesNotExist", + "Ticket_MergeTargetIsSelf", + "Ticket_VersionTypeMismacth", + "Ticket_CategoryDoesNotExist", + "Ticket_CategoryIsRetired", + "Ticket_StartedCaseMustBeLiveOrRetiring", + "Ticket_CannotChangeDescription", + "Ticket_ResolutionCommunicationIsRequired", + "Ticket_ResolutionCommunicationMustBeForThisTicket", + "Ticket_StartedCaseMustBeTestingLiveOrRetiring" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "General_UnexpectedFailure", + "Value": 1, + "Description": "Unexpected failure during validation. This has been logged as incident {0}." + }, + { + "Name": "Packet_CannotChangeTitle", + "Value": 81001, + "Description": "Packet title cannot be changed." + }, + { + "Name": "Packet_ScheduledFollowUpOnMustBeInFuture", + "Value": 81007, + "Description": "Scheduled follow up on date must be in the future." + }, + { + "Name": "Packet_ScheduledFollowUpOnRequired", + "Value": 81008, + "Description": "When Wait Type is Future Date the Scheduled Follow Up On date must be specified." + }, + { + "Name": "Packet_RecordCountMustBeGreatherThanZero", + "Value": 81009, + "Description": "Record count must be at least 1." + }, + { + "Name": "Packet_OverrideDueDateCannotChange", + "Value": 81013, + "Description": "Override Due Date cannot be changed on this packet." + }, + { + "Name": "Packet_OverrideDueDateNotValid", + "Value": 81014, + "Description": "Override Due Date cannot be set to this value." + }, + { + "Name": "Packet_PrimaryContactMissing", + "Value": 81015, + "Description": "A Contact with the Primary Contact Tag must exist." + }, + { + "Name": "Packet_RequestorContactMissing", + "Value": 81017, + "Description": "A Contact with the Requester Tag must exist." + }, + { + "Name": "Packet_NotAccessibleBySSOUser", + "Value": 81018, + "Description": "Packet is not accessible by the authenticated Self Service user." + }, + { + "Name": "Packet_NotAccessibleByAuthenticatedUser", + "Value": 81019, + "Description": "Packet is not accessible by the authenticated user." + }, + { + "Name": "Packet_IsCompletedNoUpdatesPossible", + "Value": 81020, + "Description": "Packet has already completed. No updates possible." + }, + { + "Name": "Packet_IsNotAssignedToAuthenticatedUser", + "Value": 81021, + "Description": "Packet is not assigned to authenticated user." + }, + { + "Name": "Packet_AuthenticatedUserCanOnlyAccessLivePackets", + "Value": 81022, + "Description": "User is currently authenticated to work on Live Packets but requested Packet is not Live." + }, + { + "Name": "Packet_AuthenticatedUserCanOnlyAccessTestPackets", + "Value": 81023, + "Description": "User is currently authenticated to work on Test Packets but requested Packet is not Testing." + }, + { + "Name": "Packet_DaysToWaitForMoreInformationMustBeGreaterThanOne", + "Value": 81025, + "Description": "The Days to Wait For More Information must be null or greater than 0." + }, + { + "Name": "Packet_PacketCannotBeDeletedWhenProcessing", + "Value": 81026, + "Description": "The Packet cannot be deleted as it has started processing." + }, + { + "Name": "Packet_PacketCannotBeDeletedWithCommunications", + "Value": 81027, + "Description": "The Packet cannot be deleted as it has Communications." + }, + { + "Name": "Packet_TitleCannotBeBlank", + "Value": 81028, + "Description": "Packet title cannot be blank." + }, + { + "Name": "Packet_CannotLinkToItself", + "Value": 81029, + "Description": "Packet cannot be linked to itself." + }, + { + "Name": "PacketContact_EmployeeDoesNotExist", + "Value": 83001, + "Description": "Contact with GUID '{0}' does not exist." + }, + { + "Name": "PacketContact_EmployeeNotValidForPacketCompany", + "Value": 83002, + "Description": "Contact with GUID '{0}' cannot be used with this Packet as it is scoped to a different company." + }, + { + "Name": "PacketContact_UserIsRetired", + "Value": 83003, + "Description": "Contact '{0}' is retired." + }, + { + "Name": "PacketContactTag_TagDoesNotExist", + "Value": 84001, + "Description": "Contact Tag with GUID '{0}' does not exist." + }, + { + "Name": "PacketContactTag_TagUseIncorrect", + "Value": 84002, + "Description": "Contact Tag '{0}' cannot be used multiple times." + }, + { + "Name": "PacketContactTag_ContactTagNotValidForPacketCompany", + "Value": 84003, + "Description": "Contact Tag '{0}' cannot be used with this Packet as it is scoped to a different company." + }, + { + "Name": "PacketContactTag_ContactTagRetired", + "Value": 84004, + "Description": "Contact Tag '{0}' cannot be added because it has been retired." + }, + { + "Name": "PacketDefect_NotFound", + "Value": 88001, + "Description": "Defect with GUID '{0}' does not exist." + }, + { + "Name": "PacketDefect_DefectPartyAtFaultDoesNotExist", + "Value": 88002, + "Description": "Defect Party at Fault with GUID '{0}' does not exist." + }, + { + "Name": "PacketDefect_DefectCategoryDoesNotExist", + "Value": 88003, + "Description": "Defect Category with GUID '{0}' does not exist." + }, + { + "Name": "PacketDefect_DefectCategoryHasChildLevels", + "Value": 88004, + "Description": "Defect Category with GUID '{0}' has child levels. Only a Defect Category with no further levels can be selected." + }, + { + "Name": "PacketDefect_RetiredDefectCannotBeUpdated", + "Value": 88005, + "Description": "Defect with GUID '{0}' is retired and not updatable." + }, + { + "Name": "PacketDefect_DefectCategoryIsRetired", + "Value": 88006, + "Description": "Defect category '{0}' is retired." + }, + { + "Name": "PacketDefect_DefectPartyAtFaultIsRetired", + "Value": 88007, + "Description": "Defect party at fault '{0}' is retired." + }, + { + "Name": "PacketCommunication_NotAccessibleByAuthenticatedUser", + "Value": 817001, + "Description": "Packet Communication is not accessible by the authenticated user." + }, + { + "Name": "PacketCommunication_AuthenticatedUserCanOnlyAccessLivePackets", + "Value": 817002, + "Description": "User is currently authenticated to work on Live Packets but requested Communication item is not Live." + }, + { + "Name": "PacketCommunication_AuthenticatedUserCanOnlyAccessTestPackets", + "Value": 817003, + "Description": "User is currently authenticated to work on Test Packets but requested Communication item is not Testing." + }, + { + "Name": "PacketCustomData_AlreadyUpdated", + "Value": 828001, + "Description": "Data Fields last updated at {0} but when downloaded was last updated at {1}. Update blocked to avoid accidental overwrite." + }, + { + "Name": "PacketCustomData_ShortTextTooLong", + "Value": 828002, + "Description": "Short Text field '{0}' cannot be longer than 400 characters." + }, + { + "Name": "PacketCustomData_ValueNotInList", + "Value": 828003, + "Description": "List field '{0}' cannot contain value '{1}'." + }, + { + "Name": "PacketCustomData_MultipleLevelListTooLong", + "Value": 828004, + "Description": "Multiple Level List field '{0}' cannot be longer than 400 characters." + }, + { + "Name": "PacketCustomData_InvalidDateTimeValue", + "Value": 828005, + "Description": "'{1}' is not a valid Date/Time value in field '{0}'." + }, + { + "Name": "PacketCustomData_InvalidDateValue", + "Value": 828006, + "Description": "'{1}' is not a valid Date value in field '{0}'." + }, + { + "Name": "PacketCustomData_InvalidCheckBoxValue", + "Value": 828007, + "Description": "'{1}' is not a valid CheckBox value in field '{0}'." + }, + { + "Name": "PacketCustomData_InvalidDecimalValue", + "Value": 828008, + "Description": "'{1}' is not a valid Decimal value in field '{0}'." + }, + { + "Name": "PacketCustomData_InvalidWholeValue", + "Value": 828009, + "Description": "'{1}' is not a valid Whole value in field '{0}'." + }, + { + "Name": "PacketCustomData_FieldNotFound", + "Value": 828010, + "Description": "'{0}' is not a valid field for this Packet." + }, + { + "Name": "PacketCustomData_TableFieldNotFound", + "Value": 828011, + "Description": "'{0}' is not a valid field for the table field '{1}'." + }, + { + "Name": "PacketCustomData_InvalidMultipleLevelListValue", + "Value": 828012, + "Description": "'{0}' is not a valid JSON array for Multiple Level List field '{1}'." + }, + { + "Name": "PacketCustomData_ValueNotInMultipleLevelList", + "Value": 828013, + "Description": "Multiple Level List field '{0}' cannot contain value '{1}'." + }, + { + "Name": "PacketFile_NotFound", + "Value": 829001, + "Description": "File with GUID '{0}' not found." + }, + { + "Name": "PacketFile_DataUpdateNotAllowed", + "Value": 829002, + "Description": "File with GUID '{0}' contains data. Update of existing Files is not supported." + }, + { + "Name": "PacketFile_ReplaceFileNotAllowed", + "Value": 829003, + "Description": "File with GUID '{0}' has a TemporaryFileGUID. Update of existing Files is not supported." + }, + { + "Name": "PacketFile_FilenameChanged", + "Value": 829004, + "Description": "File with GUID '{0}' has a different File name. Update of existing Files is not supported." + }, + { + "Name": "PacketFile_DataRequired", + "Value": 829005, + "Description": "New File must contain either Data or have a TemporaryFileGUID set." + }, + { + "Name": "PacketFile_DataOrTemporaryFileGUID", + "Value": 829006, + "Description": "New File must contain either Data or have a TemporaryFileGUID set; not both." + }, + { + "Name": "PacketFile_FileNameRequired", + "Value": 829007, + "Description": "New File with Data must also include a File name." + }, + { + "Name": "PacketFile_FileNameNotRequired", + "Value": 829008, + "Description": "New File with TemporaryFileGUID must not include a different File name to the previously uploaded Temporary File." + }, + { + "Name": "PacketFile_TemporaryFileNotFound", + "Value": 829009, + "Description": "TemporaryFileGUID specified in new File not found." + }, + { + "Name": "PacketFile_TagNotFound", + "Value": 829010, + "Description": "File with GUID '{0}' has an unrecognised Tag with GUID '{1}'." + }, + { + "Name": "PacketFile_EmailAttachmentMustHaveGUID", + "Value": 829011, + "Description": "File with a source of EmailAttachment cannot have an empty GUID." + }, + { + "Name": "PacketFile_EmailAttachmentCannotBeRetired", + "Value": 829012, + "Description": "File with a source of EmailAttachment cannot be Retired." + }, + { + "Name": "AllocationAttribute_UserDoesNotHaveReassignPermission", + "Value": 957001, + "Description": "Authenticated User does not have permission to reassign packets." + }, + { + "Name": "AllocationAttribute_UserDoesNotHaveAccessToPacketType", + "Value": 957002, + "Description": "User '{0}' does not have access to Packets of type '{1}'." + }, + { + "Name": "AllocationAttribute_UserRetired", + "Value": 957003, + "Description": "User '{0}' is retired." + }, + { + "Name": "AllocationAttribute_UserDoesNotHaveAccessToPacket", + "Value": 957004, + "Description": "User '{0}' does not have permission to access Packet '{1}'." + }, + { + "Name": "AllocationAttribute_RobotIsSuspended", + "Value": 957005, + "Description": "Robot User '{0}' is suspended and cannot be assigned work." + }, + { + "Name": "AllocationAttribute_PacketAlreadyAssignedToRobotTooManyTimes", + "Value": 957006, + "Description": "Packet '{0}' has already been assigned to a Robot '{1}' times. Maximum allowed is '{2}'." + }, + { + "Name": "AllocationAttribute_PacketCannotBeAssignedToRobotDuringPeerReview", + "Value": 957007, + "Description": "Packet '{0}' cannot be assigned to a Robot User during Peer Review." + }, + { + "Name": "AllocationAttribute_PacketCannotBeAssignedToRobot", + "Value": 957008, + "Description": "Packet '{0}' cannot be assigned to a Robot because no Robot Farm is configured for it." + }, + { + "Name": "AllocationAttribute_RobotNotInRobotFarm", + "Value": 957009, + "Description": "Packet '{0}' cannot be assigned to Robot User '{1}' because it is not a member of the configured Robot Farm '{2}'." + }, + { + "Name": "AllocationAttribute_CaseCannotAssignToRobotUser", + "Value": 957010, + "Description": "Packet '{0}' is a Case which cannot be assigned to a Robot User." + }, + { + "Name": "AllocationAttribute_UserIsWrongType", + "Value": 957011, + "Description": "Packet '{0}' cannot be assigned to User '{1}' because they are of type '{2}' which cannot be assigned Packets." + }, + { + "Name": "AllocationAttribute_UserInvolvedInDoing", + "Value": 957012, + "Description": "Packet '{0}' cannot be assigned to User '{1}' because it is in Peer Review and they were involved in the activity." + }, + { + "Name": "AllocationAttribute_UserInvolvedInPeerReview", + "Value": 957013, + "Description": "Packet '{0}' cannot be assigned to User '{1}' because it is not in Peer Review and they were involved in the peer review." + }, + { + "Name": "AllocationAttribute_PacketAlreadyAssigned", + "Value": 957014, + "Description": "Packet '{0}' is already assigned to '{1}'." + }, + { + "Name": "AllocationAttribute_UserDoesNotExist", + "Value": 957015, + "Description": "User '{0}' does not exist." + }, + { + "Name": "Case_CaseAttributeVersionGUIDRequired", + "Value": 963001, + "Description": "When creating a new Case CaseAttributeVersionGUID must be specified." + }, + { + "Name": "Case_ActionAttributeNotInCase", + "Value": 963002, + "Description": "ReworkFromActionAttributeGUID must exist in the case." + }, + { + "Name": "Case_ReworkFromStepMustBeCompletedOrCurrent", + "Value": 963004, + "Description": "ReworkFromStep must have already started." + }, + { + "Name": "Case_CaseDoesNotSupportSchedules", + "Value": 963005, + "Description": "This Case does not support Schedules." + }, + { + "Name": "Case_CaseScheduleSpecifiedIsDifferentToExpected", + "Value": 963006, + "Description": "The Schedule Period Supplied is not the expected Schedule Period for this Case." + }, + { + "Name": "Case_CaseCannotChangeScheduleWithoutRework", + "Value": 963007, + "Description": "Changing Schedule without Case being put to Rework is invalid" + }, + { + "Name": "Case_CaseRequireScheduleToBeSpecified", + "Value": 963008, + "Description": "This Case requires a Schedule to be specified." + }, + { + "Name": "Case_CaseReworkParamenterRequiredTooMany", + "Value": 963009, + "Description": "ReworkFromStep and ReworkFromActionAttributeGUID are mutually exclusive. Please only specify 1 property." + }, + { + "Name": "Case_CaseReworkParamenterRequiredNotEnough", + "Value": 963010, + "Description": "ReworkFromStep or ReworkFromActionAttributeGUID must be specified." + }, + { + "Name": "Case_CaseAttributeGUIDNotFound", + "Value": 963011, + "Description": "CaseAttributeGUID Not Found." + }, + { + "Name": "Case_CaseCantBeCompletedWithRunningWorkItems", + "Value": 963012, + "Description": "Case Can't be Completed With Running Packets." + }, + { + "Name": "Case_ActionAttributeVersionMismatch", + "Value": 963013, + "Description": "Launched action attribute must be from the same case attribute version as the case." + }, + { + "Name": "Case_ReworkFromStepMustExist", + "Value": 963014, + "Description": "ReworkFromStep must be a valid step within the case attribute version." + }, + { + "Name": "Case_CannotResolveInThisState", + "Value": 963015, + "Description": "Case can not be resolved as there are incomplete steps, the progression mode is automatic or the case is not in state 'In Progress'." + }, + { + "Name": "Action_NotWaitingForExternalAPI", + "Value": 964001, + "Description": "The action is not waiting for the response to an external API request." + }, + { + "Name": "Action_RetryNotSupported", + "Value": 964002, + "Description": "The action type does not support retry." + }, + { + "Name": "Action_NotDoneSuccessfullyCommentIsRequired", + "Value": 964003, + "Description": "NotDoneSuccessfullyComment is required." + }, + { + "Name": "Action_CannotCloseWithOutstandingChecklists", + "Value": 964004, + "Description": "Cannot resolve with outstanding checklists." + }, + { + "Name": "Action_PeerReviewCommentIsRequired", + "Value": 964005, + "Description": "Cannot fail peer review without comment." + }, + { + "Name": "Ticket_NewSplitTicketsNeedsMoreItems", + "Value": 967001, + "Description": "When splitting a Ticket it must be split into at least 2 Tickets." + }, + { + "Name": "Ticket_TicketCategoryAttributeOrTicketAttributeVersionGUIDRequired", + "Value": 967002, + "Description": "When creating a new Ticket either TicketCategoryAttribute or TicketAttributeVersionGUID must be specified." + }, + { + "Name": "Ticket_TicketAttributeVersionDraft", + "Value": 967003, + "Description": "The Ticket Attribute Version configuration is Draft and no new Tickets can be created." + }, + { + "Name": "Ticket_TicketAttributeVersionTesting", + "Value": 967004, + "Description": "The Ticket Attribute Version configuration is Testing and current session is not in Test Mode." + }, + { + "Name": "Ticket_TicketAttributeVersionRetiring", + "Value": 967005, + "Description": "The Ticket Attribute Version configuration is Retiring and no new Tickets can be created." + }, + { + "Name": "Ticket_TicketAttributeVersionArchived", + "Value": 967006, + "Description": "The Ticket Attribute Version configuration is Archived and no new Tickets can be created." + }, + { + "Name": "Ticket_RequesterUserGUIDCannotBeSetWithContacts", + "Value": 967007, + "Description": "When RequesterUserGUID is set the Contacts collection must be empty or null." + }, + { + "Name": "Ticket_UnableToUpdateWhileWaitingForChildPackets", + "Value": 967008, + "Description": "When waiting for Child Packets the Ticket cannot be updated." + }, + { + "Name": "Ticket_UnableToMergeIntoAClosedPacket", + "Value": 967009, + "Description": "Unable to merge into a Target Packet that is already closed." + }, + { + "Name": "Ticket_UnableToReopenTicketWhenNotResolved", + "Value": 967010, + "Description": "Unable to reopen a Ticket that is not resolved." + }, + { + "Name": "Ticket_MergeTargetDoesNotExist", + "Value": 967011, + "Description": "Ticket to merge into ('{0}') does not exist." + }, + { + "Name": "Ticket_MergeTargetIsSelf", + "Value": 967013, + "Description": "Ticket cannot be merged into itself." + }, + { + "Name": "Ticket_VersionTypeMismacth", + "Value": 967014, + "Description": "Tickets of type [{0}] cannot be merged into a Packet of type [{1}]." + }, + { + "Name": "Ticket_CategoryDoesNotExist", + "Value": 967018, + "Description": "Ticket category '{0}' does not exist." + }, + { + "Name": "Ticket_CategoryIsRetired", + "Value": 967019, + "Description": "Ticket category '{0}' is retired." + }, + { + "Name": "Ticket_StartedCaseMustBeLiveOrRetiring", + "Value": 967020, + "Description": "Case '{0}' must be live or retiring." + }, + { + "Name": "Ticket_CannotChangeDescription", + "Value": 967021, + "Description": "Ticket description cannot be changed." + }, + { + "Name": "Ticket_ResolutionCommunicationIsRequired", + "Value": 967022, + "Description": "Ticket does not have a Resolution communication." + }, + { + "Name": "Ticket_ResolutionCommunicationMustBeForThisTicket", + "Value": 967023, + "Description": "Resolution communication must be for this ticket." + }, + { + "Name": "Ticket_StartedCaseMustBeTestingLiveOrRetiring", + "Value": 967024, + "Description": "Case '{0}' must be testing, live or retiring." + } + ] + }, + "ApiResponse[BasicPacket,PacketValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/BasicPacket", + "description": "The created/updated object." + } + } + }, + "PacketCommunicationForList": { + "required": [ + "GUID", + "Logged", + "Read", + "AttachmentCount", + "IsSystemGenerated", + "Importance", + "CommunicationScope", + "Type", + "IsResolutionCommunication" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "From": { + "type": "string" + }, + "Logged": { + "format": "date-time", + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "Read": { + "type": "boolean" + }, + "AttachmentCount": { + "format": "int32", + "type": "integer" + }, + "IsSystemGenerated": { + "type": "boolean" + }, + "FromUser": { + "$ref": "#/definitions/CaseFlowContact" + }, + "CancelledByUser": { + "$ref": "#/definitions/UserForList" + }, + "Importance": { + "$ref": "#/definitions/PacketCommunicationImportance" + }, + "ImportanceDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "CommunicationScope": { + "$ref": "#/definitions/PacketCommunicationScopeType" + }, + "CommunicationScopeDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "Type": { + "$ref": "#/definitions/PacketCommunicationType" + }, + "TypeDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "IsResolutionCommunication": { + "type": "boolean" + }, + "SentOn": { + "format": "date-time", + "type": "string" + }, + "SendStatus": { + "$ref": "#/definitions/PacketCommunicationSendStatus" + }, + "NextAttemptToSend": { + "format": "date-time", + "type": "string" + }, + "CancelledOn": { + "format": "date-time", + "type": "string" + } + } + }, + "PacketCommunication": { + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/PacketCommunicationForList" + } + ], + "properties": { + "To": { + "type": "string" + }, + "CCs": { + "type": "string" + }, + "BCCs": { + "type": "string" + }, + "HTMLBody": { + "type": "string" + }, + "Attachments": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketCommunicationAttachment" + } + }, + "ResolutionTime": { + "format": "date-time", + "type": "string" + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "From": { + "type": "string" + }, + "Logged": { + "format": "date-time", + "type": "string" + }, + "Subject": { + "type": "string" + }, + "Body": { + "type": "string" + }, + "Read": { + "type": "boolean" + }, + "AttachmentCount": { + "format": "int32", + "type": "integer" + }, + "IsSystemGenerated": { + "type": "boolean" + }, + "FromUser": { + "$ref": "#/definitions/CaseFlowContact" + }, + "CancelledByUser": { + "$ref": "#/definitions/UserForList" + }, + "Importance": { + "$ref": "#/definitions/PacketCommunicationImportance" + }, + "ImportanceDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "CommunicationScope": { + "$ref": "#/definitions/PacketCommunicationScopeType" + }, + "CommunicationScopeDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "Type": { + "$ref": "#/definitions/PacketCommunicationType" + }, + "TypeDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "IsResolutionCommunication": { + "type": "boolean" + }, + "SentOn": { + "format": "date-time", + "type": "string" + }, + "SendStatus": { + "$ref": "#/definitions/PacketCommunicationSendStatus" + }, + "NextAttemptToSend": { + "format": "date-time", + "type": "string" + }, + "CancelledOn": { + "format": "date-time", + "type": "string" + } + } + }, + "CaseFlowContact": { + "type": "object", + "properties": { + "Employee": { + "$ref": "#/definitions/UserForForeignKey" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/ContactTagForForeignKey" + } + }, + "EmailAddress": { + "type": "string", + "readOnly": true + } + } + }, + "ContactTagForForeignKey": { + "required": [ + "GUID" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "type": "string" + } + } + }, + "UserForForeignKey": { + "type": "object", + "properties": { + "EntityGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "FullName": { + "description": "Full name of the user.", + "type": "string" + }, + "EmailAddress": { + "description": "Email address of the user.", + "type": "string" + }, + "HasProfilePicture": { + "description": "Does the user have a profile picture available.", + "type": "boolean" + }, + "UserType": { + "$ref": "#/definitions/UserTypes" + }, + "IsMe": { + "description": "Identifies if the User represents the currently authenticated User.", + "type": "boolean", + "readOnly": true + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + }, + "x-is-deprecated": true + }, + "PacketCommunicationType": { + "enum": [ + "EmailOutgoing", + "PhoneIncoming", + "EmailIncoming", + "ESSComment", + "AuditNote", + "PhoneOutgoing", + "LetterIncoming", + "LetterOutgoing" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "EmailOutgoing", + "Value": 0, + "Description": "Email Outgoing" + }, + { + "Name": "PhoneIncoming", + "Value": 1, + "Description": "Phone Incoming" + }, + { + "Name": "EmailIncoming", + "Value": 2, + "Description": "Email Incoming" + }, + { + "Name": "ESSComment", + "Value": 3, + "Description": "Self Service Comment" + }, + { + "Name": "AuditNote", + "Value": 4, + "Description": "Note" + }, + { + "Name": "PhoneOutgoing", + "Value": 5, + "Description": "Phone Outgoing" + }, + { + "Name": "LetterIncoming", + "Value": 6, + "Description": "Letter Incoming" + }, + { + "Name": "LetterOutgoing", + "Value": 7, + "Description": "Letter Outgoing" + } + ] + }, + "PacketCommunicationAttachment": { + "required": [ + "GUID", + "AttachmentType" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Filename": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "AttachmentType": { + "$ref": "#/definitions/PacketCommunicationAttachmentType" + }, + "Note": { + "type": "string" + } + } + }, + "PacketCommunicationAttachmentType": { + "enum": [ + "Unknown", + "InlineAttachment", + "RegularAttachment" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Unknown", + "Value": 0, + "Description": "Unknown" + }, + { + "Name": "InlineAttachment", + "Value": 1, + "Description": "Inline Attachment" + }, + { + "Name": "RegularAttachment", + "Value": 2, + "Description": "Regular Attachment" + } + ] + }, + "PacketCommunicationScopeType": { + "enum": [ + "Private", + "InvolvesPrimaryContact", + "InvolvesRequester", + "InvolvesSubject", + "InvolvesCustomer", + "InvolvesThirdParty" + ], + "type": "string", + "x-is-flagged": true, + "x-enum-metadata": [ + { + "Name": "Private", + "Value": 0, + "Description": "Private" + }, + { + "Name": "InvolvesPrimaryContact", + "Value": 1, + "Description": "Private, Involves Primary Contact" + }, + { + "Name": "InvolvesRequester", + "Value": 2, + "Description": "Private, Involves Requester" + }, + { + "Name": "InvolvesSubject", + "Value": 4, + "Description": "Private, Involves Subject" + }, + { + "Name": "InvolvesCustomer", + "Value": 8, + "Description": "Private, Involves Customer" + }, + { + "Name": "InvolvesThirdParty", + "Value": 16, + "Description": "Private, Involves Third Party" + } + ] + }, + "PacketCommunicationSendStatus": { + "enum": [ + "Queued", + "Sent", + "PendingRetry", + "Failed", + "Cancelled", + "ConnectorDisabled", + "Copy" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Queued", + "Value": 0, + "Description": "Queued" + }, + { + "Name": "Sent", + "Value": 1, + "Description": "Sent" + }, + { + "Name": "PendingRetry", + "Value": 2, + "Description": "Pending Retry" + }, + { + "Name": "Failed", + "Value": 3, + "Description": "Failed" + }, + { + "Name": "Cancelled", + "Value": 4, + "Description": "Cancelled" + }, + { + "Name": "ConnectorDisabled", + "Value": 5, + "Description": "Connector Disabled" + }, + { + "Name": "Copy", + "Value": 6, + "Description": "Copy" + } + ] + }, + "PacketCommunicationImportance": { + "enum": [ + "Normal", + "Low", + "High" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Normal", + "Value": 0, + "Description": "Normal" + }, + { + "Name": "Low", + "Value": 1, + "Description": "Low" + }, + { + "Name": "High", + "Value": 2, + "Description": "High" + } + ] + }, + "PacketForGetMoreWork": { + "required": [ + "GUID", + "Status", + "State", + "ProcessType" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Reference": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "DueDate": { + "format": "date-time", + "type": "string" + }, + "Status": { + "$ref": "#/definitions/PacketStatus" + }, + "State": { + "$ref": "#/definitions/PacketStates" + }, + "StateDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "ProcessTypeDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "CustomerName": { + "type": "string" + }, + "ContractName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "ProcessName": { + "type": "string" + } + } + }, + "PacketStates": { + "enum": [ + "ProcessNotStarted", + "ProcessingDelayTask", + "ProcessingWaitForTask", + "Processing", + "AwaitingWA", + "WithWA", + "AwaitingAnonymousWA", + "WithAnonymousWA", + "Complete", + "TerminatedByUser", + "TerminatedByWaitFor", + "TerminatedByParentPacket", + "TerminatedByChildPacket", + "AwaitingToDelete" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "ProcessNotStarted", + "Value": 0, + "Description": "Process not started" + }, + { + "Name": "ProcessingDelayTask", + "Value": 11, + "Description": "Processing delay" + }, + { + "Name": "ProcessingWaitForTask", + "Value": 12, + "Description": "Processing wait-for sub Process" + }, + { + "Name": "Processing", + "Value": 13, + "Description": "Processing" + }, + { + "Name": "AwaitingWA", + "Value": 24, + "Description": "Awaiting User" + }, + { + "Name": "WithWA", + "Value": 25, + "Description": "Being worked on by User" + }, + { + "Name": "AwaitingAnonymousWA", + "Value": 26, + "Description": "Awaiting remote User" + }, + { + "Name": "WithAnonymousWA", + "Value": 27, + "Description": "Being worked on by remote User" + }, + { + "Name": "Complete", + "Value": 30, + "Description": "Completed" + }, + { + "Name": "TerminatedByUser", + "Value": 35, + "Description": "Terminated by User" + }, + { + "Name": "TerminatedByWaitFor", + "Value": 36, + "Description": "Terminated by wait-for" + }, + { + "Name": "TerminatedByParentPacket", + "Value": 37, + "Description": "Terminated by parent Packet" + }, + { + "Name": "TerminatedByChildPacket", + "Value": 38, + "Description": "Terminated by child Packet" + }, + { + "Name": "AwaitingToDelete", + "Value": 1000, + "Description": "Awaiting to delete" + } + ] + }, + "ProcessType": { + "enum": [ + "Case", + "Ticket", + "Action" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Case", + "Value": 1, + "Description": "Case" + }, + { + "Name": "Ticket", + "Value": 2, + "Description": "Ticket" + }, + { + "Name": "Action", + "Value": 3, + "Description": "Action" + } + ] + }, + "FullSchedule": { + "description": "Full details of a schedule for use in builder.", + "required": [ + "Name", + "ScheduleStructureGUID" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicSchedule" + } + ], + "properties": { + "ScheduleStructureGUID": { + "format": "uuid", + "description": "Unique identifier for schedule structure.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "SchedulePeriods": { + "description": "List of periods for this schedule.", + "type": "array", + "items": { + "$ref": "#/definitions/FullSchedulePeriod" + } + }, + "State": { + "$ref": "#/definitions/ScheduleStates" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Status": { + "$ref": "#/definitions/ScheduleStatus" + }, + "NoOfPeriodsinFuture": { + "format": "int32", + "description": "Count of future periods for this schedule.", + "type": "integer" + }, + "StatusDescription": { + "description": "Schedule status description.", + "type": "string", + "readOnly": true + }, + "StateDescription": { + "description": "Current state of schedule description.", + "type": "string", + "readOnly": true + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "FullSchedulePeriod": { + "description": "Full details of a Schedule Period for use by builder.", + "required": [ + "Year", + "StartDate" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "Year": { + "format": "int32", + "description": "Year the period occurs in.", + "type": "integer" + }, + "Period": { + "description": "Period name.", + "type": "string" + }, + "StartDate": { + "format": "date-time", + "description": "Starting date.", + "type": "string" + }, + "SchedulePeriodDates": { + "description": "List of period dates.", + "type": "array", + "items": { + "$ref": "#/definitions/FullSchedulePeriodDate" + } + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "FullSchedulePeriodDate": { + "description": "Full details of a schedule period date for builder.", + "required": [ + "ScheduleStructureDateGUID", + "Date" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "ScheduleStructureDateGUID": { + "format": "uuid", + "description": "Unique identifier of schedule structure date.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Date": { + "format": "date-time", + "description": "Date of schedule period.", + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ScheduleStatus": { + "enum": [ + "MoreThanThreePeriodsInFuture", + "LessThanThreePeriodsInFuture", + "ZeroPeriodsInFuture" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "MoreThanThreePeriodsInFuture", + "Value": 0, + "Description": "Three or more periods in the future" + }, + { + "Name": "LessThanThreePeriodsInFuture", + "Value": 1, + "Description": "less than three periods in the future" + }, + { + "Name": "ZeroPeriodsInFuture", + "Value": 3, + "Description": "Zero periods in the future" + } + ] + }, + "ScheduleStates": { + "enum": [ + "Resumed", + "Paused" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "Resumed", + "Value": 0, + "Description": "Resumed" + }, + { + "Name": "Paused", + "Value": 1, + "Description": "Paused" + } + ] + }, + "BasicSchedule": { + "description": "Basic details of schedule for use in lists.", + "required": [ + "Name", + "State", + "Retired", + "Status", + "NoOfPeriodsinFuture" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "State": { + "$ref": "#/definitions/ScheduleStates" + }, + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Status": { + "$ref": "#/definitions/ScheduleStatus" + }, + "NoOfPeriodsinFuture": { + "format": "int32", + "description": "Count of future periods for this schedule.", + "type": "integer" + }, + "StatusDescription": { + "description": "Schedule status description.", + "type": "string", + "readOnly": true + }, + "StateDescription": { + "description": "Current state of schedule description.", + "type": "string", + "readOnly": true + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ApiResponse[FullSchedule,ConfigurationValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullSchedule", + "description": "The created/updated object." + } + } + }, + "ApiResponse[List[LaunchAdHocActionResult],PacketValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketValidationMessage" + } + }, + "Result": { + "description": "The created/updated object.", + "type": "array", + "items": { + "$ref": "#/definitions/LaunchAdHocActionResult" + } + } + } + }, + "LaunchAdHocActionResult": { + "description": "Packets created by the launch AdHoc Action from case.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BaseObject" + } + ], + "properties": { + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "NewPacketResult": { + "description": "The response to a request to create a new Packet.", + "required": [ + "GUID", + "ProcessType" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "description": "The unique identifier of the created Packet.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Reference": { + "description": "The reference number of the created Packet.", + "type": "string" + }, + "Title": { + "description": "The title of the created Packet.", + "type": "string" + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "ProcessTypeDescription": { + "description": "The name of the Process Type of the created Packet as text.", + "type": "string", + "readOnly": true, + "x-is-deprecated": true + } + } + }, + "WebHookSubscription": { + "required": [ + "GUID", + "Webhook" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Webhook": { + "$ref": "#/definitions/WebHook" + }, + "FilterObjectGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "FilterObjectType": { + "$ref": "#/definitions/EnateObjects" + }, + "SubscriberURL": { + "type": "string" + }, + "Signature": { + "type": "string" + }, + "CustomHeader": { + "type": "string" + }, + "CustomHeaderValue": { + "type": "string" + } + } + }, + "WebHook": { + "enum": [ + "PacketCreated", + "PacketUpdated", + "NewCommunication", + "BusinessObjectCreated", + "SpecificBusinessObjectUpdated", + "BusinessObjectTypeUpdated" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "PacketCreated", + "Value": 0, + "Description": "Packet Created" + }, + { + "Name": "PacketUpdated", + "Value": 1, + "Description": "Packet Updated" + }, + { + "Name": "NewCommunication", + "Value": 2, + "Description": "New Communication" + }, + { + "Name": "BusinessObjectCreated", + "Value": 3, + "Description": "Business Object Created" + }, + { + "Name": "SpecificBusinessObjectUpdated", + "Value": 4, + "Description": "Specific Business Object Updated" + }, + { + "Name": "BusinessObjectTypeUpdated", + "Value": 5, + "Description": "Business Object Type Updated" + } + ] + }, + "EnateObjects": { + "enum": [ + "None", + "Company", + "OU", + "UserTemporaryFile", + "UserSession", + "UserAuditEntry", + "Position", + "PositionHolder", + "Packet", + "PacketContact", + "PacketContactTag", + "PacketDefect", + "PacketCaseConditionHistory", + "UserAgent", + "ScheduleStructure", + "ScheduleStructureDate", + "CaseStepScheduleStructureDate", + "EmailConnector", + "EmailRoute", + "UserTab", + "ServiceLine", + "GlobalChecklist", + "Contract", + "LocalChecklist", + "Service", + "EscalationMessage", + "ContractVersion", + "FixedFrequencySchedule", + "Schedule", + "SchedulePeriod", + "SchedulePeriodDate", + "LaunchProcessSchedule", + "User", + "PasswordPolicy", + "UserOption", + "RuntimePermission", + "AllowedIPRange", + "UserQueue", + "RobotFarm", + "RobotFarmMember", + "RobotFarmProcess", + "RobotSixSigmaEntry", + "RobotSuspensionHistory", + "UserGroup", + "UserGroupUser", + "Card", + "CardItem", + "DataDictionaryTable", + "DataDictionary", + "Entity", + "EntityDataItem", + "PacketCommunication", + "PacketCommunicationContact", + "PacketCommunicationAttachment", + "PacketDebugMessage", + "PacketCommunicationRawData", + "StorageAdapterItemsPendingDelete", + "StorageAdapterItemsPendingCommit", + "PacketActivity", + "PacketAllocationHistory", + "PacketCustomData", + "PacketFile", + "PacketFeedbackEntry", + "SingleUseDownload", + "PacketProcessAttributeHistory", + "PacketChecklist", + "PacketCaseStepHistory", + "PacketFileTag", + "PacketCommunicationAttachmentTag", + "PacketCaseReworkHistory", + "PacketQueueHistory", + "PacketStatusHistory", + "PacketCasePendingAction", + "PacketLinkedPacket", + "ContactTag", + "CaseAttribute", + "CaseType", + "ActionType", + "TicketType", + "TicketAttribute", + "Calendar", + "CalendarException", + "EntityStructure", + "EntityStructureDataItem", + "SingleSignOnSetting", + "StorageAdapter", + "StorageAdapterFile", + "StorageAdapterConfiguration", + "Queue", + "CaseStep", + "TicketCategoryAttribute", + "DueDateAttribute", + "AllocationAttribute", + "TicketCategory", + "EmployeeSelfServicePortal", + "CaseAttributeVersion", + "ActionAttribute", + "ActionGeneralAttribute", + "TicketAttributeVersion", + "BlockedEmailAddress", + "LocalisationCache", + "RPASync", + "RPASyncConfiguration", + "RPASyncFile", + "DefectCategory", + "DefectPartyAtFaultOption", + "QueueManager", + "FileTag", + "AbbyyPlatform", + "AbbyyProject", + "AbbyyBatch", + "CaseConditionAttribute", + "CaseConditionOutputAttribute", + "EmailTemplate", + "CannedResponse", + "EmailTemplateAttachment", + "EmailTemplateContent", + "EmailTemplateTag", + "AdvancedSearch", + "WebHookSubscription", + "ConfigurationAudit" + ], + "type": "string", + "x-is-flagged": false, + "x-enum-metadata": [ + { + "Name": "None", + "Value": 0, + "Description": "None" + }, + { + "Name": "Company", + "Value": 31, + "Description": "Company" + }, + { + "Name": "OU", + "Value": 32, + "Description": "OU" + }, + { + "Name": "UserTemporaryFile", + "Value": 33, + "Description": "User Temporary File" + }, + { + "Name": "UserSession", + "Value": 34, + "Description": "User Session" + }, + { + "Name": "UserAuditEntry", + "Value": 35, + "Description": "User Audit Entry" + }, + { + "Name": "Position", + "Value": 37, + "Description": "Position" + }, + { + "Name": "PositionHolder", + "Value": 38, + "Description": "Position Holder" + }, + { + "Name": "Packet", + "Value": 81, + "Description": "Packet" + }, + { + "Name": "PacketContact", + "Value": 83, + "Description": "Packet Contact" + }, + { + "Name": "PacketContactTag", + "Value": 84, + "Description": "Packet Contact Tag" + }, + { + "Name": "PacketDefect", + "Value": 88, + "Description": "Packet Defect" + }, + { + "Name": "PacketCaseConditionHistory", + "Value": 89, + "Description": "Packet Case Condition History" + }, + { + "Name": "UserAgent", + "Value": 91, + "Description": "User Agent" + }, + { + "Name": "ScheduleStructure", + "Value": 92, + "Description": "Schedule Structure" + }, + { + "Name": "ScheduleStructureDate", + "Value": 93, + "Description": "Schedule Structure Date" + }, + { + "Name": "CaseStepScheduleStructureDate", + "Value": 94, + "Description": "Case Step Schedule Structure Date" + }, + { + "Name": "EmailConnector", + "Value": 95, + "Description": "Email Connector" + }, + { + "Name": "EmailRoute", + "Value": 96, + "Description": "Email Route" + }, + { + "Name": "UserTab", + "Value": 97, + "Description": "User Tab" + }, + { + "Name": "ServiceLine", + "Value": 115, + "Description": "Service Line" + }, + { + "Name": "GlobalChecklist", + "Value": 132, + "Description": "Global Checklist" + }, + { + "Name": "Contract", + "Value": 215, + "Description": "Contract" + }, + { + "Name": "LocalChecklist", + "Value": 216, + "Description": "Local Checklist" + }, + { + "Name": "Service", + "Value": 217, + "Description": "Service" + }, + { + "Name": "EscalationMessage", + "Value": 223, + "Description": "Escalation Message" + }, + { + "Name": "ContractVersion", + "Value": 227, + "Description": "Contract Version" + }, + { + "Name": "FixedFrequencySchedule", + "Value": 235, + "Description": "Fixed Frequency Schedule" + }, + { + "Name": "Schedule", + "Value": 260, + "Description": "Schedule" + }, + { + "Name": "SchedulePeriod", + "Value": 261, + "Description": "Schedule Period" + }, + { + "Name": "SchedulePeriodDate", + "Value": 262, + "Description": "Schedule Period Date" + }, + { + "Name": "LaunchProcessSchedule", + "Value": 299, + "Description": "Launch Process Schedule" + }, + { + "Name": "User", + "Value": 312, + "Description": "User" + }, + { + "Name": "PasswordPolicy", + "Value": 313, + "Description": "Password Policy" + }, + { + "Name": "UserOption", + "Value": 315, + "Description": "User Option" + }, + { + "Name": "RuntimePermission", + "Value": 328, + "Description": "Runtime Permission" + }, + { + "Name": "AllowedIPRange", + "Value": 333, + "Description": "Allowed IP Range" + }, + { + "Name": "UserQueue", + "Value": 334, + "Description": "User Queue" + }, + { + "Name": "RobotFarm", + "Value": 336, + "Description": "Robot Farm" + }, + { + "Name": "RobotFarmMember", + "Value": 337, + "Description": "Robot Farm Member" + }, + { + "Name": "RobotFarmProcess", + "Value": 338, + "Description": "Robot Farm Process" + }, + { + "Name": "RobotSixSigmaEntry", + "Value": 339, + "Description": "Robot Six Sigma Entry" + }, + { + "Name": "RobotSuspensionHistory", + "Value": 340, + "Description": "Robot Suspension History" + }, + { + "Name": "UserGroup", + "Value": 341, + "Description": "User Group" + }, + { + "Name": "UserGroupUser", + "Value": 342, + "Description": "User Group User" + }, + { + "Name": "Card", + "Value": 425, + "Description": "Card" + }, + { + "Name": "CardItem", + "Value": 426, + "Description": "Card Item" + }, + { + "Name": "DataDictionaryTable", + "Value": 427, + "Description": "Data Dictionary Table" + }, + { + "Name": "DataDictionary", + "Value": 428, + "Description": "Data Dictionary" + }, + { + "Name": "Entity", + "Value": 812, + "Description": "Entity" + }, + { + "Name": "EntityDataItem", + "Value": 813, + "Description": "Entity Data Item" + }, + { + "Name": "PacketCommunication", + "Value": 817, + "Description": "Packet Communication" + }, + { + "Name": "PacketCommunicationContact", + "Value": 818, + "Description": "Packet Communication Contact" + }, + { + "Name": "PacketCommunicationAttachment", + "Value": 819, + "Description": "Packet Communication Attachment" + }, + { + "Name": "PacketDebugMessage", + "Value": 820, + "Description": "Packet Debug Message" + }, + { + "Name": "PacketCommunicationRawData", + "Value": 821, + "Description": "Packet Communication Raw Data" + }, + { + "Name": "StorageAdapterItemsPendingDelete", + "Value": 822, + "Description": "Storage Adapter Items Pending Delete" + }, + { + "Name": "StorageAdapterItemsPendingCommit", + "Value": 823, + "Description": "Storage Adapter Items Pending Commit" + }, + { + "Name": "PacketActivity", + "Value": 826, + "Description": "Packet Activity" + }, + { + "Name": "PacketAllocationHistory", + "Value": 827, + "Description": "Packet Allocation History" + }, + { + "Name": "PacketCustomData", + "Value": 828, + "Description": "Packet Custom Data" + }, + { + "Name": "PacketFile", + "Value": 829, + "Description": "Packet File" + }, + { + "Name": "PacketFeedbackEntry", + "Value": 830, + "Description": "Packet Feedback Entry" + }, + { + "Name": "SingleUseDownload", + "Value": 831, + "Description": "Single Use Download" + }, + { + "Name": "PacketProcessAttributeHistory", + "Value": 832, + "Description": "Packet Process Attribute History" + }, + { + "Name": "PacketChecklist", + "Value": 833, + "Description": "Packet Checklist" + }, + { + "Name": "PacketCaseStepHistory", + "Value": 834, + "Description": "Packet Case Step History" + }, + { + "Name": "PacketFileTag", + "Value": 835, + "Description": "Packet File Tag" + }, + { + "Name": "PacketCommunicationAttachmentTag", + "Value": 836, + "Description": "Packet Communication Attachment Tag" + }, + { + "Name": "PacketCaseReworkHistory", + "Value": 837, + "Description": "Packet Case Rework History" + }, + { + "Name": "PacketQueueHistory", + "Value": 839, + "Description": "Packet Queue History" + }, + { + "Name": "PacketStatusHistory", + "Value": 840, + "Description": "Packet Status History" + }, + { + "Name": "PacketCasePendingAction", + "Value": 841, + "Description": "Packet Case Pending Action" + }, + { + "Name": "PacketLinkedPacket", + "Value": 842, + "Description": "Packet Linked Packet" + }, + { + "Name": "ContactTag", + "Value": 910, + "Description": "Contact Tag" + }, + { + "Name": "CaseAttribute", + "Value": 911, + "Description": "Case Attribute" + }, + { + "Name": "CaseType", + "Value": 912, + "Description": "Case Type" + }, + { + "Name": "ActionType", + "Value": 913, + "Description": "Action Type" + }, + { + "Name": "TicketType", + "Value": 914, + "Description": "Ticket Type" + }, + { + "Name": "TicketAttribute", + "Value": 915, + "Description": "Ticket Attribute" + }, + { + "Name": "Calendar", + "Value": 924, + "Description": "Calendar" + }, + { + "Name": "CalendarException", + "Value": 925, + "Description": "Calendar Exception" + }, + { + "Name": "EntityStructure", + "Value": 929, + "Description": "Entity Structure" + }, + { + "Name": "EntityStructureDataItem", + "Value": 930, + "Description": "Entity Structure Data Item" + }, + { + "Name": "SingleSignOnSetting", + "Value": 945, + "Description": "Single Sign On Setting" + }, + { + "Name": "StorageAdapter", + "Value": 949, + "Description": "Storage Adapter" + }, + { + "Name": "StorageAdapterFile", + "Value": 950, + "Description": "Storage Adapter File" + }, + { + "Name": "StorageAdapterConfiguration", + "Value": 951, + "Description": "Storage Adapter Configuration" + }, + { + "Name": "Queue", + "Value": 952, + "Description": "Queue" + }, + { + "Name": "CaseStep", + "Value": 953, + "Description": "Case Step" + }, + { + "Name": "TicketCategoryAttribute", + "Value": 954, + "Description": "Ticket Category Attribute" + }, + { + "Name": "DueDateAttribute", + "Value": 956, + "Description": "Due Date Attribute" + }, + { + "Name": "AllocationAttribute", + "Value": 957, + "Description": "Allocation Attribute" + }, + { + "Name": "TicketCategory", + "Value": 958, + "Description": "Ticket Category" + }, + { + "Name": "EmployeeSelfServicePortal", + "Value": 960, + "Description": "Employee Self Service Portal" + }, + { + "Name": "CaseAttributeVersion", + "Value": 963, + "Description": "Case Attribute Version" + }, + { + "Name": "ActionAttribute", + "Value": 964, + "Description": "Action Attribute" + }, + { + "Name": "ActionGeneralAttribute", + "Value": 965, + "Description": "Action General Attribute" + }, + { + "Name": "TicketAttributeVersion", + "Value": 967, + "Description": "Ticket Attribute Version" + }, + { + "Name": "BlockedEmailAddress", + "Value": 968, + "Description": "Blocked Email Address" + }, + { + "Name": "LocalisationCache", + "Value": 969, + "Description": "Localisation Cache" + }, + { + "Name": "RPASync", + "Value": 970, + "Description": "RPA Sync" + }, + { + "Name": "RPASyncConfiguration", + "Value": 971, + "Description": "RPA Sync Configuration" + }, + { + "Name": "RPASyncFile", + "Value": 972, + "Description": "RPA Sync File" + }, + { + "Name": "DefectCategory", + "Value": 973, + "Description": "Defect Category" + }, + { + "Name": "DefectPartyAtFaultOption", + "Value": 974, + "Description": "Defect Party At Fault Option" + }, + { + "Name": "QueueManager", + "Value": 975, + "Description": "Queue Manager" + }, + { + "Name": "FileTag", + "Value": 976, + "Description": "File Tag" + }, + { + "Name": "AbbyyPlatform", + "Value": 977, + "Description": "Abbyy Platform" + }, + { + "Name": "AbbyyProject", + "Value": 978, + "Description": "Abbyy Project" + }, + { + "Name": "AbbyyBatch", + "Value": 979, + "Description": "Abbyy Batch" + }, + { + "Name": "CaseConditionAttribute", + "Value": 980, + "Description": "Case Condition Attribute" + }, + { + "Name": "CaseConditionOutputAttribute", + "Value": 981, + "Description": "Case Condition Output Attribute" + }, + { + "Name": "EmailTemplate", + "Value": 983, + "Description": "Email Template" + }, + { + "Name": "CannedResponse", + "Value": 984, + "Description": "Canned Response" + }, + { + "Name": "EmailTemplateAttachment", + "Value": 985, + "Description": "Email Template Attachment" + }, + { + "Name": "EmailTemplateContent", + "Value": 986, + "Description": "Email Template Content" + }, + { + "Name": "EmailTemplateTag", + "Value": 987, + "Description": "Email Template Tag" + }, + { + "Name": "AdvancedSearch", + "Value": 988, + "Description": "Advanced Search" + }, + { + "Name": "WebHookSubscription", + "Value": 990, + "Description": "Web Hook Subscription" + }, + { + "Name": "ConfigurationAudit", + "Value": 992, + "Description": "Configuration Audit" + } + ] + }, + "ApiResponse[Boolean,ConfigurationValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "required": [ + "Result" + ], + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationValidationMessage" + } + }, + "Result": { + "description": "The created/updated object.", + "type": "boolean" + } + } + }, + "ApiResponse[WebHookSubscription,ConfigurationValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/ConfigurationValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/WebHookSubscription", + "description": "The created/updated object." + } + } + }, + "BasicServiceLine": { + "description": "Basic GUID, Name, Description information for a ServiceLine.", + "required": [ + "Name", + "Retired" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "Retired": { + "description": "Is the object logically deleted.", + "type": "boolean" + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "ApiResponse[FullCasePacket,PacketValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullCasePacket", + "description": "The created/updated object." + } + } + }, + "TicketPacket": { + "type": "object", + "properties": { + "Description": { + "type": "string" + }, + "TicketStartedMethod": { + "type": "string" + }, + "ResolutionDetails": { + "type": "string" + }, + "CompletedBy": { + "$ref": "#/definitions/UserForForeignKey" + }, + "ResolvedOn": { + "format": "date-time", + "type": "string" + }, + "Contacts": { + "type": "array", + "items": { + "$ref": "#/definitions/CaseFlowContact" + } + }, + "ContractGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CustomerGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CustomerName": { + "type": "string" + }, + "ContractName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "ProcessTypeName": { + "type": "string" + }, + "ProcessName": { + "type": "string", + "readOnly": true + }, + "Reference": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "QueueName": { + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "DueDate": { + "format": "date-time", + "type": "string" + }, + "EndDate": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedByUserOn": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedByUserDate": { + "format": "date-time", + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "State": { + "$ref": "#/definitions/PacketStates" + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "OwnerUser": { + "$ref": "#/definitions/UserForForeignKey" + }, + "StartedByUser": { + "$ref": "#/definitions/UserForForeignKey" + } + }, + "x-is-deprecated": true + }, + "ContextCustomerLevel": { + "type": "object", + "properties": { + "Contracts": { + "type": "array", + "items": { + "$ref": "#/definitions/ContextContractLevel" + } + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "type": "string" + } + } + }, + "ContextContractLevel": { + "type": "object", + "properties": { + "Services": { + "type": "array", + "items": { + "$ref": "#/definitions/ContextServiceLevel" + } + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "type": "string" + } + } + }, + "ContextServiceLevel": { + "type": "object", + "properties": { + "Processes": { + "type": "array", + "items": { + "$ref": "#/definitions/ContextProcessLevel" + } + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "type": "string" + } + } + }, + "ContextProcessLevel": { + "required": [ + "AttributeGUID", + "VersionState" + ], + "type": "object", + "properties": { + "AttributeGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "VersionState": { + "$ref": "#/definitions/VersionedObjectStates" + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "type": "string" + } + } + }, + "VersionedObjectStates": { + "enum": [ + "Draft", + "Testing", + "Live", + "Retiring", + "Archive" + ], + "type": "string", + "x-is-flagged": true, + "x-enum-metadata": [ + { + "Name": "Draft", + "Value": 1, + "Description": "Draft" + }, + { + "Name": "Testing", + "Value": 2, + "Description": "Testing" + }, + { + "Name": "Live", + "Value": 8, + "Description": "Live" + }, + { + "Name": "Retiring", + "Value": 16, + "Description": "Retiring" + }, + { + "Name": "Archive", + "Value": 32, + "Description": "Archive" + } + ] + }, + "ServiceMatrixResults": { + "description": "The Service Matrix Results.", + "required": [ + "TotalRowCount", + "TotalCompaniesCount" + ], + "type": "object", + "properties": { + "ProcessGroups": { + "description": "The list of Process Groups.", + "type": "array", + "items": { + "$ref": "#/definitions/ServiceMatrixProcessGroup" + }, + "readOnly": true + }, + "Rows": { + "description": "The list of Customers, Contracts and Services.", + "type": "array", + "items": { + "$ref": "#/definitions/ServiceMatrixRow" + } + }, + "TotalRowCount": { + "format": "int32", + "description": "The total number of Rows that can be returned by requesting different pages.", + "type": "integer" + }, + "TotalCompaniesCount": { + "format": "int32", + "description": "The total number of Companies.", + "type": "integer" + } + } + }, + "ServiceMatrixProcessGroup": { + "description": "The Service Matrix grouping.", + "type": "object", + "properties": { + "Name": { + "description": "The name of the Process Group.", + "type": "string" + }, + "ProcessTypes": { + "description": "The list of Case and Ticket Types in this Process Group.", + "type": "array", + "items": { + "$ref": "#/definitions/ServiceMatrixProcessType" + } + } + } + }, + "ServiceMatrixRow": { + "description": "A Service Matrix result row.", + "required": [ + "CustomerGUID", + "CustomerRetired", + "ContractRetired", + "ServiceRetired" + ], + "type": "object", + "properties": { + "CustomerGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Customer Company.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CustomerName": { + "description": "The name of the Customer Company.", + "type": "string" + }, + "CustomerDescription": { + "description": "The description of the Customer Company.", + "type": "string" + }, + "CustomerRetired": { + "description": "Indicates if the Customer Company is retired.", + "type": "boolean" + }, + "ContractGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Contract.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ContractName": { + "description": "The name of the Contract.", + "type": "string" + }, + "ContractDescription": { + "description": "The description of the Contract.", + "type": "string" + }, + "ContractVersionGUID": { + "format": "uuid", + "description": "The Unique Identifier of the live version Contract.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ContractRetired": { + "description": "Flag indicating if the Contract is Retired.", + "type": "boolean" + }, + "ServiceGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Service.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceName": { + "description": "The name of the Service.", + "type": "string" + }, + "ServiceDescription": { + "description": "The description of the Service.", + "type": "string" + }, + "ServiceRetired": { + "description": "Indicates if the Service is retired.", + "type": "boolean" + }, + "Processes": { + "description": "The list of Processes in this Service (if this item is a Service).", + "type": "array", + "items": { + "$ref": "#/definitions/ServiceMatrixProcessLevel" + } + } + } + }, + "ServiceMatrixProcessType": { + "description": "The Process Types used in the Service Matrix.", + "required": [ + "GUID", + "ProcessType", + "Retired" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "description": "The Unique Identifier of the Process Type.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "Name": { + "description": "The name of the Process Type.", + "type": "string" + }, + "Description": { + "description": "The description of the Process Type.", + "type": "string" + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "Retired": { + "description": "Indicates the Retired state of the Process Type {Enate.Core.Contracts.DTOs.ServiceMatrixProcessGroup}.", + "type": "boolean" + } + } + }, + "ServiceMatrixProcessLevel": { + "description": "A process within the Service Matrix.", + "required": [ + "GUID", + "ProcessType", + "ProcessTypeGUID", + "ShowOnContactsPage", + "IsAvailableToAllUsers" + ], + "type": "object", + "properties": { + "GUID": { + "format": "uuid", + "description": "The unique Identifier of the Process.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "ProcessTypeGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Process Type.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ShowOnContactsPage": { + "description": "Should the Process show on the Contact Page for Users to create work.", + "type": "boolean" + }, + "IsAvailableToAllUsers": { + "description": "Should the Process show for all users in the 'add work item' pop up (or just those with permissions).", + "type": "boolean" + }, + "LiveAttributeVersionGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Live Case (when ProcessType is Case) or Ticket (when ProcessType is Ticket) Attribute Version.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "DevelopmentAttributeVersionGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Draft or Testing Case (when ProcessType is Case) or Ticket (when ProcessType is Ticket) Attribute Version.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "RetiredAttributeVersionGUID": { + "format": "uuid", + "description": "The Unique Identifier of the Highest Retired Case (when ProcessType is Case) or Ticket (when ProcessType is Ticket) Attribute Version.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + }, + "TicketPacketUpdated": { + "required": [ + "Processing" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/TicketPacket" + } + ], + "properties": { + "Processing": { + "type": "boolean" + }, + "Description": { + "type": "string" + }, + "TicketStartedMethod": { + "type": "string" + }, + "CompletedBy": { + "$ref": "#/definitions/UserForForeignKey" + }, + "ResolvedOn": { + "format": "date-time", + "type": "string" + }, + "Contacts": { + "type": "array", + "items": { + "$ref": "#/definitions/CaseFlowContact" + } + }, + "ContractGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CustomerGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "ServiceGUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "GUID": { + "format": "uuid", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + }, + "CustomerName": { + "type": "string" + }, + "ContractName": { + "type": "string" + }, + "ServiceName": { + "type": "string" + }, + "ProcessTypeName": { + "type": "string" + }, + "ProcessName": { + "type": "string", + "readOnly": true + }, + "Reference": { + "type": "string" + }, + "Title": { + "type": "string" + }, + "QueueName": { + "type": "string" + }, + "CurrentCustomState": { + "type": "string" + }, + "StartDate": { + "format": "date-time", + "type": "string" + }, + "DueDate": { + "format": "date-time", + "type": "string" + }, + "EndDate": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedByUserOn": { + "format": "date-time", + "type": "string" + }, + "LastUpdatedByUserDate": { + "format": "date-time", + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "State": { + "$ref": "#/definitions/PacketStates" + }, + "StateDescription": { + "type": "string", + "readOnly": true, + "x-is-deprecated": true + }, + "ProcessType": { + "$ref": "#/definitions/ProcessType" + }, + "StartedByMethod": { + "$ref": "#/definitions/PacketStartedByMethod" + }, + "OwnerUser": { + "$ref": "#/definitions/UserForForeignKey" + }, + "StarterUser": { + "$ref": "#/definitions/UserForForeignKey", + "readOnly": true, + "x-is-deprecated": true + }, + "StartedByUser": { + "$ref": "#/definitions/UserForForeignKey" + } + }, + "x-is-deprecated": true + }, + "ApiResponse[FullActionPacket,PacketValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullActionPacket", + "description": "The created/updated object." + } + } + }, + "ApiResponse[FullTicketPacket,PacketValidationMessage]": { + "description": "Used to enable the return of a created/updated object and a list of validation warnings/errors.", + "type": "object", + "properties": { + "Messages": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketValidationMessage" + } + }, + "Result": { + "$ref": "#/definitions/FullTicketPacket", + "description": "The created/updated object." + } + } + }, + "ExistingPacketFileTag": { + "description": "Details of a Tag attributed to a Packet File.", + "required": [ + "Name", + "IsHidden" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/BasicLocalisedNameAndDescription" + } + ], + "properties": { + "IsHidden": { + "description": "Whether the Files with this tag are hidden from Users. Hidden files are used for integration between systems only.", + "type": "boolean" + }, + "AddedOn": { + "format": "date-time", + "description": "The date/time that the File Tag was added by the User identified in .", + "type": "string" + }, + "AddedByUser": { + "$ref": "#/definitions/UserForList", + "description": "The User that added the File Tag." + }, + "Description": { + "description": "Description of the Object.", + "type": "string" + }, + "Name": { + "description": "Name of the Object.", + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "GUID": { + "format": "uuid", + "description": "Unique identifier of the object.", + "type": "string", + "example": "00000000-0000-0000-0000-000000000000" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Enate/apiProperties.json b/certified-connectors/Enate/apiProperties.json new file mode 100644 index 0000000000..76ee9532ef --- /dev/null +++ b/certified-connectors/Enate/apiProperties.json @@ -0,0 +1,18 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#FDFCFB", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "HostedURL", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "https://@queryParameters('HostUrl')/@queryParameters('InstanceName')/" + } + } + ], + "publisher": "Enate", + "stackOwner": "Enate" + } +} \ No newline at end of file From d6c31ea3ff914a28f057e016990c7cdf2a4a4119 Mon Sep 17 00:00:00 2001 From: tdechanterac Date: Thu, 21 Oct 2021 20:22:26 +0200 Subject: [PATCH 078/219] Witivio v2 and rebranding to Virtual Agent Studio (#1196) * Rebranded Witivio connector * Updated PR with comments * Updated ApiProperties with dummy clientId * Updated with [[Dummy]] Client ID Co-authored-by: Tanguy --- .../Witivio/apiDefinition.swagger.json | 189 +++++++++++++----- .../Witivio/apiProperties.json | 36 +++- certified-connectors/Witivio/readme.md | 10 +- 3 files changed, 175 insertions(+), 60 deletions(-) diff --git a/certified-connectors/Witivio/apiDefinition.swagger.json b/certified-connectors/Witivio/apiDefinition.swagger.json index 814f2f5764..7bc6113490 100644 --- a/certified-connectors/Witivio/apiDefinition.swagger.json +++ b/certified-connectors/Witivio/apiDefinition.swagger.json @@ -1,11 +1,16 @@ { "swagger": "2.0", "info": { - "title": "Witivio", - "description": "Witivio 365 and Microsoft Flow.", - "version": "1.0" + "title": "Virtual Agent Studio", + "description": "Virtual Agent Studio is a powerful no-code chatbot builder that helps companies assist employees at scale. Just install it, and you’re ready to go! Manage the chatbot’s knowledge without technical expertise. Deploy it right where employees work: Teams, Intranet, web, and more.", + "version": "2.0", + "contact": { + "name": "Witivio", + "url": "https://www.virtualagentstudio.com/en/contact-us/", + "email": "contact@witivio.com" + } }, - "host": "app.witivio.com", + "host": "app.virtualagentstudio.com", "basePath": "/", "schemes": [ "https" @@ -131,7 +136,7 @@ "in": "path", "required": true, "type": "string", - "description": "Select the chatbot you want to trriger from." + "description": "Select the chatbot you want to trigger from." }, { "name": "language", @@ -273,9 +278,25 @@ } }, "/api/conversations/{botId}/{language}/questions/{questionId}/triggers/register": { + "x-ms-visibility": "important", "x-ms-notification-content": { "schema": { "type": "object", + "x-ms-dynamic-properties": { + "itemValuePath": "schema", + "parameters": { + "botId": { + "parameterReference": "botId" + }, + "questionId": { + "parameterReference": "questionId" + }, + "language": { + "parameterReference": "language" + } + }, + "operationId": "GetWebhookResponseSchema" + }, "x-ms-dynamic-schema": { "operationId": "GetWebhookResponseSchema", "parameters": { @@ -289,7 +310,7 @@ "parameter": "language" } }, - "value-path": "properties" + "value-path": "schema" } }, "description": "Webhook response" @@ -302,7 +323,7 @@ }, "summary": "When the chatbot understand", "operationId": "WebhookTrigger", - "description": "", + "description": "When the chatbot understand", "x-ms-trigger": "single", "parameters": [ { @@ -411,8 +432,7 @@ "type": "string", "description": "callbackUrl", "x-ms-notification-url": true, - "x-ms-visibility": "internal", - "title": "" + "x-ms-visibility": "internal" } }, "required": [ @@ -463,6 +483,21 @@ "x-ms-notification-content": { "schema": { "type": "object", + "x-ms-dynamic-properties": { + "itemValuePath": "schema", + "parameters": { + "botId": { + "parameterReference": "botId" + }, + "escalationId": { + "parameterReference": "escalationId" + }, + "language": { + "parameterReference": "language" + } + }, + "operationId": "GetWebhookResponseSchemaEscalation" + }, "x-ms-dynamic-schema": { "operationId": "GetWebhookResponseSchemaEscalation", "parameters": { @@ -472,14 +507,11 @@ "language": { "parameter": "language" }, - "profileId": { - "parameter": "profileId" - }, "escalationId": { "parameter": "escalationId" } }, - "value-path": "properties" + "value-path": "schema" } }, "description": "Webhook response" @@ -492,7 +524,7 @@ }, "summary": "When the chatbot launch an escalation", "operationId": "WebhookEscalationTrigger", - "description": "", + "description": "When the chatbot launch an escalation", "x-ms-trigger": "single", "parameters": [ { @@ -658,9 +690,8 @@ "post": { "summary": "The chatbot launch feedback", "operationId": "SendFeedback", - "description": "", + "description": "The chatbot launch feedback", "parameters": [ - { "name": "botId", "in": "path", @@ -668,12 +699,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -707,9 +736,8 @@ "post": { "summary": "The chatbot replies", "operationId": "SendMessage", - "description": "", + "description": "The chatbot replies", "parameters": [ - { "name": "botId", "in": "path", @@ -717,12 +745,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -763,12 +789,71 @@ } } }, - + "/api/botproxy/{botId}/startescalation": { + "post": { + "summary": "The chatbot launch the next escalation available", + "operationId": "StartEscalation", + "description": "The chatbot launch the next escalation available", + "parameters": [ + { + "name": "botId", + "in": "path", + "required": true, + "type": "string", + "description": "The chatbot ID.", + "x-ms-summary": "Chatbot ID" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "conversationContext": { + "type": "object", + "description": "Pass here the conversation context", + "x-ms-summary": "Conversation context" + }, + "initialQuestion": { + "type": "string", + "description": "The initial question from the user", + "x-ms-summary": "Initial question" + }, + "userProfile": { + "type": "object", + "description": "The profile of the user", + "x-ms-summary": "User profile" + }, + "escalationOptions": { + "type": "object", + "description": "Pass here the Escalations Options", + "x-ms-summary": "Escalation Options" + } + }, + "required": [ + "conversationContext", + "initialQuestion", + "userProfile" + ] + } + } + ], + "responses": { + "200": { + "description": "Ok", + "schema": { + "type": "object" + } + } + } + } + }, "/api/botproxy/{botId}/adaptive": { "post": { "summary": "The chatbot replies with adaptive card", "operationId": "SendAdaptive", - "description": "", + "description": "The chatbot replies with adaptive card", "parameters": [ { "name": "botId", @@ -777,12 +862,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -823,15 +906,12 @@ } } }, - "/api/botproxy/{botId}/message/input": { "post": { - "summary": "The chatbot asks a question", "operationId": "SendMessageInput", - "description": "", + "description": "The chatbot asks a question", "parameters": [ - { "name": "botId", "in": "path", @@ -839,12 +919,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -858,11 +936,17 @@ "type": "string", "description": "the chatbot asks", "x-ms-summary": "Question" + }, + "isFileWaiting": { + "type": "boolean", + "description": "Do you wait for a file", + "x-ms-summary": "File waiting" } }, "required": [ "question", - "conversationContext" + "conversationContext", + "isFileWaiting" ] } } @@ -875,11 +959,14 @@ "properties": { "message": { "type": "string" + }, + "files": { + "type": "array", + "items": { + "type": "object" + } } - }, - "required": [ - "message" - ] + } } } } @@ -887,12 +974,10 @@ }, "/api/botproxy/{botId}/message/input/list": { "post": { - "summary": "The chatbot asks a question with a list of choices", "operationId": "SendMessageInputList", - "description": "", + "description": "The chatbot asks a question with a list of choices", "parameters": [ - { "name": "botId", "in": "path", @@ -900,12 +985,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -1000,12 +1083,10 @@ }, "/api/botproxy/{botId}/message/input/array": { "post": { - "summary": "The chatbot asks a question with an list of dynamics choices", "operationId": "SendMessageInputArray", - "description": "", + "description": "The chatbot asks a question with an list of dynamics choices", "parameters": [ - { "name": "botId", "in": "path", @@ -1013,12 +1094,10 @@ "type": "string", "description": "The chatbot ID.", "x-ms-summary": "Chatbot ID" - }, { "name": "body", "in": "body", - "required": true, "schema": { "type": "object", @@ -1083,7 +1162,7 @@ "x-ms-visibility": "internal", "summary": "The user answer to flow question", "operationId": "GetResponseFromFlowQuestion", - "description": "", + "description": "The user answer to flow question", "parameters": [ { "name": "botId", @@ -1194,5 +1273,19 @@ "oauth2_auth": [] } ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.virtualagentstudio.com/en/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.virtualagentstudio.com/en/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "AI;Website" + } + ], "tags": [] } \ No newline at end of file diff --git a/certified-connectors/Witivio/apiProperties.json b/certified-connectors/Witivio/apiProperties.json index 6866f496c8..1cfc95f44f 100644 --- a/certified-connectors/Witivio/apiProperties.json +++ b/certified-connectors/Witivio/apiProperties.json @@ -1,25 +1,47 @@ { "properties": { - "capabilities": [], "connectionParameters": { "token": { + "type": "oauthSetting", "oAuthSettings": { - }, - "type": "oauthSetting" + "identityProvider": "aad", + "clientId": "[[DUMMY]]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "AzureActiveDirectoryResourceId": "https://witivio.com/15f501b1-2ede-4c82-b6ef-9d057a5df422" + }, + "customParameters": { + "loginUri": { + "value": "https://login.windows.net" + }, + "tenantId": { + "value": "common" + }, + "resourceUri": { + "value": "https://witivio.com/15f501b1-2ede-4c82-b6ef-9d057a5df422" + } + } + } }, "token:TenantId": { + "type": "string", "metadata": { "sourceType": "AzureActiveDirectoryTenant" }, - "type": "string", "uiDefinition": { "constraints": { - "hidden": "true", - "required": "false" + "required": "false", + "hidden": "true" } } } }, - "iconBrandColor": "#8F3163" + "iconBrandColor": "#8F3163", + "capabilities": [], + "publisher": "Witivio", + "stackOwner": "Witivio" } } \ No newline at end of file diff --git a/certified-connectors/Witivio/readme.md b/certified-connectors/Witivio/readme.md index b55dda5d73..9c2da0e3ee 100644 --- a/certified-connectors/Witivio/readme.md +++ b/certified-connectors/Witivio/readme.md @@ -1,16 +1,16 @@ - + ### NOTE -> This is Witivio connector, the enterprise chatbot platform for the digital workplace +> This is Virtual Agent Studio connector, the enterprise chatbot platform for the digital workplace ## Pre-requisites You will need the following to proceed: * A Microsoft Power Apps or Microsoft Power Automate plan with custom connector feature -* A Witivio subscription +* A Virtual Agent Studio subscription * An active chatbot -## Set up an Witivio account -https://app.witivio.com +## Set up a Virtual Agent Studio account +Simply open your browser and login with your enterprise credentials to https://app.virtualagentstudio.com From b130315cc8947a8e401b6c6a9352e8c4bafe03a9 Mon Sep 17 00:00:00 2001 From: Mario Trueba Cantero Date: Fri, 22 Oct 2021 01:30:34 +0200 Subject: [PATCH 079/219] LibreBor (Independent Publisher) (#1160) * Add files via upload * Delete independent-publisher-connectors/LibreBor directory * Updated LibreBor connector with latest * Changed the iconBrandColor * Delete settings.json * Removed Unicodes and expanded the descriptions as requested * Deleted icon.png --- .../LibreBor/apiDefinition.swagger.json | 1168 +++++++++++++++++ .../LibreBor/apiProperties.json | 36 + .../LibreBor/readme.md | 27 + 3 files changed, 1231 insertions(+) create mode 100644 independent-publisher-connectors/LibreBor/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/LibreBor/apiProperties.json create mode 100644 independent-publisher-connectors/LibreBor/readme.md diff --git a/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json b/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json new file mode 100644 index 0000000000..f09b17a453 --- /dev/null +++ b/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json @@ -0,0 +1,1168 @@ +{ + "swagger": "2.0", + "info": { + "title": "LibreBor", + "description": "Librebor allows you to retrieve specific company details from the Spanish Register, information such as adquisitions, incorporations, NIF validation and more", + "version": "1.0", + "contact": { + "email": "mario@trueba.co.uk", + "name" : "Mario Trueba Cantero & Marco Amoedo" + } + }, + + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://librebor.me/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://librebor.me/terminos-y-condiciones/" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Data" + } + ], + + "host": "api.librebor.me", + "basePath": "/v2", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/company/search/": { + "get": { + "responses": { + "200": { + "description": "Company results including name, slug and province. Use the slug to retrieve all the information for a company.", + "schema": { + "type": "object", + "properties": { + "companies": { + "type": "array", + "items": { + "$ref": "#/definitions/CompanySearchResult" + } + }, + "count_results": { + "type": "integer", + "format": "int32", + "description": "Number of results that the user wants displayed by page." + }, + "total_results": { + "type": "integer", + "format": "int32", + "description": "Total number of results retrieved." + }, + "next_page": { + "type": "string", + "description": "Endpoint to retrieve the next page of content." + } + } + } + } + }, + "summary": "Search for a company", + "description": "Retrieve list of companies that match the keywords in their name. The number of results is limited to 200. Use the 'page' parameter to retrieve more results.", + "operationId": "Libreborme_search_company", + "parameters": [ + { + "name": "query", + "x-ms-summary": "query", + "in": "query", + "required": true, + "type": "string", + "description" : "Query to search, preferable the name of the company" + }, + { + "name": "page", + "in": "query", + "required": false, + "type": "string", + "description" : "In case you want to retrieve a specific page only", + "x-ms-summary": "page" + }, + { + "name": "province", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "province", + "description" : "Province where the company is located, this parameter is optional." + } + ] + } + }, + "/company/by-slug/{slug}/": { + "get": { + "tags": [ + "Companies" + ], + "summary": "Get company information by Slug", + "description": "Retrieve company information for specified Slug, a slug is a concatenation of key words that represent the company", + "operationId": "Libreborme-company_by_slug", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "slug", + "x-ms-summary": "slug", + "required": true, + "description": "Company Slug used to retrieve the company information", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Complete company information hosted in the Spanish Register", + "schema": { + "type": "object", + "properties": { + "company": { + "$ref": "#/definitions/Company" + } + } + } + }, + "404": { + "description": "Company not found", + "schema": { + "$ref": "#/definitions/ResponseCompanyNotFound" + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + }, + "/company/by-nif/{nif}/": { + "get": { + "tags": [ + "Companies" + ], + "summary": "Get company information by NIF", + "description": "Retrieve company information for specified NIF.", + "operationId": "Libreborme-company_by_nif", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "nif", + "x-ms-summary": "nif", + "required": true, + "description": "Company NIF used to retrieve the info.", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Complete company information hosted in the Spanish Register", + "schema": { + "type": "object", + "properties": { + "company": { + "$ref": "#/definitions/Company" + } + } + } + }, + "400": { + "description": "NIF is not valid", + "schema": { + "$ref": "#/definitions/ResponseInvalidNIF" + } + }, + "404": { + "description": "Company not found", + "schema": { + "$ref": "#/definitions/ResponseCompanyNotFound" + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + }, + "/person/search/": { + "get": { + "tags": [ + "People" + ], + "summary": "Search for a person", + "description": "Retrieve list of people that match the keywords in their name. The number of results is limited to 200. Use the 'page' parameter to retrieve more results.", + "operationId": "Libreborme-search_person", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "query", + "in": "query", + "x-ms-summary": "query", + "description": "Query to search, preferable the name of the individual", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/Page" + }, + { + "$ref": "#/parameters/ProvinceOptional" + } + ], + "responses": { + "200": { + "description": "People results including name, slug and province. Use the slug to retrieve all the information for a person.", + "schema": { + "type": "object", + "properties": { + "people": { + "type": "array", + "items": { + "$ref": "#/definitions/PersonSearchResult" + } + }, + "count_results": { + "type": "integer", + "format": "int32", + "description": "Number of results that the user wants displayed by page." + }, + "total_results": { + "type": "integer", + "format": "int32", + "description": "Total number of results retrieved." + }, + "next_page": { + "type": "string", + "description": "Endpoint to retrieve the next page of content." + } + } + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + }, + "/person/by-slug/{slug}/": { + "get": { + "tags": [ + "People" + ], + "summary": "Get person information (slug)", + "description": "Retrieve person information for specified Slug.", + "operationId": "Libreborme-person_by_slug", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "slug", + "x-ms-summary": "slug", + "required": true, + "description": "Person slug used to retrieve the personal information", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Person information held in the register", + "schema": { + "$ref": "#/definitions/Person" + } + }, + "404": { + "description": "Person not found", + "schema": { + "$ref": "#/definitions/ResponsePersonNotFound" + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + }, + + "/utils/nif-info/{nif}/": { + "get": { + "tags": [ + "Utils" + ], + "summary": "Validate NIF", + "description": "Check whether a NIF is valid or not and return information that can be infered from a NIF number, such as the legal form, company type and register province.", + "operationId": "Libreborme-nif_info", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/NIF" + } + ], + "responses": { + "200": { + "description": "NIF information and validation", + "schema": { + "$ref": "#/definitions/NIFInfo" + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + }, + + "/company/by-slug/{slug}/incorporation/": { + "get": { + "tags": [ + "Custom endpoints" + ], + "summary": "Get company incorporation information by Slug", + "description": "Retrieve company incorporation information for specified Slug.", + "operationId": "Libreborme-company_incorporation_by_slug", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "slug", + "x-ms-summary": "slug", + "required": true, + "description": "Company slug to check the incorporation information", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Company information regarding incorporation to the register", + "schema": { + "$ref": "#/definitions/CompanyIncorporation" + } + }, + "404": { + "description": "Company not found", + "schema": { + "$ref": "#/definitions/ResponseCompanyNotFound" + } + }, + "500": { + "description": "The system is overloaded or significantly impaired.", + "schema": { + "$ref": "#/definitions/ResponseError" + } + } + } + } + } + }, + "definitions": { + "Act": { + "type": "object", + "properties": { + "label": { + "type": "string", + "example": "Revocaciones" + }, + "announcement": { + "type": "object", + "properties": { + "branch": { + "type": "string", + "example": "" + }, + "date": { + "type": "string", + "format": "date", + "example": "2008-12-18" + }, + "number": { + "type": "integer", + "example": 96 + }, + "office": { + "type": "string", + "example": "" + }, + "registry_data": { + "type": "string", + "example": "T 2459 , F 85, S 8, H A 18613, I/A 25" + }, + "year": { + "type": "integer", + "example": 2009 + } + } + }, + "borme": { + "$ref": "#/definitions/Borme" + }, + "positions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug_person": { + "type": "string", + "example": "pepito-juan" + }, + "name_person": { + "type": "string", + "example": "Pepito Juan" + }, + "role": { + "type": "string", + "example": "Apoderado" + }, + "type": { + "$ref": "#/definitions/PositionType" + } + } + } + }, + "total_positions": { + "type": "integer", + "example": 1 + } + } + }, + "ActInAnnouncement": { + "type": "object", + "description": "DEPRECATED: this model will be remove in the future", + "properties": { + "label": { + "type": "string", + "example": "Revocaciones" + }, + "positions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug_person": { + "type": "string", + "example": "pepito-juan" + }, + "name_person": { + "type": "string", + "example": "Pepito Juan" + }, + "role": { + "type": "string", + "example": "Apoderado" + }, + "type": { + "$ref": "#/definitions/PositionType" + } + } + } + }, + "total_positions": { + "type": "integer", + "example": 1 + } + } + }, + "Announcement": { + "type": "object", + "properties": { + "number": { + "type": "integer", + "example": 1 + }, + "year": { + "type": "integer", + "example": 2018 + }, + "registry_data": { + "type": "string", + "example": "T 1659, L 1220, F 191, S 8, H CS 36998, I/A 4 (12.03.18)." + }, + "branch": { + "type": "string", + "example": "" + }, + "office": { + "type": "string", + "example": "" + }, + "date": { + "type": "string", + "format": "date", + "example": "2018-03-12" + }, + "acts": { + "description": "DEPRECATED: this field will be remove in the future", + "type": "array", + "items": { + "$ref": "#/definitions/ActInAnnouncement" + } + }, + "borme": { + "$ref": "#/definitions/Borme" + } + } + }, + "Borme": { + "type": "object", + "properties": { + "cve": { + "type": "string", + "example": "BORME-A-2019-249-03" + }, + "date": { + "type": "string", + "format": "date", + "example": "2019-12-31" + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "url": { + "type": "string", + "example": "https://www.boe.es/borme/dias/2019/12/31/pdfs/BORME-A-2019-249-03.pdf" + } + } + }, + "PositionType": { + "type": "string", + "enum": [ + "Company", + "Person" + ], + "example": "Person" + }, + "Company": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "example": "gowex-malaga" + }, + "name": { + "type": "string", + "example": "Gowex Malaga SL" + }, + "nif": { + "type": "string", + "x-nullable": true + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "status": { + "$ref": "#/definitions/CompanyStatus" + }, + "last_update": { + "type": "string", + "format": "date" + }, + "address": { + "type": "string", + "example": "C/ CALLE DE EJEMPLO 12 2B (MALAGA).", + "x-nullable": true + }, + "begin_activity": { + "type": "string", + "format": "date", + "x-nullable": true + }, + "capital": { + "type": "integer", + "example": 3000, + "x-nullable": true + }, + "purpose": { + "type": "string", + "example": "Servicios comerciales, telemarketing y postventa para empresa del sector de la automocion.", + "x-nullable": true + }, + "date_creation": { + "type": "string", + "format": "date", + "x-nullable": true + }, + "date_dissolution": { + "type": "string", + "format": "date", + "x-nullable": true + }, + "date_extinction": { + "type": "string", + "format": "date", + "x-nullable": true + }, + "reason_dissolution": { + "type": "string", + "x-nullable": true + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Act" + } + }, + "total_actions": { + "type": "integer", + "example": 3 + }, + "announcements": { + "type": "array", + "items": { + "$ref": "#/definitions/Announcement" + } + }, + "total_announcements": { + "type": "integer", + "example": 1 + }, + "bormes": { + "type": "array", + "items": { + "$ref": "#/definitions/Borme" + } + }, + "total_bormes": { + "type": "integer", + "example": 1 + }, + "active_positions": { + "type": "array", + "items": { + "$ref": "#/definitions/PersonPosition" + } + }, + "total_active_positions": { + "type": "integer", + "example": 1 + }, + "inactive_positions": { + "type": "array", + "items": { + "$ref": "#/definitions/PersonPosition" + } + }, + "total_inactive_positions": { + "type": "integer", + "example": 1 + } + } + }, + "CompanyIncorporation": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + }, + "incorporation_registry_data": { + "type": "string", + "example": "T 1239, L 1010, F 169, S 8, H CS 334468, I/A 1" + }, + "slug": { + "type": "string", + "example": "gowex-malaga" + }, + "name": { + "type": "string", + "example": "Gowex Malaga SL" + }, + "nif": { + "type": "string", + "example": "B46999991" + } + } + }, + "CompanySearchResult": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Gowex Malaga SL" + }, + "slug": { + "type": "string", + "example": "gowex-malaga" + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "status": { + "$ref": "#/definitions/CompanyStatus" + }, + "last_update": { + "type": "string", + "format": "date", + "example": "2020-04-20" + } + } + }, + "CompanySummaryResult": { + "type": "object", + "properties": { + "name": { + "type": "string", + "example": "Gowex Malaga SL" + }, + "slug": { + "type": "string", + "example": "gowex-malaga" + }, + "address": { + "type": "string", + "example": "C/ CALLE DE EJEMPLO 12 2B (MALAGA)." + }, + "capital": { + "type": "integer", + "example": 3000 + }, + "purpose": { + "type": "string", + "example": "Servicios comerciales, telemarketing y postventa para empresa del sector de la automocion." + } + } + }, + "CompanyStatus": { + "type": "string", + "enum": [ + "active", + "inactive", + "dissolved", + "renamed", + "transformed" + ], + "example": "active" + }, + "NIF": { + "type": "string", + "example": "B86007945" + }, + "NIFInfo": { + "type": "object", + "properties": { + "nif": { + "$ref": "#/definitions/NIF" + }, + "nif_data": { + "type": "object", + "properties": { + "company_type": { + "type": "string", + "enum": [ + "Sociedad Anonima", + "Sociedad de Responsabilidad Limitada", + "Sociedad Colectiva", + "Sociedad Comanditaria", + "Comunidad de Bienes", + "Sociedad Cooperativa", + "Asociacion", + "Comunidad de Propietarios en Regimen de Propiedad Horizontal", + "Sociedad civil", + "Sociedad extranjera", + "Corporacion local", + "Organismo Publico", + "Congregacion o institucion religiosa", + "Organo de la Administracion General del Estado o de las Comunidades Autonomas", + "Union Temporal de Empresas", + "Sociedad Agraria de Transformacion", + "Establecimiento permanente de entidad no residente en Espana" + ], + "example": "Sociedad de Responsabilidad Limitada" + }, + "register_province": { + "$ref": "#/definitions/ProvinceName" + }, + "type": { + "$ref": "#/definitions/NIFType" + } + } + }, + "valid": { + "type": "boolean", + "example": true + } + } + }, + "NIFType": { + "type": "string", + "enum": [ + "COMPANY", + "PERSON" + ], + "example": "COMPANY" + }, + "Person": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "example": "jorge-jesus-maldonado" + }, + "name": { + "type": "string", + "example": "Jorge Jesus Maldonado" + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "last_update": { + "type": "string", + "format": "date", + "example": "2020-04-20" + }, + "acts": { + "description": "DEPRECATED: use actions field instead", + "type": "array", + "items": { + "$ref": "#/definitions/Act" + } + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/definitions/Act" + } + }, + "total_actions": { + "type": "integer", + "example": 3 + }, + "announcements": { + "type": "array", + "items": { + "$ref": "#/definitions/Announcement" + } + }, + "total_announcements": { + "type": "integer", + "example": 1 + }, + "bormes": { + "type": "array", + "items": { + "$ref": "#/definitions/Borme" + } + }, + "total_bormes": { + "type": "integer", + "example": 5 + }, + "active_positions": { + "type": "array", + "items": { + "$ref": "#/definitions/PersonPosition" + } + }, + "total_active_positions": { + "type": "integer", + "example": 1 + }, + "inactive_positions": { + "type": "array", + "items": { + "$ref": "#/definitions/PersonPosition" + } + }, + "total_inactive_positions": { + "type": "integer", + "example": 1 + } + } + }, + "PersonSearchResult": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "example": "jorge-jesus-maldonado" + }, + "name": { + "type": "string", + "example": "Jorge Jesus Maldonado" + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "last_update": { + "type": "string", + "format": "date", + "example": "2020-04-20" + } + } + }, + "ProvinceName": { + "type": "string", + "example": "Madrid" + }, + "SummaryNewCompanies": { + "type": "object", + "properties": { + "summary": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cve": { + "type": "string", + "example": "BORME-A-2019-249-03" + }, + "new_companies": { + "$ref": "#/definitions/CompanySummaryResult" + }, + "province": { + "$ref": "#/definitions/ProvinceName" + }, + "total_new_companies": { + "type": "integer", + "example": 42 + } + } + } + } + } + }, + "ResponseError": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Internal Server Error" + }, + "code": { + "type": "string", + "example": "BACKEND_FAILED" + } + } + } + } + }, + "ResponseError400": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Missing province parameter." + }, + "code": { + "type": "string", + "example": "MISSING_PARAMETER" + } + } + } + } + }, + "ResponseCompanyNotFound": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Company not found" + }, + "code": { + "type": "string", + "example": "NOT_FOUND" + } + } + } + } + }, + "ResponseInvalidNIF": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Invalid NIF" + }, + "code": { + "type": "string", + "example": "INVALID_NIF" + } + } + } + } + }, + "ResponsePersonNotFound": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Person not found" + }, + "code": { + "type": "string", + "example": "NOT_FOUND" + } + } + } + } + }, + "ResponseSummaryNotFound": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Summary not found" + }, + "code": { + "type": "string", + "example": "NOT_FOUND" + } + } + } + } + }, + "CompanyPosition": { + "type": "object", + "properties": { + "slug_company": { + "type": "string", + "example": "gowex-malaga" + }, + "name_company": { + "type": "string", + "example": "Gowex Malaga SL" + }, + "role": { + "type": "string", + "example": "Adm.Unico" + }, + "date_from": { + "type": "string", + "format": "date", + "example": "2020-01-02", + "x-nullable": true + }, + "date_to": { + "type": "string", + "format": "date", + "example": "2020-04-20", + "x-nullable": true + }, + "type": { + "type": "string", + "example": "Company" + } + } + }, + "PersonPosition": { + "type": "object", + "properties": { + "slug_person": { + "type": "string", + "example": "aguilar-concepcion" + }, + "name_person": { + "type": "string", + "example": "Aguilar Concepcion" + }, + "role": { + "type": "string", + "example": "Apoderado" + }, + "date_from": { + "type": "string", + "format": "date", + "example": "2020-01-02", + "x-nullable": true + }, + "date_to": { + "type": "string", + "format": "date", + "example": "2020-04-20", + "x-nullable": true + }, + "type": { + "type": "string", + "example": "Person" + } + } + } + }, + "parameters": { + "NIF": { + "description": "Company or Person NIF", + "in": "path", + "name": "nif", + "type": "string", + "required": true, + "x-ms-summary": "NIF", + "x-ms-url-encoding": "single" + }, + "ProvinceOptional": { + "name": "province", + "in": "query", + "type": "integer", + "description": "Province code", + "required": false, + "minimum": 1, + "maximum": 52, + "x-ms-summary": "Province" + }, + "Page": { + "name": "page", + "in": "query", + "type": "integer", + "description": "Results pagination", + "required": false, + "x-ms-summary": "Page" + } + }, + "responses": {}, + "securityDefinitions": { + "basic_auth": { + "type": "basic" + } + }, + "security": [ + { + "basic_auth": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/independent-publisher-connectors/LibreBor/apiProperties.json b/independent-publisher-connectors/LibreBor/apiProperties.json new file mode 100644 index 0000000000..8d57bcdfea --- /dev/null +++ b/independent-publisher-connectors/LibreBor/apiProperties.json @@ -0,0 +1,36 @@ +{ + "properties": { + "connectionParameters": { + "username": { + "type": "securestring", + "uiDefinition": { + "displayName": "username", + "description": "The username for this api", + "tooltip": "Provide the username", + "constraints": { + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "password", + "description": "The password for this api", + "tooltip": "Provide the password", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Mario Trueba and Marco Amoedo", + "stackOwner": "LibreBor" + } +} diff --git a/independent-publisher-connectors/LibreBor/readme.md b/independent-publisher-connectors/LibreBor/readme.md new file mode 100644 index 0000000000..f68ee215bc --- /dev/null +++ b/independent-publisher-connectors/LibreBor/readme.md @@ -0,0 +1,27 @@ + +## Libre Bor Connector +LibreBor gives you access to more than 5 million company and individual records from the Spanish Register. Using this connector, you can retrieve companies information using their names or NIF (Tax Identification Number), you can validate individual's relations to a company and also validate wether a company is still active or not. The connector also has utilities such as a NIF validator. + +## Publisher : Mario Trueba Cantero & Marco Amoedo + +## Prerequisites +You will need the following to proceed: +* An account with LibreBor (https://librebor.me/) and an active subscription + +## Getting your credentials +Once you have an active account with LibreBor you will be given a username and password to access their services. + + +## Supported Operations +The connector supports the following operations: +* `Search Company`: Company results including name, slug and province. Use the slug to retrieve all the information for a company. +* `Get company information by slug`: Retrieve company information for specified Slug. +* `Get company information by NIF`: Retrieve company information for specified NIF. +* `Search for a person`: Retrieve list of people that match the keywords in their name. The number of results is limited to 200. Use the 'page' parameter to retrieve more results. +* `Get person information by slug`: Retrieve person information for specified Slug. +* `Validate NIF`: Check whether a NIF is valid or not and return information that can be infered from a NIF number, such as the legal form, company type and register province. +* `Get company incorporation information by Slug`: Retrieve company incorporation information for specified Slug. + + +## Known Issues and Limitations +None at this time. \ No newline at end of file From 00795f477808a05d3278cae219aa00d6059d2f3a Mon Sep 17 00:00:00 2001 From: Chandra Sekhar Malla <43902003+sekharmalla@users.noreply.github.com> Date: Fri, 22 Oct 2021 03:31:39 +0400 Subject: [PATCH 080/219] Notion - Independent Publisher (#1152) * Notion - Independent Publisher Notion is an application that provides components such as notes, databases, kanban boards, wikis, calendars and reminders. These components and systems can be used individually, or in collaboration with others. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Updated Privacy Policy - Attached Privacy Policy & website URL to the apiDefinition.swagger.json Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update Readme.md Removed html code from Readme.md file. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiDefinition.swagger.json Removed Empty definitions. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiDefinition.swagger.json have updated object property visibility to none. and added proper description. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiDefinition.swagger.json Have added Categories. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Delete settings.json have deleted settings.json file Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiProperties.json have updated the iconBrandColor. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiDefinition.swagger.json Changes: - - Have removed empty paths. - Have added titles to empty operations. - Corrected category names to only two. Co-Authored-By: Harshini <65181903+harshinivarma@users.noreply.github.com> * Update apiDefinition.swagger.json i have updated description for has more * Update apiDefinition.swagger.json - have Updated all titles. and made sure no empty operations. Co-Authored-By: Harshini * Update api.Definition.swagger.json - Updated changes as requested. Co-Authored-By: Harshini * Update apiDefinition.swagger.json Changes: -Removed all the "_" from OperationId -Added all expected response codes. * Update api.Definition.swagger.json -Updated all the OperationID values. * Update api.Definition.swagger.json -OperationID have been updated. * Update apiDefinition.swagger.json -Operation ID has been fixed. made sure Validation error satisfied. * Update api.Definition.swagger.json -Validation Successfull. Co-authored-by: Harshini <65181903+harshinivarma@users.noreply.github.com> Co-authored-by: Harshini --- .../Notion/Readme.md | 90 +++ .../Notion/apiDefinition.swagger.json | 671 ++++++++++++++++++ .../Notion/apiProperties.json | 23 + 3 files changed, 784 insertions(+) create mode 100644 independent-publisher-connectors/Notion/Readme.md create mode 100644 independent-publisher-connectors/Notion/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Notion/apiProperties.json diff --git a/independent-publisher-connectors/Notion/Readme.md b/independent-publisher-connectors/Notion/Readme.md new file mode 100644 index 0000000000..b58efca4a5 --- /dev/null +++ b/independent-publisher-connectors/Notion/Readme.md @@ -0,0 +1,90 @@ +# Notion +Notion is an application that provides components such as notes, databases, kanban boards, wikis, calendars and reminders.These components and systems can be used individually, or in collaboration with others. + +## Publisher +### Chandra Sekhar & Harshini Varma + +## Prerequisites +You need to have a Notion [Personal/Enterprise account](https://www.notion.so/signup) click here for [Pricing](https://www.notion.so/pricing). + +## Supported Operations +### [Notion Operations](https://developers.notion.com/) +#### List all users +Returns a paginated list of Users for the workspace. + +#### Retrieve a block +Retrieves a Block object using the ID specified. + +#### Retrieve a database +Retrieves a Database object using the ID specified. + +#### Retrieve block children +Returns a paginated array of child block objects contained in the block using the ID specified. + +#### Retrieve a user +Retrieves a User using the ID specified. + +#### Search +Searches all pages and child pages that are shared with the integration. (The results may include databases) + +#### Update a block +Updates the content for the specified block_id based on the block type. + + + +## Upcoming Planned Features +#### Query a Database (Planned) +Gets a list of Pages contained in the database, filtered and ordered according to the filter conditions and sort criteria provided in the request. + +#### Create a Database (Planned) +Creates a database as a subpage in the specified parent page, with the specified properties schema. + +#### Update Database (Planned) +Updates an existing database as specified by the parameters. + +#### Retrieve a page (Planned) +Retrieves a Page object using the ID specified. + +#### Create a page (Planned) +Creates a new page in the specified database or as a child of an existing page. + +#### Update page (Planned) +Updates page property values for the specified page. + +#### Append block children (Planned) +Creates and appends new children blocks to the parent block_id specified. + +#### Delete a block (Planned) +Sets a Block object, including page blocks, to archived: true using the ID specified. + + +## API Documentation +Visit [Start building with the Notion API ](https://developers.notion.com/) page for further details. + +Visit [change log](https://developers.notion.com/changelog) for API Updates + +## Known Issues and Limitations +To ensure a consistent developer experience for all API users, the Notion API is rate limited and basic size limits apply to request parameters. + +### Rate Limit +* Rate-limited requests will return a "rate_limited" error code (HTTP response status 429). +* The rate limit for incoming requests is an average of 3 requests per second. Some bursts beyond the average rate are allowed. +* Integrations should accommodate variable rate limits by handling HTTP 429 responses and backing off (or slowing down) the speed of future requests. +* A common way to implement this is using one or several queues for pending requests, which can be consumed by sending requests as long as Notion does not respond with an HTTP 429. + +### Size limits +Notion limits the size of certain parameters, and the depth of children in requests. +* A requests that exceeds any of these limits will return "validation_error" error. +* In addition to the property limits given, payloads have a maximum size of 1000 block elements and 500kb. + +### Request size limits + +These limits apply to requests sent to Notion's API only. There are different limits on the number of relations and people mentions returned by the API. + +#### Not all operations provided by Notion are part of the first IP connector submission. We will keep adding/updating/supporting this connector based on your feedback/requests :) + + + +## License + +Distributed under the MIT License. See `LICENSE` for more information. \ No newline at end of file diff --git a/independent-publisher-connectors/Notion/apiDefinition.swagger.json b/independent-publisher-connectors/Notion/apiDefinition.swagger.json new file mode 100644 index 0000000000..73e9c0b7ae --- /dev/null +++ b/independent-publisher-connectors/Notion/apiDefinition.swagger.json @@ -0,0 +1,671 @@ +{ + "swagger": "2.0", + "info": { + "title": "Notion", + "description": "Notion connector use the API to access Notion's pages, databases, and users.", + "version": "1.0", + "contact": { + "name":"Chandra Sekhar & Harshini Varma", + "url":"https://github.com/sekharmalla", + "email":"Sekharmalla.vfx@gmail.com" + } + }, + "host": "api.notion.com", + "basePath": "/v1/", + "schemes": [ + "https" + ], + "paths": { + "/users/{user_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Name of the object always user.", + "title": "object" + }, + "id": { + "type": "string", + "description": "Identifier for a Notion user", + "title": "Id" + }, + "name": { + "type": "string", + "description": "Name of the User", + "title": "User Name" + }, + "avatar_url": { + "type": "string", + "description": "Chosen avatar image", + "title": "Avatar URL" + }, + "type": { + "type": "string", + "description": "Type of the User or Bot", + "title": "Type of User", + "x-ms-visibility": "internal" + }, + "email": { + "type": "string", + "description": "Email address of person.", + "title": "Email" + } + } + } + } + }, + "summary": "Retrieve User", + "description": "Retrieves a User using the ID specified.", + "operationId": "RetrieveUser", + "parameters": [ + { + "name": "user_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "User ID", + "x-ms-url-encoding":"single", + "description": "Unique identifier for this user." + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "x-ms-visibility": "internal", + "default": "2021-08-16" + } + ] + } + }, + "/users": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Identifier for a Notion block", + "title": "Id" + }, + "name": { + "type": "string", + "description": "User's name displayed in Notion.", + "title": "Display Name" + }, + "avatar_url": { + "type": "string", + "description": "Chosen avatar image.", + "title": "Avatar URL" + }, + "type": { + "type": "string", + "description": "Type of the user. Possible values are \"person\" and \"bot\".", + "title": "Type" + }, + "email": { + "type": "string", + "description": "Email address of person.", + "title": "Email" + }, + "Bot": { + "type": "object", + "properties": {}, + "title": "Bot", + "description": "Properties only present for bot users." + }, + "next_cursor": { + "type": "string", + "description": "A cursor returned used to request the next page of results. Treat this as an opaque value", + "title": "Next Cursor" + }, + "has_more": { + "type": "boolean", + "description": "When the response includes the end of the list", + "title": "Has more" + } + } + } + } + }, + "summary": "List of all users", + "description": "Returns a paginated list of Users for the workspace", + "operationId": "Listofallusers", + "parameters": [ + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "type": "integer", + "default": 100, + "x-ms-summary": "Page size", + "description": "The number of items from the full list desired in the response. Maximum: 100" + } + ] + } + }, + "/blocks/{block_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Name of the object always block.", + "title": "Object", + "x-ms-visibility": "internal" + }, + "id": { + "type": "string", + "description": "Identifier for the block.", + "title": "Id" + }, + "created_time": { + "type": "string", + "description": "Date and time when this block was created.", + "title": "Created time", + "format": "date-time" + }, + "last_edited_time": { + "type": "string", + "description": "Date and time when this block was last updated.", + "title": "Last edited time", + "format": "date-time" + }, + "has_children": { + "type": "boolean", + "description": "Whether or not the block has children blocks nested within it.", + "title": "Has children", + "enum": [ + true, + false + ] + }, + "archived": { + "type": "boolean", + "description": "The archived status of the block.", + "title": "Archived", + "enum": [ + true, + false + ] + }, + "type": { + "type": "string", + "description": "The type of the block", + "title": "Type" + }, + "title": { + "type": "string", + "description": "Rich text in the paragraph block.", + "title": "Title" + } + } + } + } + }, + "summary": "Retrieve a block", + "description": "Retrieves a Block object using the ID specified.", + "operationId": "RetrieveBlock", + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "type": "string", + "description": "Identifier for the block.", + "x-ms-summary": "Block id", + "x-ms-url-encoding":"single" + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + } + ] + }, + "patch": { + "consumes": ["application/json"], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Name of the object.", + "title": "Object" + }, + "id": { + "type": "string", + "description": "Identifier for a Notion block", + "title": "Id" + }, + "created_time": { + "type": "string", + "description": "Date and time when this page was created.", + "title": "Created time" + }, + "last_edited_time": { + "type": "string", + "description": "Date and time when this block was last updated.", + "title": "Last edited time", + "format": "date-time" + }, + "has_children": { + "type": "boolean", + "description": "Whether or not the block has children blocks nested within it.", + "title": "Has children" + }, + "type": { + "type": "string", + "description": "Type of block. Possible values", + "title": "Type" + }, + "archived": { + "type": "boolean", + "description": "The archived status of the block.", + "title": "archived" + }, + "content": { + "type": "string", + "description": "Updates the content for the specified block_id based on the block type.", + "title": "Content" + }, + "plain_text": { + "type": "string", + "description": "Plain text in the paragraph block plain_text", + "title": "Plain text" + } + } + } + } + }, + "summary": "Update a block (to-do)", + "description": "Updates the content for the specified block_id based on the block type to-do.", + "operationId": "UpdateaBlock", + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "type": "string", + "description": "Identifier for a Notion block", + "x-ms-summary": "Block id", + "x-ms-url-encoding":"single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + }, + + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "to_do": { + "type": "object", + "properties": { + "text": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "content" + } + }, + "description": "text" + } + } + }, + "description": "text" + } + }, + "description": "to_do" + } + } + } + } + ] + } + }, + "/blocks/{block_id}/children": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "items": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Name of the object.", + "title": "Object", + "x-ms-visibility": "internal" + }, + "id": { + "type": "string", + "description": "Identifier for the block.", + "title": "id" + }, + "created_time": { + "type": "string", + "description": "Date and time when this block was created.", + "title": "Created time", + "format": "date-time" + }, + "last_edited_time": { + "type": "string", + "description": "Date and time when this block was last updated.", + "title": "Last edited time", + "format": "date-time" + }, + "has_children": { + "type": "boolean", + "description": "Whether or not the block has children blocks nested within it.", + "title": "Has children", + "enum": [ + true, + false + ] + }, + "archived": { + "type": "boolean", + "description": "The archived status of the block.", + "title": "Archived", + "enum": [ + true, + false + ] + }, + "type": { + "type": "string", + "description": "Type of block. Possible values", + "title": "Type" + } + } + }, + "plain_text": { + "type": "string", + "description": "Plain text in the paragraph block plain_text", + "title": "Plain text" + }, + "next_cursor": { + "type": "string", + "description": "A cursor returned used to request the next page of results. Treat this as an opaque value", + "title": "Next cursor" + }, + "has_more": { + "type": "boolean", + "description": "Whether or not the block has more blocks or not", + "title": "Has more", + "enum": [ + true, + false + ] + } + } + } + } + }, + "summary": "Retrieve block children", + "description": "Returns a paginated array of child block objects contained in the block using the ID specified", + "operationId": "RetrieveBlockChildren", + "parameters": [ + { + "name": "block_id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Block id", + "x-ms-url-encoding":"single", + "description": "Identifier for a block" + }, + { + "name": "page_size", + "in": "query", + "required": false, + "type": "integer", + "default": 100, + "x-ms-summary": "Page size", + "description": "The number of items from the full list desired in the response. Maximum: 100" + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + } + ] + } + }, + "/databases/{database_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object" + } + } + }, + "summary": "Retrieve a database", + "operationId": "RetrieveADatabase", + "description": "Retrieves a Database object using the ID specified.", + "parameters": [ + { + "name": "database_id", + "in": "path", + "required": true, + "type": "string", + "description": "Identifier for a Notion database", + "x-ms-summary": "Database id", + "x-ms-url-encoding":"single" + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + } + ] + } + }, + "/search": { + "post": { + "consumes": ["application/json"], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "object": { + "type": "string", + "description": "Name of the object.", + "title": "Object" + }, + "id": { + "type": "string", + "description": "Identifier for the block.", + "title": "id" + }, + "created_time": { + "type": "string", + "description": "Date and time when this page was created.", + "title": "Created time" + }, + "last_edited_time": { + "type": "string", + "description": "Date and time when this page was updated.", + "title": "Last edited time" + }, + "plain_text": { + "type": "string", + "description": "The plain text without annotations.", + "title": "Plain text" + }, + "Tags": { + "type": "object", + "description": "The tags object contains the list of tags.", + "title": "Tags" + }, + "url": { + "type": "string", + "description": "The URL of the object.", + "title": "URL" + }, + "next_cursor": { + "type": "string", + "description": "A cursor returned used to request the next page of results. Treat this as an opaque value", + "title": "Next cursor" + }, + "has_more": { + "type": "boolean", + "description": "Whether or not the block has more blocks or not.", + "title": "Has more" + } + } + } + } + }, + "summary": "Search", + "description": "Searches all pages and child pages that are shared with the integration. The results may include databases.", + "operationId": "Search", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Notion-Version", + "in": "header", + "required": true, + "type": "string", + "default": "2021-08-16", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "string", + "description": "When supplied, limits which pages are returned by comparing the query to the page title.", + "title": "Query" + }, + "sort": { + "type": "object", + "properties": { + "direction": { + "type": "string", + "description": "The direction to sort. Possible values include ascending and descending.", + "title": "Direction" + }, + "timestamp": { + "type": "string", + "description": "The name of the timestamp to sort against. Possible values include last_edited_time.", + "title": "Timestamp" + } + }, + "description": "sort" + } + }, + "required": [ + "query" + ] + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.notion.so/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.notion.so/Privacy-Policy-3468d120cf614d4c9014c09f6adc9091" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity;collaboration" + } + ] + +} \ No newline at end of file diff --git a/independent-publisher-connectors/Notion/apiProperties.json b/independent-publisher-connectors/Notion/apiProperties.json new file mode 100644 index 0000000000..9fefb797d6 --- /dev/null +++ b/independent-publisher-connectors/Notion/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Chandra Sekhar & Harshini Varma", + "stackOwner":"Notion" + } +} \ No newline at end of file From 8701f29a43aeef1307570224d7fe04c696261712 Mon Sep 17 00:00:00 2001 From: Ahmad Najjar Date: Fri, 22 Oct 2021 01:32:25 +0200 Subject: [PATCH 081/219] OpenCage Geocoding (Independent Publisher) (#1150) * Adding OpenCage Geocoding * Fixing/adding requested changes --- .../apiDefinition.swagger.json | 1212 +++++++++++++++++ .../OpenCage Geocoding/apiProperties.json | 23 + .../OpenCage Geocoding/readme.md | 24 + .../OpenCage Geocoding/script.csx | 36 + 4 files changed, 1295 insertions(+) create mode 100644 independent-publisher-connectors/OpenCage Geocoding/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/OpenCage Geocoding/apiProperties.json create mode 100644 independent-publisher-connectors/OpenCage Geocoding/readme.md create mode 100644 independent-publisher-connectors/OpenCage Geocoding/script.csx diff --git a/independent-publisher-connectors/OpenCage Geocoding/apiDefinition.swagger.json b/independent-publisher-connectors/OpenCage Geocoding/apiDefinition.swagger.json new file mode 100644 index 0000000000..ff82ecb124 --- /dev/null +++ b/independent-publisher-connectors/OpenCage Geocoding/apiDefinition.swagger.json @@ -0,0 +1,1212 @@ +{ + "swagger": "2.0", + "info": { + "title": "OpenCage Geocoding", + "description": "The OpenCage Geocoding provides reverse (latitude/longitude to text) and forward (text to latitude/longitude) geocoding", + "version": "1.0", + "contact": { + "name": "Ahmad Najjar", + "email": "ahmadn82@hotmail.com" + } + }, + "host": "api.opencagedata.com", + "basePath": "/geocode", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/v1/json/reverse": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "documentation": { + "type": "string", + "description": "documentation" + }, + "licenses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "url": { + "type": "string", + "description": "url" + } + } + }, + "description": "licenses" + }, + "rate": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "description": "limit" + }, + "remaining": { + "type": "integer", + "format": "int32", + "description": "remaining" + }, + "reset": { + "type": "integer", + "format": "int32", + "description": "reset" + } + }, + "description": "rate" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "properties": { + "DMS": { + "type": "object", + "properties": { + "lat": { + "type": "string", + "description": "latitude", + "title": "Latitude" + }, + "lng": { + "type": "string", + "description": "longitude", + "title": "Longitude" + } + }, + "description": "DMS" + }, + "MGRS": { + "type": "string", + "description": "MGRS" + }, + "Maidenhead": { + "type": "string", + "description": "Maidenhead" + }, + "Mercator": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "x" + }, + "y": { + "type": "number", + "format": "float", + "description": "y" + } + }, + "description": "Mercator" + }, + "OSM": { + "type": "object", + "properties": { + "edit_url": { + "type": "string", + "description": "Edit url", + "title": "Edit url" + }, + "note_url": { + "type": "string", + "description": "Note url", + "title": "Note url" + }, + "url": { + "type": "string", + "description": "url" + } + }, + "description": "OSM" + }, + "UN_M49": { + "type": "object", + "properties": { + "regions": { + "type": "object", + "description": "regions" + }, + "statistical_groupings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "statistical groupings" + } + }, + "description": "UN_M49" + }, + "callingcode": { + "type": "integer", + "format": "int32", + "description": "calling code", + "title": "Calling code" + }, + "currency": { + "type": "object", + "properties": { + "alternate_symbols": { + "type": "array", + "items": {}, + "description": "alternate symbols" + }, + "decimal_mark": { + "type": "string", + "description": "Decimal mark", + "title": "Decimal mark" + }, + "html_entity": { + "type": "string", + "description": "HTML entity", + "title": "HTML entity" + }, + "iso_code": { + "type": "string", + "description": "ISO code", + "title": "ISO code" + }, + "iso_numeric": { + "type": "string", + "description": "ISO numeric", + "title": "ISO numeric" + }, + "name": { + "type": "string", + "description": "name" + }, + "smallest_denomination": { + "type": "integer", + "format": "int32", + "description": "smallest denomination", + "title": "Smallest denomination" + }, + "subunit": { + "type": "string", + "description": "subunit" + }, + "subunit_to_unit": { + "type": "integer", + "format": "int32", + "description": "subunit to unit", + "title": "subunit to unit" + }, + "symbol": { + "type": "string", + "description": "symbol" + }, + "symbol_first": { + "type": "integer", + "format": "int32", + "description": "Symbol first", + "title": "Symbol first" + }, + "thousands_separator": { + "type": "string", + "description": "Thousands separator", + "title": "Thousands separator" + } + }, + "description": "currency" + }, + "flag": { + "type": "string", + "description": "flag" + }, + "geohash": { + "type": "string", + "description": "geohash", + "title": "Geohash" + }, + "qibla": { + "type": "number", + "format": "float", + "description": "qibla" + }, + "roadinfo": { + "type": "object", + "properties": { + "drive_on": { + "type": "string", + "description": "Drive on", + "title": "Drive on" + }, + "road": { + "type": "string", + "description": "road" + }, + "speed_in": { + "type": "string", + "description": "Speed in", + "title": "Speed in" + } + }, + "description": "roadinfo" + }, + "sun": { + "type": "object", + "properties": { + "rise": { + "type": "object", + "properties": { + "apparent": { + "type": "integer", + "format": "int32", + "description": "apparent" + }, + "astronomical": { + "type": "integer", + "format": "int32", + "description": "astronomical" + }, + "civil": { + "type": "integer", + "format": "int32", + "description": "civil" + }, + "nautical": { + "type": "integer", + "format": "int32", + "description": "nautical" + } + }, + "description": "rise" + }, + "set": { + "type": "object", + "properties": { + "apparent": { + "type": "integer", + "format": "int32", + "description": "apparent" + }, + "astronomical": { + "type": "integer", + "format": "int32", + "description": "astronomical" + }, + "civil": { + "type": "integer", + "format": "int32", + "description": "civil" + }, + "nautical": { + "type": "integer", + "format": "int32", + "description": "nautical" + } + }, + "description": "set" + } + }, + "description": "sun" + }, + "timezone": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "now_in_dst": { + "type": "integer", + "format": "int32", + "description": "Now in DST", + "title": "Now in DST" + }, + "offset_sec": { + "type": "integer", + "format": "int32", + "description": "Offset second", + "title": "Offset second" + }, + "offset_string": { + "type": "string", + "description": "Offset string", + "title": "Offset string" + }, + "short_name": { + "type": "string", + "description": "Short name", + "title": "Short name" + } + }, + "description": "timezone" + }, + "what3words": { + "type": "object", + "properties": { + "words": { + "type": "string", + "description": "words" + } + }, + "description": "what3words" + } + }, + "description": "annotations" + }, + "bounds": { + "type": "object", + "properties": { + "northeast": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "longitude", + "title": "Longitude" + } + }, + "description": "northeast" + }, + "southwest": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "longitude", + "title": "Longitude" + } + }, + "description": "southwest" + } + }, + "description": "bounds" + }, + "components": { + "type": "object", + "properties": { + "ISO_3166-1_alpha-2": { + "type": "string", + "description": "ISO 3166-1 alpha-2", + "title": "ISO 3166-1 alpha-2" + }, + "ISO_3166-1_alpha-3": { + "type": "string", + "description": "ISO 3166-1 alpha-3", + "title": "ISO 3166-1 alpha-3" + }, + "_category": { + "type": "string", + "description": "category", + "title": "Category" + }, + "_type": { + "type": "string", + "description": "type", + "title": "Type" + }, + "city": { + "type": "string", + "description": "city" + }, + "city_district": { + "type": "string", + "description": "City district", + "title": "City district" + }, + "continent": { + "type": "string", + "description": "continent" + }, + "country": { + "type": "string", + "description": "country" + }, + "country_code": { + "type": "string", + "description": "Country code", + "title": "Country code" + }, + "house_number": { + "type": "string", + "description": "House number", + "title": "House number" + }, + "neighbourhood": { + "type": "string", + "description": "neighbourhood" + }, + "political_union": { + "type": "string", + "description": "Political union", + "title": "Political union" + }, + "postcode": { + "type": "string", + "description": "Postcode" + }, + "road": { + "type": "string", + "description": "road" + }, + "state": { + "type": "string", + "description": "state" + }, + "state_code": { + "type": "string", + "description": "State code", + "title": "State code" + }, + "suburb": { + "type": "string", + "description": "suburb" + } + }, + "description": "components" + }, + "confidence": { + "type": "integer", + "format": "int32", + "description": "confidence" + }, + "formatted": { + "type": "string", + "description": "formatted" + }, + "geometry": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "longitude", + "title": "Longitude" + } + }, + "description": "geometry" + } + } + }, + "description": "results" + }, + "status": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + }, + "description": "status" + }, + "stay_informed": { + "type": "object", + "properties": { + "blog": { + "type": "string", + "description": "blog" + }, + "twitter": { + "type": "string", + "description": "twitter" + } + }, + "description": "stay_informed" + }, + "thanks": { + "type": "string", + "description": "thanks" + }, + "timestamp": { + "type": "object", + "properties": { + "created_http": { + "type": "string", + "description": "created http", + "title": "created http" + }, + "created_unix": { + "type": "integer", + "format": "int32", + "description": "Created unix", + "title": "Created unix" + } + }, + "description": "timestamp" + }, + "total_results": { + "type": "integer", + "format": "int32", + "description": "Total results", + "title": "Total results" + } + } + } + } + }, + "summary": "Reverse geocoding", + "description": "Get location address by latitude and longitude", + "operationId": "ReverseGeocoding", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "lat", + "in": "header", + "required": true, + "type": "string", + "x-ms-summary": "Latitude", + "x-ms-visibility": "important", + "description": "Latitude" + }, + { + "name": "long", + "in": "header", + "required": true, + "type": "string", + "description": "Longitude", + "x-ms-summary": "Longitude", + "x-ms-visibility": "important" + } + ] + } + }, + "/v1/json/forward": { + "get": { + "responses": { + "200": { + "description": "200 OK", + "schema": { + "type": "object", + "properties": { + "documentation": { + "type": "string", + "description": "documentation" + }, + "licenses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "url": { + "type": "string", + "description": "url" + } + } + }, + "description": "licenses" + }, + "rate": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "description": "limit" + }, + "remaining": { + "type": "integer", + "format": "int32", + "description": "remaining" + }, + "reset": { + "type": "integer", + "format": "int32", + "description": "reset" + } + }, + "description": "rate" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "annotations": { + "type": "object", + "properties": { + "DMS": { + "type": "object", + "properties": { + "lat": { + "type": "string", + "description": "Latitude", + "title": "Latitude" + }, + "lng": { + "type": "string", + "description": "Longitude", + "title": "Longitude" + } + }, + "description": "DMS" + }, + "MGRS": { + "type": "string", + "description": "MGRS" + }, + "Maidenhead": { + "type": "string", + "description": "Maidenhead" + }, + "Mercator": { + "type": "object", + "properties": { + "x": { + "type": "number", + "format": "float", + "description": "x" + }, + "y": { + "type": "number", + "format": "float", + "description": "y" + } + }, + "description": "Mercator" + }, + "OSM": { + "type": "object", + "properties": { + "edit_url": { + "type": "string", + "description": "Edit url", + "title": "Edit url" + }, + "note_url": { + "type": "string", + "description": "Note url", + "title": "Note url" + }, + "url": { + "type": "string", + "description": "url" + } + }, + "description": "OSM" + }, + "UN_M49": { + "type": "object", + "properties": { + "regions": { + "type": "object", + "description": "regions" + }, + "statistical_groupings": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Statistical groupings" + } + }, + "description": "UN_M49" + }, + "callingcode": { + "type": "integer", + "format": "int32", + "description": "calling code", + "title": "Calling code" + }, + "currency": { + "type": "object", + "properties": { + "alternate_symbols": { + "type": "array", + "items": {}, + "description": "Alternate symbols" + }, + "decimal_mark": { + "type": "string", + "description": "Decimal mark", + "title": "Decimal mark" + }, + "html_entity": { + "type": "string", + "description": "HTML entity", + "title": "HTML entity" + }, + "iso_code": { + "type": "string", + "description": "ISO code", + "title": "ISO code" + }, + "iso_numeric": { + "type": "string", + "description": "ISO numeric", + "title": "ISO numeric" + }, + "name": { + "type": "string", + "description": "name" + }, + "smallest_denomination": { + "type": "integer", + "format": "int32", + "description": "Smallest denomination", + "title": "Smallest denomination" + }, + "subunit": { + "type": "string", + "description": "subunit" + }, + "subunit_to_unit": { + "type": "integer", + "format": "int32", + "description": "Subunit to unit", + "title": "Subunit to unit" + }, + "symbol": { + "type": "string", + "description": "symbol" + }, + "symbol_first": { + "type": "integer", + "format": "int32", + "description": "Symbol first", + "title": "Symbol first" + }, + "thousands_separator": { + "type": "string", + "description": "Thousands separator", + "title": "Thousands separator" + } + }, + "description": "currency" + }, + "flag": { + "type": "string", + "description": "flag" + }, + "geohash": { + "type": "string", + "description": "geohash" + }, + "qibla": { + "type": "number", + "format": "float", + "description": "qibla" + }, + "roadinfo": { + "type": "object", + "properties": { + "drive_on": { + "type": "string", + "description": "Drive on", + "title": "Drive on" + }, + "road": { + "type": "string", + "description": "road" + }, + "speed_in": { + "type": "string", + "description": "Speed in", + "title": "Speed in" + } + }, + "description": "Road info" + }, + "sun": { + "type": "object", + "properties": { + "rise": { + "type": "object", + "properties": { + "apparent": { + "type": "integer", + "format": "int32", + "description": "apparent" + }, + "astronomical": { + "type": "integer", + "format": "int32", + "description": "astronomical" + }, + "civil": { + "type": "integer", + "format": "int32", + "description": "civil" + }, + "nautical": { + "type": "integer", + "format": "int32", + "description": "nautical" + } + }, + "description": "rise" + }, + "set": { + "type": "object", + "properties": { + "apparent": { + "type": "integer", + "format": "int32", + "description": "apparent" + }, + "astronomical": { + "type": "integer", + "format": "int32", + "description": "astronomical" + }, + "civil": { + "type": "integer", + "format": "int32", + "description": "civil" + }, + "nautical": { + "type": "integer", + "format": "int32", + "description": "nautical" + } + }, + "description": "set" + } + }, + "description": "sun" + }, + "timezone": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name" + }, + "now_in_dst": { + "type": "integer", + "format": "int32", + "description": "Now in DST", + "title": "Now in DST" + }, + "offset_sec": { + "type": "integer", + "format": "int32", + "description": "Offset second", + "title": "Offset second" + }, + "offset_string": { + "type": "string", + "description": "Offset string", + "title": "Offset string" + }, + "short_name": { + "type": "string", + "description": "Short name", + "title": "Short name" + } + }, + "description": "timezone" + }, + "what3words": { + "type": "object", + "properties": { + "words": { + "type": "string", + "description": "words" + } + }, + "description": "what3words" + }, + "wikidata": { + "type": "string", + "description": "wikidata" + } + }, + "description": "annotations" + }, + "bounds": { + "type": "object", + "properties": { + "northeast": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "Latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "Longitude", + "title": "Longitude" + } + }, + "description": "northeast" + }, + "southwest": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "Latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "Longitude", + "title": "Longitude" + } + }, + "description": "southwest" + } + }, + "description": "bounds" + }, + "components": { + "type": "object", + "properties": { + "ISO_3166-1_alpha-2": { + "type": "string", + "description": "ISO 3166-1 alpha-2", + "title": "ISO 3166-1 alpha-2" + }, + "ISO_3166-1_alpha-3": { + "type": "string", + "description": "ISO 3166-1 alpha-3", + "title": "ISO 3166-1 alpha-3" + }, + "_category": { + "type": "string", + "description": "category", + "title": "Category" + }, + "_type": { + "type": "string", + "description": "type", + "title": "Type" + }, + "continent": { + "type": "string", + "description": "continent" + }, + "country": { + "type": "string", + "description": "country" + }, + "country_code": { + "type": "string", + "description": "country code", + "title": "Country code" + }, + "house_number": { + "type": "string", + "description": "house number", + "title": "House number" + }, + "museum": { + "type": "string", + "description": "museum" + }, + "political_union": { + "type": "string", + "description": "political union", + "title": "Political union" + }, + "postcode": { + "type": "string", + "description": "postcode" + }, + "road": { + "type": "string", + "description": "road" + }, + "state": { + "type": "string", + "description": "state" + }, + "state_code": { + "type": "string", + "description": "state code", + "title": "State code" + }, + "suburb": { + "type": "string", + "description": "suburb" + }, + "town": { + "type": "string", + "description": "town" + } + }, + "description": "components" + }, + "confidence": { + "type": "integer", + "format": "int32", + "description": "confidence" + }, + "formatted": { + "type": "string", + "description": "formatted" + }, + "geometry": { + "type": "object", + "properties": { + "lat": { + "type": "number", + "format": "float", + "description": "Latitude", + "title": "Latitude" + }, + "lng": { + "type": "number", + "format": "float", + "description": "Longitude", + "title": "Longitude" + } + }, + "description": "geometry" + } + } + }, + "description": "results" + }, + "status": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + }, + "description": "status" + }, + "stay_informed": { + "type": "object", + "properties": { + "blog": { + "type": "string", + "description": "blog" + }, + "twitter": { + "type": "string", + "description": "twitter" + } + }, + "description": "stay informed" + }, + "thanks": { + "type": "string", + "description": "thanks" + }, + "timestamp": { + "type": "object", + "properties": { + "created_http": { + "type": "string", + "description": "created http", + "title": "Created http" + }, + "created_unix": { + "type": "integer", + "format": "int32", + "description": "created unix", + "title": "Created unix" + } + }, + "description": "timestamp" + }, + "total_results": { + "type": "integer", + "format": "int32", + "description": "total results", + "title": "Total results" + } + } + } + } + }, + "summary": "Forward Geocoding", + "operationId": "ForwardGeocoding", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "placename", + "in": "header", + "required": true, + "type": "string", + "x-ms-summary": "Place name", + "x-ms-visibility": "important", + "description": "City or address" + } + ], + "description": "Get location address details by place name, city or address" + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://opencagedata.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://opencagedata.com/gdpr" + }, + { + "propertyName": "Categories", + "propertyValue": "Website;Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/OpenCage Geocoding/apiProperties.json b/independent-publisher-connectors/OpenCage Geocoding/apiProperties.json new file mode 100644 index 0000000000..0ba414c326 --- /dev/null +++ b/independent-publisher-connectors/OpenCage Geocoding/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Ahmad Najjar", + "stackOwner": "OpenCage GmbH" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/OpenCage Geocoding/readme.md b/independent-publisher-connectors/OpenCage Geocoding/readme.md new file mode 100644 index 0000000000..6e1bcb8129 --- /dev/null +++ b/independent-publisher-connectors/OpenCage Geocoding/readme.md @@ -0,0 +1,24 @@ +# OpenCage Geocoding +The OpenCage Geocoding API provides reverse (latitude/longitude to text) and forward (text to latitude/longitude) geocoding via a RESTful API. + +## Publisher +### Ahmad Najjar + +## Prerequisites +Sign up with an account on [OpenCage Geocoding](https://opencagedata.com/) to get your free trial API Key (limited to 2500 requests per day). Please see all [the rate limiting details](https://opencagedata.com/api#rate-limiting). +You can use the free trial as long as you like, but please bear in mind that it is designed to be used as a way to test if our service meets your needs. +Please do NOT run production services on a free trial. If you want to depend on our service please upgrade to a paid package. +You can find more details about pricing [here](https://opencagedata.com/faq#pricing). + +## Supported Operations +### Reverse Geocoding +Get location address by latitude and longitude + +### Forward Geocoding +Get location address details by place name, city or address + +## API Documentation +Visit [OpenCage Geocoding API Documentation](https://opencagedata.com/api) page for further details. + +## Known Issues and Limitations +Visit [OpenCage Geocoding Troubleshooting / Common Issues](https://opencagedata.com/api#troubleshooting) \ No newline at end of file diff --git a/independent-publisher-connectors/OpenCage Geocoding/script.csx b/independent-publisher-connectors/OpenCage Geocoding/script.csx new file mode 100644 index 0000000000..6350fcfdf1 --- /dev/null +++ b/independent-publisher-connectors/OpenCage Geocoding/script.csx @@ -0,0 +1,36 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + if (this.Context.OperationId == "ReverseGeocoding") + { + return await this.HandleReverseGeocodingOperation().ConfigureAwait(false); + } + if (this.Context.OperationId == "ForwardGeocoding") + { + return await this.HandleForwardGeocodingOperation().ConfigureAwait(false); + } + + // Handle an invalid operation ID + HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unknown operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleReverseGeocodingOperation() + { + var latitude = this.Context.Request.Headers.GetValues("lat").First(); + var longitude = this.Context.Request.Headers.GetValues("long").First(); + this.Context.Request.RequestUri = new Uri(this.Context.Request.RequestUri.AbsoluteUri + "&q=" + latitude + "+" + longitude); + HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + return response; + } + + private async Task HandleForwardGeocodingOperation() + { + var placeName = this.Context.Request.Headers.GetValues("placename").First(); + this.Context.Request.RequestUri = new Uri(this.Context.Request.RequestUri.AbsoluteUri + "&q=" + placeName); + HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + return response; + } +} From 0257efb2b580cd04c0c35d9d7566d4c620a914ac Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 21 Oct 2021 19:33:17 -0400 Subject: [PATCH 082/219] U.K. Government Bank Holidays (Independent Publisher) v1.1 (#1148) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Added response schema * Update README.md * Update README.md * Update README.md * Bump version * referRing * Fix Swagger * Rename UK-Bank-Holidays.swagger.json to apiDefinition.swagger.json --- .../U.K. Government Bank Holidays/README.md | 15 +- .../UK-Bank-Holidays.swagger.json | 55 ------ .../apiDefinition.swagger.json | 182 ++++++++++++++++++ 3 files changed, 189 insertions(+), 63 deletions(-) delete mode 100644 independent-publisher-connectors/U.K. Government Bank Holidays/UK-Bank-Holidays.swagger.json create mode 100644 independent-publisher-connectors/U.K. Government Bank Holidays/apiDefinition.swagger.json diff --git a/independent-publisher-connectors/U.K. Government Bank Holidays/README.md b/independent-publisher-connectors/U.K. Government Bank Holidays/README.md index cf4eec4101..548debb56f 100644 --- a/independent-publisher-connectors/U.K. Government Bank Holidays/README.md +++ b/independent-publisher-connectors/U.K. Government Bank Holidays/README.md @@ -1,22 +1,22 @@ # U.K. Government Bank Holidays -This connector presents the UK Goverment's Bank Holidays list in JSON format +This connector presents the UK Goverment's Bank Holidays list in JSON format. ## Publisher: Martyn Lesbirel ## Prerequisites: -There are no prerequisities for this connector +There are no prerequisities for this connector. ## Supported Operations -There are no individual operations using the connector itself provides the list of Bank Holidays. +There are no individual operations. Using the connector itself provides the list of Bank Holidays. ## Obtaining Credentials -Credentials are not requied for this conenctor.​ +Credentials are not required for this connector. ## Getting Started -Just adding the connector to your flow provides access to the holidays. +Just adding the connector to your Power Automate to access the holidays. **Note** -No compose is used on the output of the connector. For example to get the count of each kingdom's holidays a string varaiable can be initalised. The count is obtained by reffering to the connector output body. +No compose is used on the output of the connector. For example to get the count of each kingdom's holidays a string variable can be initialised. The count is obtained by referring to the connector output body. For example to count the Scotish Bank Holiday the instruction is @@ -56,6 +56,5 @@ A division (kingdom) name and an event array. Each event is a Bank Holiday recor Each attribute should be self explanatory. - ## Known Issues and Limitations -Beaware the list extends only a few years into the past and future if you are looking for Bank Holidays of say a decade ago this connector will not help. \ No newline at end of file +Be aware that the list extends only a few years into the past and future. If you are looking for Bank Holidays of say a decade ago this connector will not help. diff --git a/independent-publisher-connectors/U.K. Government Bank Holidays/UK-Bank-Holidays.swagger.json b/independent-publisher-connectors/U.K. Government Bank Holidays/UK-Bank-Holidays.swagger.json deleted file mode 100644 index 6e80407785..0000000000 --- a/independent-publisher-connectors/U.K. Government Bank Holidays/UK-Bank-Holidays.swagger.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "UK Bank Holidays", - "description": "A JSON object containing the bank holidays of the four kingdoms of the United Kingdom supplied by H.M. Government", - "version": "1.0", - "contact": { - "name": "Martyn Lesbirel", - "email": "ipc-author-bh@outlook.com" - } - }, - "host": "www.gov.uk", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [], - "paths": { - "/bank-holidays.json": { - "get": { - "responses": { - "default": { - "description": "default", - "schema": {} - } - }, - "summary": "All holidays for all kingdoms", - "description": "All bank holidays for all kingdoms as defined the Government", - "operationId": "AllKingdomHolidays", - "x-ms-visibility": "important", - "parameters": [] - } - } - }, - "x-ms-connector-metadata": [ - { - "propertyName": "WebSite", - "propertyValue": "https://www.gov.uk/bank-holidays" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" - }, - { - "propertyName": "Categories", - "propertyValue": "Data;Productivity" - } - ], - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": {}, - "security": [], - "tags": [] -} \ No newline at end of file diff --git a/independent-publisher-connectors/U.K. Government Bank Holidays/apiDefinition.swagger.json b/independent-publisher-connectors/U.K. Government Bank Holidays/apiDefinition.swagger.json new file mode 100644 index 0000000000..cc361dae2e --- /dev/null +++ b/independent-publisher-connectors/U.K. Government Bank Holidays/apiDefinition.swagger.json @@ -0,0 +1,182 @@ +{ + "swagger": "2.0", + "info": { + "title": "UK Bank Holidays", + "description": "A JSON object containing the bank holidays of the four kingdoms of the United Kingdom supplied by H.M. Government", + "version": "1.1", + "contact": { + "name": "Martyn Lesbirel", + "email": "ipc-author-bh@outlook.com" + } + }, + "host": "www.gov.uk", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/bank-holidays.json": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "england-and-wales": { + "type": "object", + "properties": { + "division": { + "type": "string", + "description": "Holidays for England and Wales.", + "title": "Division" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The English and Welsh holiday name.", + "title": "Name" + }, + "date": { + "type": "string", + "description": "The English and Welsh holiday date.", + "title": "Date" + }, + "notes": { + "type": "string", + "description": "The English and Welsh date notes.", + "title": "Notes" + }, + "bunting": { + "type": "boolean", + "description": "Whether bunting is used in England and Wales.", + "title": "Bunting" + } + } + }, + "description": "A holiday in England and Wales." + } + }, + "description": "All holidays in England and Wales.", + "title": "English and Welsh Holidays" + }, + "scotland": { + "type": "object", + "properties": { + "division": { + "type": "string", + "description": "Holidays for Scotland.", + "title": "Division" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The Scottish holiday name.", + "title": "Name" + }, + "date": { + "type": "string", + "description": "The Scottish holiday date.", + "title": "Date" + }, + "notes": { + "type": "string", + "description": "The Scottish date notes.", + "title": "Notes" + }, + "bunting": { + "type": "boolean", + "description": "Whether bunting is used in Scotland.", + "title": "Bunting" + } + } + }, + "description": "A holiday in Scotland." + } + }, + "description": "All holidays in Scotland.", + "title": "Scotland Holidays" + }, + "northern-ireland": { + "type": "object", + "properties": { + "division": { + "type": "string", + "description": "Holidays for Northern Ireland.", + "title": "Division" + }, + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The Northern Irish holiday name.", + "title": "Name" + }, + "date": { + "type": "string", + "description": "The Northern Irish holiday date.", + "title": "Date" + }, + "notes": { + "type": "string", + "description": "The Northern Irish date notes.", + "title": "Notes" + }, + "bunting": { + "type": "boolean", + "description": "Whether bunting is used in Northern Ireland.", + "title": "Bunting" + } + } + }, + "description": "A holiday in Northern Ireland." + } + }, + "description": "All holidays in Northern Ireland.", + "title": "Northern Ireland Holidays" + } + } + } + } + }, + "summary": "All holidays for all kingdoms", + "description": "All bank holidays for all kingdoms as defined by the Government.", + "operationId": "AllKingdomHolidays", + "x-ms-visibility": "important", + "parameters": [] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "WebSite", + "propertyValue": "https://www.gov.uk/bank-holidays" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Productivity" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} From 5be91c37c13da29219ef5dc00af89cd1a54f23de Mon Sep 17 00:00:00 2001 From: haimantika mitra <32809211+Haimantika@users.noreply.github.com> Date: Fri, 22 Oct 2021 05:03:57 +0530 Subject: [PATCH 083/219] Weather Forecast (Independent Publisher) (#1149) * Weather Forecast (Independent Publisher) Changes * Weather Forecast (Independent Publisher) Changes --- .../WeatherForecast/README.md | 40 +++ .../apiDefinition.swagger.json | 248 ++++++++++++++++++ .../WeatherForecast/apiProperties.json | 36 +++ 3 files changed, 324 insertions(+) create mode 100644 independent-publisher-connectors/WeatherForecast/README.md create mode 100644 independent-publisher-connectors/WeatherForecast/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/WeatherForecast/apiProperties.json diff --git a/independent-publisher-connectors/WeatherForecast/README.md b/independent-publisher-connectors/WeatherForecast/README.md new file mode 100644 index 0000000000..3a0c5345d8 --- /dev/null +++ b/independent-publisher-connectors/WeatherForecast/README.md @@ -0,0 +1,40 @@ +# Weather Forecast Connector +This connector will help you have weather forecast of cities you look for. It can give accurate results of upto 3 days in advance. + +## Publisher: Haimantika Mitra + +## Prerequisites +You will need the following: +- A Microsoft Power Apps or Power Automate plan with custom connector feature +- An account on https://openweathermap.org/ +- [API Key] (https://openweathermap.org/) + +## Obtaining Credentials +- Sign in to https://openweathermap.org/. +- Locate 'My API keys' under your profile. +- Generate keys. Use the generated key for aunthentication + +## Supported Operations +This connector will help you have weather forecast of the requested city. It returns the following data: +- coordinates +- temperature (max,min) +- pressure +- humidity +- sea level +- ground level +- visibility +- clouds +- wind (speed,deg, gust) +- sunrise, sunset + +## Known Issues and Limitations +Limitation: +- You can query only one city at a time. + +## Deployment Instructions +1. Clone the PowerPlatformConnectors GitHub repository +2. Open a terminal, then change to the WeatherForecast directory, found in samples of the cloned repository +3. Run `paconn login`, then follow the authentication steps +4. Once authenticated, run paconn create --api-def apiDefinition.swagger.json --api-prop apiProperties.json +5. Select the target environment for your connector +6. Create a new flow in Power Automate, or a new Power App, using the connector. When prompted, create a new connection with your API Key and city whose weather forecast you want to know. 'q' will be the city, along with the country code, and your 'appid' will be the authentication key. \ No newline at end of file diff --git a/independent-publisher-connectors/WeatherForecast/apiDefinition.swagger.json b/independent-publisher-connectors/WeatherForecast/apiDefinition.swagger.json new file mode 100644 index 0000000000..0193370d7b --- /dev/null +++ b/independent-publisher-connectors/WeatherForecast/apiDefinition.swagger.json @@ -0,0 +1,248 @@ +{ + "swagger": "2.0", + "info": { + "title": "Weather Forecast", + "description": "The weather forecast connector helps one to get weather forecast depending on the city of their choice", + "version": "1.0", + "contact": { + "name": "Haimantika Mitra", + "url": "https://openweathermap.org/", + "email": "haimantikamitra@gmail.com" + } + }, + "host": "api.openweathermap.org", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/data/2.5/weather": { + "get": { + "responses": { + "default": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "coord": { + "type": "object", + "properties": { + "lon": { + "type": "number", + "format": "float", + "description": "longitude" + }, + "lat": { + "type": "number", + "format": "float", + "description": "latitude" + } + }, + "description": "coordinates" + }, + "weather": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "id" + }, + "main": { + "type": "string", + "description": "main" + }, + "description": { + "type": "string", + "description": "description" + }, + "icon": { + "type": "string", + "description": "icon" + } + } + }, + "description": "weather" + }, + "base": { + "type": "string", + "description": "base" + }, + "main": { + "type": "object", + "properties": { + "temp": { + "type": "number", + "format": "float", + "description": "temperature" + }, + "feels_like": { + "type": "number", + "format": "float", + "description": "weather feels" + }, + "temp_min": { + "type": "number", + "format": "float", + "description": "minimum temperature" + }, + "temp_max": { + "type": "number", + "format": "float", + "description": "maximum temperature" + }, + "pressure": { + "type": "integer", + "format": "int32", + "description": "pressure" + }, + "humidity": { + "type": "integer", + "format": "int32", + "description": "humidity" + }, + "sea_level": { + "type": "integer", + "format": "int32", + "description": "sea level" + }, + "grnd_level": { + "type": "integer", + "format": "int32", + "description": "ground level" + } + }, + "description": "main" + }, + "visibility": { + "type": "integer", + "format": "int32", + "description": "visibility" + }, + "wind": { + "type": "object", + "properties": { + "speed": { + "type": "number", + "format": "float", + "description": "speed" + }, + "deg": { + "type": "integer", + "format": "int32", + "description": "degree" + } + }, + "description": "wind" + }, + "clouds": { + "type": "object", + "properties": { + "all": { + "type": "integer", + "format": "int32", + "description": "all" + } + }, + "description": "clouds" + }, + "dt": { + "type": "integer", + "format": "int32", + "description": "district" + }, + "sys": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "country" + }, + "sunrise": { + "type": "integer", + "format": "int32", + "description": "sunrise" + }, + "sunset": { + "type": "integer", + "format": "int32", + "description": "sunset" + } + }, + "description": "sys" + }, + "timezone": { + "type": "integer", + "format": "int32", + "description": "timezone" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + }, + "cod": { + "type": "integer", + "format": "int32", + "description": "cod" + } + } + } + } + }, + "summary": "Get Weather info", + "description": "This returns weather info depnding on city of choice", + "operationId": "city", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "q", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "appid", + "in": "query", + "required": false, + "type": "string" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "api_key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://openweathermap.org/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://home.openweathermap.org/questions" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/WeatherForecast/apiProperties.json b/independent-publisher-connectors/WeatherForecast/apiProperties.json new file mode 100644 index 0000000000..7fd6d96d3d --- /dev/null +++ b/independent-publisher-connectors/WeatherForecast/apiProperties.json @@ -0,0 +1,36 @@ +{ + "properties": { + "capabilities": [], + "connectionParameters": { + "password": { + "type": "securestring", + "uiDefinition": { + "constraints": { + "clearText": false, + "required": "true", + "tabIndex": 3 + }, + "description": "The city you want to know the weather forecast of", + "displayName": "q", + "tooltip": "Provide the city along with country code" + } + }, + "appid": { + "type": "securestring", + "uiDefinition": { + "constraints": { + "clearText": true, + "required": "true", + "tabIndex": 2 + }, + "description": "The API key of this API", + "displayName": "appid", + "tooltip": "Provide the API Key" + } + } + }, + "iconBrandColor": "#da3b01", + "publisher": "Haimantika Mitra", + "stackOwner": "OpenWeatherMap Ltd." + } +} \ No newline at end of file From c612009f9c98db319b46cbfff9e003b244e65f6e Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Fri, 22 Oct 2021 22:04:24 +0300 Subject: [PATCH 084/219] WithoutWire Inventory Platform: publisher changed to original value (#1210) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * Initial version of Spring Global connector * Code improvements * Initial version of Spring Global connector (with improvements according to code review) * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * Merge from Microsoft branch * Revert chanages to merge * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * WithoutWire Inventory Platform: version 1.2. "Get Inventory Aggregate" is added, general impovements (parameters, responses) for other methods * Changed publisher (return to original value) Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../WithoutWire Inventory Platform/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/WithoutWire Inventory Platform/apiProperties.json b/certified-connectors/WithoutWire Inventory Platform/apiProperties.json index b1a148e7b9..2c3a998d17 100644 --- a/certified-connectors/WithoutWire Inventory Platform/apiProperties.json +++ b/certified-connectors/WithoutWire Inventory Platform/apiProperties.json @@ -39,7 +39,7 @@ } } ], - "publisher": "WithoutWire Inventory Sciences", + "publisher": "Enavate", "stackOwner": "WithoutWire Inventory Sciences" } } \ No newline at end of file From f62946a29a47570e9c1e7457ff5a093a7fef5dfc Mon Sep 17 00:00:00 2001 From: Nm-jens <68378054+Nm-jens@users.noreply.github.com> Date: Fri, 22 Oct 2021 21:04:46 +0200 Subject: [PATCH 085/219] Minor fixes for connection labels (#1209) * Staffbase Connector * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Staffbase Connector * - Move common code to definitions - Fixed descriptions - Several minor fixes * Fixed spelling Error * Fixed description for /posts query parameter * Moved connector from custom-connectors into certified connectors * Fixed missing description * Fixed icon brand color * Fixed: - OperationID for delete Users - Definition for Post news into channel * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Added missing README.md Fixed: - Unicode characters - German wording translated * Fixed apiProperties.json Unicode problems * Fixed Background Color * Delete Readme.md * Delete apiDefinition.swagger.json * Delete apiProperties.json * Fixed connection renamed hosting URL to host * Fix for Hosting ID field description Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal --- certified-connectors/Staffbase/apiProperties.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/certified-connectors/Staffbase/apiProperties.json b/certified-connectors/Staffbase/apiProperties.json index 0511670bc3..9644207dbc 100644 --- a/certified-connectors/Staffbase/apiProperties.json +++ b/certified-connectors/Staffbase/apiProperties.json @@ -14,14 +14,14 @@ } } }, - "hostID": { + "hostingID": { "type": "string", "uiDefinition": { "constraints": { "required": "true" }, - "description": "Specify your hosting ID: hostID", - "displayName": "Host ID", + "description": "Specify your hosting ID: hostingID", + "displayName": "Hosting ID", "tooltip": "Provide hosting ID here" } } @@ -33,7 +33,7 @@ "templateId": "dynamichosturl", "title": "Route to keyvault", "parameters": { - "x-ms-apimTemplateParameter.urlTemplate": "https://powerautomateproxy-@connectionParameters('hostID').staffbase.com" + "x-ms-apimTemplateParameter.urlTemplate": "https://powerautomateproxy-@connectionParameters('hostingID').staffbase.com" } } ], From 8e4faed6b8f08690ce48912ede4e7ba4c67eb635 Mon Sep 17 00:00:00 2001 From: Andrii Yudaichev <56398074+AndriiYudaichev@users.noreply.github.com> Date: Mon, 25 Oct 2021 21:55:05 +0300 Subject: [PATCH 086/219] Add Cancel Invite Action. Add SignNow Document Groups Support (#1211) --- .../SignNow/apiDefinition.swagger.json | 332 +++++++++++++++++- 1 file changed, 330 insertions(+), 2 deletions(-) diff --git a/certified-connectors/SignNow/apiDefinition.swagger.json b/certified-connectors/SignNow/apiDefinition.swagger.json index 7b35773116..316fa97066 100644 --- a/certified-connectors/SignNow/apiDefinition.swagger.json +++ b/certified-connectors/SignNow/apiDefinition.swagger.json @@ -35,6 +35,235 @@ "consumes": [], "produces": [], "paths": { + "/documentgroups": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/DocumentGroupsResponse" + } + } + }, + "summary": "Get Document Groups", + "operationId": "GetListDocGroups", + "x-ms-visibility": "advanced", + "parameters": [ + { + "name": "template", + "x-ms-summary": "Template", + "description": "Specify if document groups or group templates should be retrieved", + "in": "query", + "type": "boolean", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "limit", + "x-ms-summary": "Limit", + "description": "Total number of items returned (between 1 and 50)", + "in": "query", + "required": false, + "type": "integer", + "minimum": 1, + "maximum": 50, + "x-ms-visibility": "important" + }, + { + "name": "offset", + "x-ms-summary": "Offset", + "description": "The (zero-based) offset of the first item in the collection to return", + "in": "query", + "required": false, + "type": "integer", + "minimum": 0, + "x-ms-visibility": "important" + } + ], + "description": "Retrieve a list of user's document groups" + } + }, + "/documentgroups/{doc_group_id}": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/definitions/DocumentGroupId" + } + } + } + } + }, + "parameters": [ + { + "name": "doc_group_id", + "x-ms-summary": "Group Template", + "x-ms-url-encoding": "single", + "description": "Select the group template from the list", + "x-ms-visibility": "important", + "in": "path", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetListDocGroups", + "value-path": "group_id", + "value-title": "group_name", + "value-collection" : "document_groups", + "parameters": { + "template": true + } + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "group_name": { + "type": "string", + "x-ms-summary": "Document Group Name", + "description": "Enter new name for the document group", + "x-ms-visibility": "advanced" + } + } + } + } + ], + "summary": "Create Document Group from the Group Template", + "description": "Create the document group from a selected group template", + "x-ms-visibility": "important", + "consumes": ["application/json"], + "operationId": "CreateFromTemplateGroup" + } + }, + "/v2/schema/documentgroup/fields": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "properties": { + "type": "object" + } + } + } + } + }, + "parameters": [ + { + "name": "doc_group_id", + "x-ms-summary": "Document Group ID", + "description": "Specify a unique document group ID", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "select", + "x-ms-summary": "Field type filter", + "description": "Separate with a comma what field types you'd like to retrieve", + "in": "query", + "required": false, + "type": "string" + } + ], + "operationId": "GetDocGroupSchema", + "summary": "Get Document Group schema", + "x-ms-visibility": "internal", + "description": "Retrieve the OpenAPI document group schema", + "x-ms-api-annotation": { + "family": "DocGroupSchemaFields", + "status": "Preview", + "revision": 1 + } + } + }, + "/documentgroup/{doc_group_id}/fields": { + "put": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "id": { + "$ref": "#/definitions/DocumentGroupId" + } + } + } + } + }, + "parameters": [ + { + "name": "template_group_id", + "x-ms-summary": "Template", + "description": "Specify a document group template to get fields from", + "in": "query", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetListDocGroups", + "value-path": "group_id", + "value-title": "group_name", + "value-collection" : "document_groups", + "parameters": { + "template": true + } + } + }, + { + "name": "doc_group_id", + "x-ms-summary": "Document Group ID", + "x-ms-url-encoding": "single", + "description": "Specify a unique document group ID", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "fields", + "in": "body", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetDocGroupSchema", + "parameters": { + "doc_group_id": { + "parameter": "template_group_id" + }, + "select": "text,enumeration" + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetDocGroupSchema", + "parameters": { + "doc_group_id": { + "parameterReference": "template_group_id" + }, + "select": { + "value": "text,enumeration" + } + } + } + } + } + ], + "summary": "Prefill Document Group Field Values", + "description": "Automatically populate fillable fields in the documents with specific values", + "operationId": "UpdateGroupFieldValues", + "x-ms-visibility": "important", + "consumes": ["application/json"] + } + }, "/document": { "get": { "responses": { @@ -590,7 +819,34 @@ "consumes": ["application/json"], "x-ms-visibility": "advanced" } - }, + }, + "/document/{doc_id}/invite-cancel": { + "put": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + }, + "parameters": [ + { + "name": "doc_id", + "x-ms-summary": "Document Id", + "description": "Specify document id for signature invite cancellation", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important" + } + ], + "summary": "Cancel invite", + "description": "Signature invite cancellation", + "operationId": "CancelInvite", + "x-ms-visibility": "important" + } + }, "/document/{doc_id}/download": { "get": { "responses": { @@ -1612,6 +1868,12 @@ "description": "true if document is template.", "x-ms-summary": "Is template" }, + "status": { + "type": "string", + "x-ms-visibility": "important", + "description": "Document Status", + "x-ms-summary": "Document Status" + }, "roles": { "type": "array", "items": { @@ -1640,11 +1902,77 @@ } } }, + "DocumentGroupsResponse": { + "type": "object", + "properties": { + "document_groups": { + "type": "array", + "items": { + "$ref": "#/definitions/DocumentGroupProperties" + } + }, + "document_group_total_count": { + "type": "integer", + "x-ms-visibility": "important", + "x-ms-summary": "Document Groups Total Count", + "description": "The total number of Document Groups in the SignNow account" + } + } + }, + "DocumentGroupProperties": { + "type": "object", + "properties": { + "group_id": { + "$ref": "#/definitions/DocumentGroupId" + }, + "group_name": { + "type": "string", + "x-ms-visibility": "important", + "description": "Document Group Name", + "x-ms-summary": "Document Group Name" + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/DocumentGroupDocumentProperties" + }, + "x-ms-visibility": "important", + "x-ms-summary": "Documents", + "description": "Documents" + } + } + }, + "DocumentGroupDocumentProperties": { + "type": "object", + "properties": { + "id": { + "$ref": "#/definitions/DocumentId" + }, + "document_name": { + "type": "string", + "x-ms-visibility": "important", + "description": "Document file name without extension", + "x-ms-summary": "Document Name" + }, + "origin_document_id": { + "type": "string", + "x-ms-visibility": "advanced", + "description": "Template document ID (if any)", + "x-ms-summary": "Template ID" + } + } + }, "DocumentId": { "type": "string", "description": "Unique document ID", "x-ms-summary": "Document ID", "x-ms-visibility": "important" + }, + "DocumentGroupId": { + "type": "string", + "description": "Unique Document Group ID", + "x-ms-summary": "Document Group ID", + "x-ms-visibility": "important" } }, "securityDefinitions": { @@ -1656,4 +1984,4 @@ "scopes": {} } } -} \ No newline at end of file +} From 8afcbe6c8c6cb84af1fb6d57c5044ad4a3b55e2c Mon Sep 17 00:00:00 2001 From: plmvas <52970040+plmvas@users.noreply.github.com> Date: Mon, 25 Oct 2021 14:55:35 -0400 Subject: [PATCH 087/219] Fixed 'From' field not being marked as required (#1212) Co-authored-by: Christopher Ly --- certified-connectors/DataMotion/apiDefinition.swagger.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/certified-connectors/DataMotion/apiDefinition.swagger.json b/certified-connectors/DataMotion/apiDefinition.swagger.json index 537fc17860..32068df3b9 100644 --- a/certified-connectors/DataMotion/apiDefinition.swagger.json +++ b/certified-connectors/DataMotion/apiDefinition.swagger.json @@ -307,7 +307,10 @@ "description": "The text body of the email message.", "type": "string" } - } + }, + "required": [ + "From" + ] }, "SendSecureMessageResponse": { "description": "Send secure message response model.", From dfed8904cd566afc7e41bbe76eae31dad5b9dd4b Mon Sep 17 00:00:00 2001 From: Manoranjan Mohapatra <68860527+mmohapatra-muhimbi@users.noreply.github.com> Date: Wed, 27 Oct 2021 03:45:00 +0530 Subject: [PATCH 088/219] Update apiDefinition.swagger.json (#1217) Added two new enums, new version number, few text canges --- .../apiDefinition.swagger.json | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/certified-connectors/Muhimbi PDF Converter Online/apiDefinition.swagger.json b/certified-connectors/Muhimbi PDF Converter Online/apiDefinition.swagger.json index fb8d8a3ead..1f6844eb1c 100644 --- a/certified-connectors/Muhimbi PDF Converter Online/apiDefinition.swagger.json +++ b/certified-connectors/Muhimbi PDF Converter Online/apiDefinition.swagger.json @@ -1,10 +1,10 @@ { "swagger": "2.0", "info": { - "version": "9.14", + "version": "9.15", "title": "Muhimbi PDF", "description": "Convert, Merge, Watermark, Secure and OCR files.", - "contact": { + "contact": { "name": "Muhimbi Support", "url": "https://support.muhimbi.com", "email": "support@muhimbi.com" @@ -1075,7 +1075,9 @@ "BMP", "PS", "PCL", - "EPS" + "EPS", + "FDF", + "XFDF" ] }, "copy_metadata": { @@ -1348,14 +1350,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -1564,14 +1566,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -2094,14 +2096,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -2882,14 +2884,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -3180,14 +3182,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -3384,14 +3386,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -3599,14 +3601,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -4165,14 +4167,14 @@ "uniqueItems": false }, "x": { - "description": "X Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "X Coordinate (When 'Position' is set to 'Absolute')", + "description": "X Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "X Coordinate", "type": "string", "uniqueItems": false }, "y": { - "description": "Y Coordinate of the watermark (in Pts, 1/72 of an inch)", - "x-ms-summary": "Y Coordinate (When 'Position' is set to 'Absolute')", + "description": "Y Coordinate when 'Position' is set to 'Absolute' (in Pts, 1/72 of an inch)", + "x-ms-summary": "Y Coordinate", "type": "string", "uniqueItems": false }, @@ -4349,4 +4351,4 @@ "propertyValue": "Collaboration;Content and Files" } ] -} \ No newline at end of file +} From d0163c546f94124084d51e0529b1bd5710b351f7 Mon Sep 17 00:00:00 2001 From: rescojj <92038751+janjanusik@users.noreply.github.com> Date: Wed, 27 Oct 2021 00:15:51 +0200 Subject: [PATCH 089/219] Add questionnaire odata (#1216) * ADD: gateway * #16859 Add dynamic schema definition to resolve available questionnaires * #16859 Add dynamic schema definition to resolve available questionnaires * #16859 Change Title --- .../RescoCloud/apiDefinition.swagger.json | 232 ++++++++++++++++++ .../RescoCloud/apiProperties.json | 63 +++++ 2 files changed, 295 insertions(+) diff --git a/certified-connectors/RescoCloud/apiDefinition.swagger.json b/certified-connectors/RescoCloud/apiDefinition.swagger.json index d10923aa82..93aa6ba47f 100644 --- a/certified-connectors/RescoCloud/apiDefinition.swagger.json +++ b/certified-connectors/RescoCloud/apiDefinition.swagger.json @@ -396,6 +396,202 @@ } } } + }, + "/q/": { + "get": { + "summary": "List Questionnaires", + "description": "Get list of questionnaires", + "operationId": "Schema-Questionnaires", + "x-ms-visibility": "internal", + "parameters": [ + { + "in": "query", + "name": "$kind", + "type": "string", + "default": "QuestionnaireSet", + "x-ms-visibility": "internal", + "required": true + }, + { + "$ref": "#/parameters/Definition.Questionnaire" + }, + { + "$ref": "#/parameters/Definition.Attribute" + } + ], + "responses": { + "200": { + "description": "Retrieved entity list", + "schema": { + "type": "object", + "properties": { + "@odata.context": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Questionaire name", + "type": "string" + }, + "title": { + "description": "Questionaire label", + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/q/$schema/{questionnaire}": { + "get": { + "summary": "Questionnaire Schema", + "description": "Get questionnaire schema", + "operationId": "Schema-Questionnaire", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/Parameter.Questionnaire" + }, + { + "$ref": "#/parameters/List.Select" + }, + { + "$ref": "#/parameters/Header.Prefer" + }, + { + "$ref": "#/parameters/Header.Accept" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + } + } + }, + "/q/{questionnaire}": { + "get": { + "summary": "List of Questionnaire Records", + "description": "Get list of questionnaire records", + "operationId": "Record-List-Questionnaire", + "parameters": [ + { + "$ref": "#/parameters/List.Select" + }, + { + "$ref": "#/parameters/List.Filter" + }, + { + "$ref": "#/parameters/List.Top" + }, + { + "$ref": "#/parameters/List.Skip" + }, + { + "$ref": "#/parameters/List.SkipToken" + }, + { + "$ref": "#/parameters/Parameter.Questionnaire" + }, + { + "$ref": "#/parameters/Header.Prefer" + }, + { + "$ref": "#/parameters/Header.Accept" + } + ], + "responses": { + "200": { + "description": "Retrieved records", + "schema": { + "x-ms-summary": "body", + "description": "List of questionnaires", + "type": "object", + "properties": { + "@odata.context": { + "description": "Describes the collection of questionnaires", + "type": "string", + "x-ms-summary": "Context Link", + "x-ms-visibility": "advanced" + }, + "@odata.nextLink": { + "description": "Link to get next page of results", + "type": "string", + "x-ms-summary": "Next link", + "x-ms-visibility": "advanced" + }, + "@odata.count": { + "description": "The number of records returned", + "type": "integer", + "format": "int32", + "x-ms-summary": "Records count", + "x-ms-visibility": "advanced" + }, + "value": { + "type": "array", + "x-ms-summary": "value", + "description": "List of items", + "items": { + "$ref": "#/definitions/Resco.Questionnaire.List" + } + } + } + } + }, + "500": { + "$ref": "#/responses/error" + } + } + } + }, + "/q/{questionnaire}({id})": { + "get": { + "summary": "Get of Questionnaire Record", + "description": "Get of questionaire record by ID", + "operationId": "Record-Get-Questionnaire", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Record.Id" + }, + { + "$ref": "#/parameters/List.Select" + }, + { + "$ref": "#/parameters/Parameter.Questionnaire" + }, + { + "$ref": "#/parameters/Header.Prefer" + }, + { + "$ref": "#/parameters/Header.Accept" + } + ], + "responses": { + "200": { + "description": "Retrieved record", + "schema": { + "$ref": "#/definitions/Resco.Questionnaire.List" + } + }, + "500": { + "$ref": "#/responses/error" + } + } + } } }, "definitions": { @@ -483,6 +679,20 @@ } } } + }, + "Resco.Questionnaire.List": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "Schema-Questionnaire", + "parameters": { + "questionnaire": { + "parameter": "questionnaire" + }, + "$select": { + "parameter": "$select" + } + } + } } }, "parameters": { @@ -501,6 +711,20 @@ "value-title": "title" } }, + "Parameter.Questionnaire": { + "in": "path", + "name": "questionnaire", + "description": "Name of the questionaire", + "x-ms-summary": "Questionaire name", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "Schema-Questionnaires", + "value-path": "name", + "value-collection": "value" + } + }, "Definition.Entity": { "in": "query", "name": "$entitySet", @@ -509,6 +733,14 @@ "required": false, "type": "string" }, + "Definition.Questionnaire": { + "in": "query", + "name": "$questionnaireSet", + "description": "Name of the questionaire", + "x-ms-summary": "Questionnaire name", + "required": false, + "type": "string" + }, "Definition.Attribute": { "in": "query", "name": "$property", diff --git a/certified-connectors/RescoCloud/apiProperties.json b/certified-connectors/RescoCloud/apiProperties.json index c9805273c9..5e9b79d8ef 100644 --- a/certified-connectors/RescoCloud/apiProperties.json +++ b/certified-connectors/RescoCloud/apiProperties.json @@ -241,8 +241,71 @@ "templateId": "dynamichosturl", "title": "Host URL", "parameters": { + "x-ms-apimTemplate-operationName": [ + "Schema-Entities", + "Schema-Entity", + "Record-List", + "Record-Create", + "Record-Get", + "Record-Delete", + "Record-Update", + "User-Get" + ], "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('server')/odata/v4/@connectionParameters('organization')/" } + }, + { + "templateId": "dynamichosturl", + "title": "Host URL Questionnaire", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "Schema-Questionnaires", + "Schema-Questionnaire", + "Record-List-Questionnaire", + "Record-Get-Questionnaire" + ], + "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('server')/odata/questionnaires/v4/@connectionParameters('organization')/" + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Questionnaires", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "Schema-Questionnaires" + ], + "x-ms-apimTemplateParameter.newPath": "/" + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route Questionnaire", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "Schema-Questionnaire" + ], + "x-ms-apimTemplateParameter.newPath": "/$schema/{questionnaire}" + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route list questionnaire", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "Record-List-Questionnaire" + ], + "x-ms-apimTemplateParameter.newPath": "/{questionnaire}" + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Route get questionnaire", + "parameters": { + "x-ms-apimTemplate-operationName": [ + "Record-Get-Questionnaire" + ], + "x-ms-apimTemplateParameter.newPath": "/{questionnaire}({id})" + } } ], "publisher": "Resco", From e67f20a7076dc8c84a254987d77dc4558a88e654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Arantes?= <91188523+AntonioArantesDevscope@users.noreply.github.com> Date: Wed, 27 Oct 2021 18:52:21 +0100 Subject: [PATCH 090/219] Robots for Power BI (#1219) --- .../Robots for Power BI/README.md | 13 + .../apiDefinition.swagger.json | 326 ++++++++++++++++++ .../Robots for Power BI/apiProperties.json | 23 ++ 3 files changed, 362 insertions(+) create mode 100644 certified-connectors/Robots for Power BI/README.md create mode 100644 certified-connectors/Robots for Power BI/apiDefinition.swagger.json create mode 100644 certified-connectors/Robots for Power BI/apiProperties.json diff --git a/certified-connectors/Robots for Power BI/README.md b/certified-connectors/Robots for Power BI/README.md new file mode 100644 index 0000000000..12dbea9a31 --- /dev/null +++ b/certified-connectors/Robots for Power BI/README.md @@ -0,0 +1,13 @@ +## Robots for Power BI +Robots for Power BI is a connector to execute the internal API across the multiple Power Platform products + +## Prerequisites +You will need the following to proceed: +* A PowerBI Robots license +* An AccountId provided by PowerBI Robots + +## Supported Operations +The connector supports the following operations: +* `Playlist enable` Action to enable a PBI Robots playlist +* `Playlist disable` Action to disable a PBI Robots playlist +* `Playlist execute` Action to execute a PBI Robots playlist \ No newline at end of file diff --git a/certified-connectors/Robots for Power BI/apiDefinition.swagger.json b/certified-connectors/Robots for Power BI/apiDefinition.swagger.json new file mode 100644 index 0000000000..b0befa86e5 --- /dev/null +++ b/certified-connectors/Robots for Power BI/apiDefinition.swagger.json @@ -0,0 +1,326 @@ +{ + "swagger": "2.0", + "info": { + "title": "Robots for Power BI", + "description": "PowerBI Robots connector to execute the internal API across the multiple Power Platform products", + "version": "1.0", + "contact": { + "name": "DevScope Support", + "url": "https://devscope.net/contacts/", + "email": "support@devscope.net" + } + }, + "host": "powerbitiles.com", + "basePath": "/PBIRobots", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/v1/playlist.enable": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist enable", + "description": "Enable a specific playlist", + "operationId": "Playlist-enable", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + }, + "/api/v1/playlist.disable": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist disable", + "description": "Disable a specific playlist", + "operationId": "Playlist-disable", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + }, + "/api/v1/playlist.execute": { + "post": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "playlist": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "title": "id" + }, + "title": { + "type": "string", + "description": "title", + "title": "title" + }, + "error": { + "type": "string", + "description": "error", + "title": "error" + }, + "cronExpression": { + "type": "string", + "description": "cronExpression", + "title": "cronExpression" + } + }, + "description": "playlist" + }, + "ok": { + "type": "boolean", + "description": "ok", + "title": "ok", + "enum": [ + true, + false + ] + } + } + }, + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Encoding": { + "description": "Content-Encoding", + "type": "string" + } + } + } + }, + "summary": "Playlist execute", + "description": "Execute a specific playlist", + "operationId": "Playlist-execute", + "parameters": [ + { + "name": "Account Id", + "in": "header", + "required": true, + "type": "string", + "description": "", + "x-ms-summary": "Your public account Id given by PowerBI Robots" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "", + "title": "Playlist Id" + } + }, + "required": [ + "id" + ] + } + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://devscope.net/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://devscope.net/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Business Management" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "AccountId" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Robots for Power BI/apiProperties.json b/certified-connectors/Robots for Power BI/apiProperties.json new file mode 100644 index 0000000000..169f4ec80b --- /dev/null +++ b/certified-connectors/Robots for Power BI/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "Account Id", + "description": "The Account Id for this api", + "tooltip": "Provide your Account Id", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#0577bd", + "capabilities": [], + "publisher": "DevScope S.A.", + "stackOwner": "DevScope S.A." + } +} \ No newline at end of file From c3827eee46acfeff1738e92e88ae120fdcf0ae08 Mon Sep 17 00:00:00 2001 From: PavloNikulinEnavate <87303584+PavloNikulinEnavate@users.noreply.github.com> Date: Wed, 27 Oct 2021 22:51:40 +0300 Subject: [PATCH 091/219] Spring Global connector: small improvements (#1222) * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Added "WithoutWire Inventory Platform" * Improvements according to pull request review * Fix publisher * New vesrion of WithoutWire Inventory Platform connector * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * New version of WithoutWire Inventory Platform connector. Fixes and improvements according to recommendations * Initial version of Spring Global connector * Code improvements * Initial version of Spring Global connector (with improvements according to code review) * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * Merge from Microsoft branch * Revert chanages to merge * Spring global connector. Changes in apiProperties.json file (dynamichosturl policy and scriptOperations was added) * WithoutWire Inventory Platform: version 1.2. "Get Inventory Aggregate" is added, general impovements (parameters, responses) for other methods * Changed publisher (return to original value) * Spring Global: small improvements Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: Pavlo Nikulin --- .../Spring Global/apiDefinition.swagger.json | 10 ++++------ certified-connectors/Spring Global/apiProperties.json | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/certified-connectors/Spring Global/apiDefinition.swagger.json b/certified-connectors/Spring Global/apiDefinition.swagger.json index 573ee40f42..388dee0ad6 100644 --- a/certified-connectors/Spring Global/apiDefinition.swagger.json +++ b/certified-connectors/Spring Global/apiDefinition.swagger.json @@ -258,18 +258,17 @@ "surveyId": { "type": "string", "description": "Select a survey", - "title": "Survey Id", + "title": "Survey", "x-ms-dynamic-values": { "operationId": "GetSurveys", "value-path": "id", "value-title": "name" - }, - "default": "Survey" + } }, "publicationId": { "type": "string", "description": "Select a survey publication", - "title": "Publication Id", + "title": "Publication", "x-ms-dynamic-values": { "operationId": "GetPublications", "value-path": "id", @@ -289,8 +288,7 @@ "parameterReference": "body/parameters/surveyId" } } - }, - "default": "Publication" + } } }, "description": "Parameters", diff --git a/certified-connectors/Spring Global/apiProperties.json b/certified-connectors/Spring Global/apiProperties.json index abe4ab13d7..7e4e581856 100644 --- a/certified-connectors/Spring Global/apiProperties.json +++ b/certified-connectors/Spring Global/apiProperties.json @@ -43,7 +43,7 @@ } } ], - "publisher": "Spring Global", + "publisher": "Enavate", "stackOwner": "Spring Global" } } \ No newline at end of file From a49b35e8b187a229ca7703ef6694572150ef4893 Mon Sep 17 00:00:00 2001 From: peolivei2 <41344967+peolivei2@users.noreply.github.com> Date: Wed, 27 Oct 2021 13:02:34 -0700 Subject: [PATCH 092/219] Azure IoT Central V3 - release 20211026 (#1218) * Azure IoT Central V3 - release 20211026 * PR comments --- .../apiDefinition.swagger.json | 8680 +++++++++-------- .../AzureIoTCentral/apiProperties.json | 18 +- 2 files changed, 4524 insertions(+), 4174 deletions(-) diff --git a/certified-connectors/AzureIoTCentral/apiDefinition.swagger.json b/certified-connectors/AzureIoTCentral/apiDefinition.swagger.json index 0d49bb6835..b48607b491 100644 --- a/certified-connectors/AzureIoTCentral/apiDefinition.swagger.json +++ b/certified-connectors/AzureIoTCentral/apiDefinition.swagger.json @@ -1,4304 +1,4640 @@ { "swagger": "2.0", "info": { - "version": "preview", - "title": "Azure IoT Central V3", - "description": "Azure IoT Central makes it easy to connect, monitor, and manage your IoT devices at scale. With the IoT Central V3 connector, you can trigger workflows when a rule has fired, and take actions by executing commands, updating properties, getting telemetry from devices, and more. Use this connector with your Azure IoT Central V3 application.", - "contact": { - "name": "Azure IoT Central Technical Support", - "url": "https://aka.ms/iotcentral-create-technical-support-ticket-trial" - }, - "x-ms-api-annotation": { - "status": "Preview" - } + "version": "preview", + "title": "Azure IoT Central V3", + "description": "Azure IoT Central makes it easy to connect, monitor, and manage your IoT devices at scale. With the IoT Central V3 connector, you can trigger workflows when a rule has fired, and take actions by executing commands, updating properties, getting telemetry from devices, and more. Use this connector with your Azure IoT Central V3 application.", + "contact": { + "name": "Azure IoT Central Technical Support", + "url": "https://aka.ms/iotcentral-create-technical-support-ticket-trial" + }, + "x-ms-api-annotation": { + "status": "Preview" + } }, "basePath": "/", "schemes": [ - "https" + "https" ], "consumes": [ - "application/json" + "application/json" ], "produces": [ - "application/json" + "application/json" ], "securityDefinitions": { - "AAD": { - "type": "oauth2", - "flow": "accessCode", - "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", - "tokenUrl": "https://login.windows.net/common/oauth2/token", - "scopes": {} - } + "AAD": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://login.windows.net/common/oauth2/token", + "scopes": {} + } }, "security": [], "host": "workflow.azureiotcentral.com", "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://azure.microsoft.com/services/iot-central/" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://privacy.microsoft.com" - }, - { - "propertyName": "Categories", - "propertyValue": "Internet of Things" - } + { + "propertyName": "Website", + "propertyValue": "https://azure.microsoft.com/services/iot-central/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://privacy.microsoft.com" + }, + { + "propertyName": "Categories", + "propertyValue": "Internet of Things" + } ], "paths": { - "/api/preview/applications": { - "get": { - "operationId": "Applications_List", - "summary": "Get the list of applications accessible to the signed-in user", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/ApplicationCollection" - } - } - } + "/api/preview/applications": { + "get": { + "operationId": "Applications_List", + "summary": "Get the list of applications accessible to the signed-in user", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ApplicationCollection" + } } - }, - "/api/preview/deviceTemplates": { - "get": { - "operationId": "DeviceTemplates_List", - "summary": "Get the list of device templates in an application", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceTemplateCollection" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - } - ] + } + } + }, + "/api/preview/deviceTemplates": { + "get": { + "operationId": "DeviceTemplates_List", + "summary": "List device templates", + "description": "Get the list of device templates in an application.", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTemplateCollection" + } } - }, - "/api/preview/devices/{device_id}/cloudProperties": { - "get": { - "operationId": "Devices_GetCloudProperties", - "summary": "Get device cloud properties (deprecated)", - "description": "Get all cloud property values of a device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceCloudProperties" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - }, - "put": { - "operationId": "Devices_UpdateCloudProperties", - "summary": "Update device cloud properties (deprecated)", - "description": "Update all cloud property values of a device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device properties.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceCloudProperties" - } - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceCloudProperties" - } - } - } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" } - }, - "/api/preview/devices/{device_id}/components/{component_name}/commands/{command_name}": { - "post": { - "operationId": "Devices_ExecuteComponentCommand", - "summary": "Execute a device command (deprecated)", - "description": "Execute a command on a device (deprecated).", - "x-ms-visibility": "advanced", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "instanceOf" - } - } - } - }, - { - "in": "path", - "name": "command_name", - "x-ms-summary": "Device Command", - "description": "Name of this device command.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "instanceOf" - }, - "component": { - "parameter": "component_name" - }, - "type": "Command" - } - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device command body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceCommand" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceCommand" - } - } - } + ] + } + }, + "/api/v1/deviceTemplates": { + "get": { + "operationId": "DeviceTemplates_List_V1", + "summary": "List device templates", + "description": "Get the list of device templates in an application.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTemplateCollectionV1" + } } - }, - "/api/v1/devices/{device_id}/commands/{command_name}": { - "post": { - "operationId": "Devices_RunCommand_V1", - "summary": "Run a device command", - "description": "Run a command on a device.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "command_name", - "x-ms-summary": "Device Command", - "description": "Name of this device command.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "type": "Command" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device command body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceCommandV1" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceCommandV1" - } - } - } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" } - }, - "/api/v1/devices/{device_id}/components/{component_name}/commands/{command_name}": { - "post": { - "operationId": "Devices_RunComponentCommand_V1", - "summary": "Run a component command", - "description": "Run a command on a component.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "command_name", - "x-ms-summary": "Device Command", - "description": "Name of this device command.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "component": { - "parameter": "component_name" - }, - "type": "Command" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device command body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceComponentCommandV1" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceComponentCommandV1" - } - } - } + ] + } + }, + "/api/v1/deviceTemplates/{template_id}": { + "get": { + "operationId": "DeviceTemplates_Get_V1", + "summary": "Get a device template by ID", + "description": "Get details about an existing device template by ID.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTemplateV1" + } } - }, - "/api/v1/devices/{device_id}/modules/{module}/commands/{command_name}": { - "post": { - "operationId": "Devices_RunModuleCommand_V1", - "summary": "Run a module command", - "description": "Run a command on a module.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "command_name", - "x-ms-summary": "Device Command", - "description": "Name of this device command.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "type": "Command" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device command body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceModuleCommandV1" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceModuleCommandV1" - } - } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "template_id", + "x-ms-summary": "Template", + "description": "Unique ID of the template.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List_V1", + "value-path": "@id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } } + ] }, - "/api/v1/devices/{device_id}/modules/{module}/components/{component_name}/commands/{command_name}": { - "post": { - "operationId": "Devices_RunModuleComponentCommand_V1", - "summary": "Run a module component command", - "description": "Run a command on a module component.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - } - } - } - }, - { - "in": "path", - "name": "command_name", - "x-ms-summary": "Device Command", - "description": "Name of this device command.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "component": { - "parameter": "component_name" - }, - "module": { - "parameter": "module" - }, - "type": "Command" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device command body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceModuleComponentCommandV1" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceModuleComponentCommandV1" - } - } - } + "delete": { + "operationId": "DeviceTemplates_Remove_V1", + "summary": "Delete a device template", + "description": "Delete an existing device template by ID.", + "responses": { + "204": { + "description": "Success" } - }, - "/api/preview/devices/{device_id}": { - "get": { - "operationId": "Devices_Get", - "summary": "Get a device by ID (deprecated)", - "description": "Get details about an existing device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/Device" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - } - ] - }, - "put": { - "operationId": "Devices_Set", - "summary": "Create or update a device (deprecated)", - "description": "Create a new device or update an existing one by device ID (deprecated).", - "x-ms-visibility": "advanced", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "name": "body", - "in": "body", - "description": "Device body.", - "required": true, - "schema": { - "$ref": "#/definitions/Device" - } - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/Device" - } - } - } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "delete": { - "operationId": "Devices_Remove", - "summary": "Delete a device (deprecated)", - "description": "Delete an existing device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "responses": { - "204": { - "description": "Success" - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - } - ] - } - }, - "/api/v1/devices/{device_id}": { - "get": { - "operationId": "Devices_Get_V1", - "summary": "Get a device by ID", - "description": "Get details about an existing device by device ID.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - } - ] - }, - "put": { - "operationId": "Devices_Set_V1", - "summary": "Create or update a device", - "description": "Create a new device or update an existing one by device ID.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "name": "body", - "in": "body", - "description": "Device body.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceV1" - } - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceV1" - } - } + { + "in": "path", + "name": "template_id", + "x-ms-summary": "Template", + "description": "Unique ID of the template.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List_V1", + "value-path": "@id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } - }, - "delete": { - "operationId": "Devices_Remove_V1", - "summary": "Delete a device", - "description": "Delete an existing device by device ID.", - "responses": { - "204": { - "description": "Success" - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - } - ] + } } - }, - "/api/preview/devices/{device_id}/properties": { - "get": { - "operationId": "Devices_GetProperties", - "summary": "Get device properties (deprecated)", - "description": "Get all property values of a device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceProperties" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - }, - "put": { - "operationId": "Devices_UpdateProperties", - "summary": "Update device properties (deprecated)", - "description": "Update all property values of a device by device ID (deprecated).", - "x-ms-visibility": "advanced", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device properties.", - "required": true, - "schema": { - "$ref": "#/definitions/DeviceProperties" - } - } - ], - "responses": { - "202": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceProperties" - } - } - } + ] + } + }, + "/api/preview/devices/{device_id}/cloudProperties": { + "get": { + "operationId": "Devices_GetCloudProperties", + "summary": "Get device cloud properties (deprecated)", + "description": "Get all cloud property values of a device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCloudProperties" + } } - }, - "/api/v1/devices/{device_id}/properties": { - "get": { - "operationId": "Devices_GetProperties_V1", - "summary": "Get device properties", - "description": "Get all property values of a device by device ID.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DevicePropertiesV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "patch": { - "operationId": "Devices_UpdateProperties_V1", - "summary": "Update device properties", - "description": "Update all property values of a device by device ID.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device properties.", - "required": true, - "schema": { - "$ref": "#/definitions/DevicePropertiesV1" - } - } - ], - "responses": { - "202": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DevicePropertiesV1" - } - } - } - } - }, - "/api/v1/devices/{device_id}/modules/{module}/properties": { - "get": { - "operationId": "Devices_GetModuleProperties_V1", - "summary": "Get module properties", - "description": "Get all property values of a module.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/ModulePropertiesV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] + { + "$ref": "#/parameters/DeviceId" }, - "patch": { - "operationId": "Devices_UpdateModuleProperties_V1", - "summary": "Update module properties", - "description": "Update all property values of a module.", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "name": "body", - "in": "body", - "description": "Device properties.", - "required": true, - "schema": { - "$ref": "#/definitions/ModulePropertiesV1" - } - } - ], - "responses": { - "202": { - "description": "Success", - "schema": { - "$ref": "#/definitions/ModulePropertiesV1" - } - } - } - } - }, - "/api/preview/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": { - "get": { - "operationId": "Devices_GetComponentTelemetryValue", - "summary": "Get device telemetry value (deprecated)", - "description": "Get the last telemetry value from a device (deprecated).", - "x-ms-visibility": "advanced", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceTelemetry" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "instanceOf" - } - } - } - }, - { - "in": "path", - "name": "telemetry_name", - "x-ms-summary": "Device Telemetry", - "description": "Name of this device telemetry.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "instanceOf" - }, - "component": { - "parameter": "component_name" - }, - "type": "Telemetry" - } - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - } - }, - "/api/v1/devices/{device_id}/telemetry/{telemetry_name}": { - "get": { - "operationId": "Devices_GetTelemetryValue_V1", - "summary": "Get device telemetry value", - "description": "Get the last telemetry value from a device.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceTelemetryV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "telemetry_name", - "x-ms-summary": "Device Telemetry", - "description": "Name of this device telemetry.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "type": "Telemetry" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - } - }, - "/api/v1/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": { - "get": { - "operationId": "Devices_GetComponentTelemetryValue_V1", - "summary": "Get component telemetry value", - "description": "Get the last telemetry value from a component.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceComponentTelemetryV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "telemetry_name", - "x-ms-summary": "Device Telemetry", - "description": "Name of this device telemetry.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "component": { - "parameter": "component_name" - }, - "type": "Telemetry" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - } - }, - "/api/v1/devices/{device_id}/modules/{module}/telemetry/{telemetry_name}": { - "get": { - "operationId": "Devices_GetModuleTelemetryValue_V1", - "summary": "Get module telemetry value", - "description": "Get the last telemetry value from a module.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceModuleTelemetryV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "telemetry_name", - "x-ms-summary": "Device Telemetry", - "description": "Name of this device telemetry.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "type": "Telemetry" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - } - }, - "/api/v1/devices/{device_id}/modules/{module}/components/{component_name}/telemetry/{telemetry_name}": { - "get": { - "operationId": "Devices_GetModuleComponentTelemetryValue_V1", - "summary": "Get module component telemetry value", - "description": "Get the last telemetry value from a module component.", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DeviceModuleComponentTelemetryV1" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "device_id", - "x-ms-summary": "Device", - "description": "Unique ID of the device.", - "x-ms-visibility": "important", - "type": "string", - "required": true - }, - { - "in": "path", - "name": "module", - "x-ms-summary": "Device Module", - "description": "Name of the device module.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - }, - { - "in": "path", - "name": "component_name", - "x-ms-summary": "Device Component", - "description": "Name of the device component.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetComponents_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - } - } - } - }, - { - "in": "path", - "name": "telemetry_name", - "x-ms-summary": "Device Telemetry", - "description": "Name of this device telemetry.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Workflow_GetCapabilities_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "component": { - "parameter": "component_name" - }, - "type": "Telemetry" - } - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ] - } - }, - "/api/preview/rules": { - "get": { - "operationId": "Rules_List", - "summary": "Get the list of rules in an application", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/RuleCollection" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - } - ] - } - }, - "/api/preview/_internal/workflow/schema/DeviceProperties": { - "get": { - "operationId": "Schema_DeviceProperties", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ], - "responses": {} - } - }, - "/api/v1/_internal/workflow/schema/DeviceProperties": { - "get": { - "operationId": "Schema_DeviceProperties_V1", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "in": "query", - "name": "module", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "Workflow_GetModules_V1", - "value-path": "value", - "value-title": "title", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - } - } - } - ], - "responses": {} - } - }, - "/api/preview/_internal/workflow/schema/DeviceCloudProperties": { - "get": { - "operationId": "Schema_DeviceCloudProperties", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - } - ], - "responses": {} - } - }, - "/api/preview/_internal/workflow/schema/DeviceTelemetry": { - "get": { - "operationId": "Schema_DeviceTelemetry", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "capability", - "type": "string" - } - ], - "responses": {} - } - }, - "/api/v1/_internal/workflow/schema/DeviceTelemetry": { - "get": { - "operationId": "Schema_DeviceTelemetry_V1", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "in": "query", - "name": "module", - "type": "string" - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "capability", - "type": "string" - } - ], - "responses": {} - } - }, - "/api/preview/_internal/workflow/schema/DeviceCommand": { - "get": { - "operationId": "Schema_DeviceCommand", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "instanceOf", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "capability", - "type": "string" - } - ], - "responses": {} + { + "$ref": "#/parameters/TemplateId" } + ] }, - "/api/v1/_internal/workflow/schema/DeviceCommand": { - "get": { - "operationId": "Schema_DeviceCommand_V1", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "x-ms-visibility": "important", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - { - "in": "query", - "name": "module", - "type": "string" - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "capability", - "type": "string" - } - ], - "responses": {} - } - }, - "/api/preview/_internal/workflow/schema/WebhookActionBody": { - "get": { - "operationId": "Schema_WebhookActionBody", - "x-ms-visibility": "internal", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "rule", - "type": "string" - } - ], - "responses": {} - } - }, - "/api/preview/_internal/workflow/schema/{type}": { - "get": { - "operationId": "Schema_Definition", - "parameters": [ - { - "description": "Unique ID of the application.", - "in": "query", - "name": "application", - "required": true, - "type": "string", - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-collection": "value", - "value-path": "id", - "value-title": "displayName" - }, - "x-ms-summary": "Application", - "x-ms-visibility": "important" - }, - { - "in": "path", - "name": "type", - "required": true, - "type": "string" - } - ], - "responses": {}, - "x-ms-visibility": "internal" - } - }, - "/api/preview/_internal/workflow/triggers": { - "x-ms-notification-content": { - "schema": { - "$ref": "#/definitions/WebhookActionBody" - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - } - ] - }, - "post": { - "operationId": "Workflow_CreateTrigger", - "summary": "When a rule is fired", - "description": "Create an action which triggers when a rule is fired in IoT Central.", - "x-ms-trigger": "single", - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/WorkflowTrigger" - } - } - ], - "responses": { - "201": { - "description": "Success", - "schema": { - "$ref": "#/definitions/WorkflowTrigger" - } - } - } - } - }, - "/api/preview/_internal/workflow/triggers/{trigger_id}": { - "get": { - "operationId": "Workflow_GetTrigger", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/WorkflowTrigger" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "trigger_id", - "type": "string", - "required": true - } - ] - }, - "delete": { - "operationId": "Workflow_RemoveTrigger", - "x-ms-visibility": "internal", - "responses": { - "204": { - "description": "Success" - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "path", - "name": "trigger_id", - "type": "string", - "required": true - } - ] - } - }, - "/api/v1/_internal/workflow/modules": { - "get": { - "operationId": "Workflow_GetModules_V1", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DynamicValues" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "type": "string", - "required": true - } - ] - } - }, - "/api/preview/_internal/workflow/components": { - "get": { - "operationId": "Workflow_GetComponents", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DynamicValues" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "module", - "type": "string" - } - ] - } - }, - "/api/v1/_internal/workflow/components": { - "get": { - "operationId": "Workflow_GetComponents_V1", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DynamicValues" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "module", - "type": "string" - } - ] - } - }, - "/api/preview/_internal/workflow/capabilities": { - "get": { - "operationId": "Workflow_GetCapabilities", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DynamicValues" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "module", - "type": "string" - }, - { - "name": "type", - "in": "query", - "type": "string" - } - ] + "put": { + "operationId": "Devices_UpdateCloudProperties", + "summary": "Update device cloud properties (deprecated)", + "description": "Update all cloud property values of a device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/TemplateId" + }, + { + "name": "body", + "in": "body", + "description": "Device properties.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceCloudProperties" + } } - }, - "/api/v1/_internal/workflow/capabilities": { - "get": { - "operationId": "Workflow_GetCapabilities_V1", - "x-ms-visibility": "internal", - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/DynamicValues" - } - } - }, - "parameters": [ - { - "in": "query", - "name": "application", - "x-ms-summary": "Application", - "description": "Unique ID of the application.", - "x-ms-visibility": "important", - "type": "string", - "required": true, - "x-ms-dynamic-values": { - "operationId": "Applications_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value" - } - }, - { - "in": "query", - "name": "template", - "type": "string", - "required": true - }, - { - "in": "query", - "name": "component", - "type": "string" - }, - { - "in": "query", - "name": "module", - "type": "string" - }, - { - "name": "type", - "in": "query", - "type": "string" - } - ] + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCloudProperties" + } } + } } - }, - "definitions": { - "Action": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Action ID", - "description": "Unique ID of the action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Action Name", - "description": "Display name of the action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Action Type", - "description": "Type of the action.", - "type": "string", - "enum": [ - "EmailAction", - "WebhookAction", - "PowerAutomateAction", - "LogicAppsAction", - "ActionGroupsAction" - ] - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 - } + }, + "/api/preview/devices/{device_id}/components/{component_name}/commands/{command_name}": { + "post": { + "operationId": "Devices_ExecuteComponentCommand", + "summary": "Execute a device command (deprecated)", + "description": "Execute a command on a device (deprecated).", + "x-ms-visibility": "advanced", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "type", - "rules" - ], - "discriminator": "type" - }, - "EmailAction": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Email Action ID", - "description": "Unique ID of the email action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Email Action Name", - "description": "Display name of the email action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Email Action Type", - "description": "Type of the email action.", - "type": "string", - "enum": [ - "EmailAction" - ], - "default": "EmailAction", - "x-ms-visibility": "internal" - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the email action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 - } + { + "$ref": "#/parameters/DeviceId" }, - "required": [ - "type", - "rules" - ], - "discriminator": "type" - }, - "WebhookAction": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Webhook Action ID", - "description": "Unique ID of the webhook action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Webhook Action Name", - "description": "Display name of the webhook action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Webhook Action Type", - "description": "Type of the webhook action.", - "type": "string", - "enum": [ - "WebhookAction" - ], - "default": "WebhookAction", - "x-ms-visibility": "internal" - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the webhook action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 - }, - "url": { - "x-ms-summary": "Webhook URL", - "description": "Callback URL of the webhook.", - "type": "string", - "format": "uri" + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "instanceOf" + } } + } }, - "required": [ - "type", - "rules", - "url" - ], - "discriminator": "type" - }, - "PowerAutomateAction": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Power Automate Action ID", - "description": "Unique ID of the Power Automate action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Power Automate Action Name", - "description": "Display name of the Power Automate action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Power Automate Action Type", - "description": "Type of the Power Automate action.", - "type": "string", - "enum": [ - "PowerAutomateAction" - ], - "default": "PowerAutomateAction", - "x-ms-visibility": "internal" - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the Power Automate action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "instanceOf" + }, + "component": { + "parameter": "component_name" + }, + "type": "Command" } + } }, - "required": [ - "type", - "rules" - ], - "discriminator": "type" - }, - "LogicAppsAction": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Logic Apps Action ID", - "description": "Unique ID of the Logic Apps action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Logic Apps Action Name", - "description": "Display name of the Logic Apps action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Logic Apps Action Type", - "description": "Type of the Logic Apps action.", - "type": "string", - "enum": [ - "LogicAppsAction" - ], - "default": "LogicAppsAction", - "x-ms-visibility": "internal" - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the Logic Apps action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 - } + { + "$ref": "#/parameters/TemplateId" }, - "required": [ - "type", - "rules" - ], - "discriminator": "type" - }, - "ActionGroupsAction": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Action Groups Action ID", - "description": "Unique ID of the Action Groups action.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Action Groups Action Name", - "description": "Display name of the Action Groups action.", - "type": "string" - }, - "type": { - "x-ms-summary": "Action Groups Action Type", - "description": "Type of the Action Groups action.", - "type": "string", - "enum": [ - "ActionGroupsAction" - ], - "default": "ActionGroupsAction", - "x-ms-visibility": "internal" - }, - "rules": { - "x-ms-summary": "Rules", - "description": "Unique IDs of the rules that are tied to the Action Groups action.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 1 - } + { + "name": "body", + "in": "body", + "description": "Device command body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceCommand" + } + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCommand" + } + } + } + } + }, + "/api/v1/devices/{device_id}/commands/{command_name}": { + "get": { + "operationId": "Devices_GetCommandResponse_V1", + "summary": "Get device command response", + "description": "Get the last response for a device command.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "type", - "rules" - ], - "discriminator": "type" - }, - "Application": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Application ID", - "description": "Unique ID of the application.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Application Name", - "description": "Display name of the application.", - "type": "string" - }, - "subdomain": { - "x-ms-summary": "Subdomain", - "description": "The URL subdomain of the application.", - "type": "string" - }, - "host": { - "x-ms-summary": "Host", - "description": "The URL host of the application.", - "type": "string" - } + { + "$ref": "#/parameters/DeviceId" }, - "required": [ - "subdomain", - "host" - ] - }, - "ApplicationCollection": { - "type": "object", - "properties": { - "value": { - "description": "The collection of applications.", - "type": "array", - "items": { - "$ref": "#/definitions/Application" - } - }, - "nextLink": { - "description": "URL to get the next page of applications.", - "type": "string" + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "type": "Command" } + } }, - "required": [ - "value" - ] - }, - "Device": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device ID", - "description": "Unique ID of the device.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "etag": { - "x-ms-summary": "Device ETag", - "description": "ETag used to prevent conflict in device updates.", - "x-ms-visibility": "internal", - "type": "string" - }, - "displayName": { - "x-ms-summary": "Device Name", - "description": "Display name of the device.", - "type": "string" - }, - "instanceOf": { - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - "simulated": { - "x-ms-summary": "Simulated", - "description": "Whether the device is simulated.", - "type": "boolean" - }, - "approved": { - "x-ms-summary": "Approved", - "description": "Whether the device has been approved to connect to IoT Central.", - "type": "boolean" - }, - "provisioned": { - "x-ms-summary": "Provisioned", - "description": "Whether resources have been allocated for the device.", - "type": "boolean", - "readOnly": true + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } } - }, - "DeviceV1": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device ID", - "description": "Unique ID of the device.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "etag": { - "x-ms-summary": "Device ETag", - "description": "ETag used to prevent conflict in device updates.", - "x-ms-visibility": "internal", - "type": "string" - }, - "displayName": { - "x-ms-summary": "Device Name", - "description": "Display name of the device.", - "type": "string" - }, - "template": { - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - "simulated": { - "x-ms-summary": "Simulated", - "description": "Whether the device is simulated.", - "type": "boolean" - }, - "enabled": { - "x-ms-summary": "Enabled", - "description": "Whether the device connection to IoT Central has been enabled.", - "type": "boolean" - }, - "provisioned": { - "x-ms-summary": "Provisioned", - "description": "Whether resources have been allocated for the device.", - "type": "boolean", - "readOnly": true - } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCommandV1" + } } + } }, - "DeviceCloudProperties": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCloudProperties", - "parameters": { - "application": { - "parameter": "application" - }, - "instanceOf": { - "parameter": "instanceOf" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCloudProperties", + "post": { + "operationId": "Devices_RunCommand_V1", + "summary": "Run a device command", + "description": "Run a command on a device.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "instanceOf": { - "parameterReference": "instanceOf" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "type": "Command" } + } }, - "x-ms-summary": "Device Cloud Properties", - "description": "Cloud property values associated with the device.", - "type": "object" - }, - "DeviceCommand": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCommand", - "parameters": { - "application": { - "parameter": "application" - }, - "instanceOf": { - "parameter": "instanceOf" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "command_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCommand", + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", "parameters": { - "application": { - "parameterReference": "application" - }, - "instanceOf": { - "parameterReference": "instanceOf" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "command_name" - } + "application": { + "parameter": "application" + } } + } }, - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Command Request ID", - "description": "The request ID of the device command execution.", - "type": "string", - "readOnly": true - }, - "request": { - "x-ms-summary": "Device Command Request Payload", - "description": "The payload for the device command." - }, - "response": { - "x-ms-summary": "Device Command Response Payload", - "description": "The payload of the device command response.", - "readOnly": true - }, - "connectionTimeout": { - "x-ms-summary": "Device Command Connection Timeout", - "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", - "type": "integer", - "minimum": 0, - "maximum": 30 - }, - "responseTimeout": { - "x-ms-summary": "Device Command Response Timeout", - "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", - "type": "integer", - "minimum": 5, - "maximum": 30 - }, - "responseCode": { - "x-ms-summary": "Device Command Response Status", - "description": "The status code of the device command response.", - "type": "integer", - "readOnly": true - } + { + "name": "body", + "in": "body", + "description": "Device command body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceCommandV1" + } } - }, - "DeviceCommandV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCommand_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "capability": { - "parameter": "command_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCommand_V1", + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCommandV1" + } + } + } + } + }, + "/api/v1/devices/{device_id}/components/{component_name}/commands/{command_name}": { + "get": { + "operationId": "Devices_GetComponentCommandResponse_V1", + "summary": "Get component command response", + "description": "Get the last response for a device component command.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "capability": { - "parameterReference": "command_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } } + } }, - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Command Request ID", - "description": "The request ID of the device command execution.", - "type": "string", - "readOnly": true - }, - "request": { - "x-ms-summary": "Device Command Request Payload", - "description": "The payload for the device command." - }, - "response": { - "x-ms-summary": "Device Command Response Payload", - "description": "The payload of the device command response.", - "readOnly": true - }, - "connectionTimeout": { - "x-ms-summary": "Device Command Connection Timeout", - "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", - "type": "integer", - "minimum": 0, - "maximum": 30 - }, - "responseTimeout": { - "x-ms-summary": "Device Command Response Timeout", - "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", - "type": "integer", - "minimum": 5, - "maximum": 30 - }, - "responseCode": { - "x-ms-summary": "Device Command Response Status", - "description": "The status code of the device command response.", - "type": "integer", - "readOnly": true - } - } - }, - "DeviceComponentCommandV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCommand_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "command_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCommand_V1", + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "command_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "type": "Command" } + } }, - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Command Request ID", - "description": "The request ID of the device command execution.", - "type": "string", - "readOnly": true - }, - "request": { - "x-ms-summary": "Device Command Request Payload", - "description": "The payload for the device command." - }, - "response": { - "x-ms-summary": "Device Command Response Payload", - "description": "The payload of the device command response.", - "readOnly": true - }, - "connectionTimeout": { - "x-ms-summary": "Device Command Connection Timeout", - "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", - "type": "integer", - "minimum": 0, - "maximum": 30 - }, - "responseTimeout": { - "x-ms-summary": "Device Command Response Timeout", - "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", - "type": "integer", - "minimum": 5, - "maximum": 30 - }, - "responseCode": { - "x-ms-summary": "Device Command Response Status", - "description": "The status code of the device command response.", - "type": "integer", - "readOnly": true + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceComponentCommandV1" + } } + } }, - "DeviceModuleCommandV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCommand_V1", + "post": { + "operationId": "Devices_RunComponentCommand_V1", + "summary": "Run a component command", + "description": "Run a command on a component.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "capability": { - "parameter": "command_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCommand_V1", + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "module": { - "parameterReference": "module" - }, - "capability": { - "parameterReference": "command_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "type": "Command" } + } }, - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Command Request ID", - "description": "The request ID of the device command execution.", - "type": "string", - "readOnly": true - }, - "request": { - "x-ms-summary": "Device Command Request Payload", - "description": "The payload for the device command." - }, - "response": { - "x-ms-summary": "Device Command Response Payload", - "description": "The payload of the device command response.", - "readOnly": true - }, - "connectionTimeout": { - "x-ms-summary": "Device Command Connection Timeout", - "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", - "type": "integer", - "minimum": 0, - "maximum": 30 - }, - "responseTimeout": { - "x-ms-summary": "Device Command Response Timeout", - "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", - "type": "integer", - "minimum": 5, - "maximum": 30 - }, - "responseCode": { - "x-ms-summary": "Device Command Response Status", - "description": "The status code of the device command response.", - "type": "integer", - "readOnly": true + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } + }, + { + "name": "body", + "in": "body", + "description": "Device command body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceComponentCommandV1" + } } - }, - "DeviceModuleComponentCommandV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceCommand_V1", + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceComponentCommandV1" + } + } + } + } + }, + "/api/v1/devices/{device_id}/modules/{module}/commands/{command_name}": { + "get": { + "operationId": "Devices_GetModuleCommandResponse_V1", + "summary": "Get module command response", + "description": "Get the last response for a device module command", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "command_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceCommand_V1", + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "module": { - "parameterReference": "module" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "command_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "type": "Command" } + } }, - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Command Request ID", - "description": "The request ID of the device command execution.", - "type": "string", - "readOnly": true - }, - "request": { - "x-ms-summary": "Device Command Request Payload", - "description": "The payload for the device command." - }, - "response": { - "x-ms-summary": "Device Command Response Payload", - "description": "The payload of the device command response.", - "readOnly": true - }, - "connectionTimeout": { - "x-ms-summary": "Device Command Connection Timeout", - "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", - "type": "integer", - "minimum": 0, - "maximum": 30 - }, - "responseTimeout": { - "x-ms-summary": "Device Command Response Timeout", - "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", - "type": "integer", - "minimum": 5, - "maximum": 30 - }, - "responseCode": { - "x-ms-summary": "Device Command Response Status", - "description": "The status code of the device command response.", - "type": "integer", - "readOnly": true + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleCommandV1" + } + } + } }, - "DeviceProperties": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceProperties", - "parameters": { - "application": { - "parameter": "application" - }, - "instanceOf": { - "parameter": "instanceOf" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceProperties", - "parameters": { - "application": { - "parameterReference": "application" - }, - "instanceOf": { - "parameterReference": "instanceOf" - } - } + "post": { + "operationId": "Devices_RunModuleCommand_V1", + "summary": "Run a module command", + "description": "Run a command on a module.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "x-ms-summary": "Device Properties", - "description": "Property values associated with the device.", - "type": "object" - }, - "DevicePropertiesV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceProperties_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceProperties_V1", + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } } + } }, - "x-ms-summary": "Device Properties", - "description": "Property values associated with the device.", - "type": "object" - }, - "ModulePropertiesV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceProperties_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceProperties_V1", + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "module": { - "parameterReference": "module" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "type": "Command" } + } }, - "x-ms-summary": "Module Properties", - "description": "Property values associated with the module.", - "type": "object" - }, - "DeviceTelemetry": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceTelemetry", - "parameters": { - "application": { - "parameter": "application" - }, - "instanceOf": { - "parameter": "instanceOf" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "telemetry_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceTelemetry", + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", "parameters": { - "application": { - "parameterReference": "application" - }, - "instanceOf": { - "parameterReference": "instanceOf" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "telemetry_name" - } + "application": { + "parameter": "application" + } } + } }, - "type": "object", - "properties": { - "value": { - "x-ms-summary": "Value", - "description": "The last known value of this device telemetry." - }, - "timestamp": { - "x-ms-summary": "Timestamp", - "description": "String-formatted date representing the time when the telemetry value was sent.", - "type": "string", - "format": "date-time" - } + { + "name": "body", + "in": "body", + "description": "Device command body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceModuleCommandV1" + } } - }, - "DeviceTelemetryV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceTelemetry_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "capability": { - "parameter": "telemetry_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceTelemetry_V1", + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleCommandV1" + } + } + } + } + }, + "/api/v1/devices/{device_id}/modules/{module}/components/{component_name}/commands/{command_name}": { + "get": { + "operationId": "Devices_GetModuleComponentCommandResponse_V1", + "summary": "Get module component command response", + "description": "Get the last response for a module component command.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "capability": { - "parameterReference": "telemetry_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } } + } }, - "type": "object", - "properties": { - "value": { - "x-ms-summary": "Value", - "description": "The last known value of this device telemetry." - }, - "timestamp": { - "x-ms-summary": "Timestamp", - "description": "String-formatted date representing the time when the telemetry value was sent.", - "type": "string", - "format": "date-time" - } - } - }, - "DeviceComponentTelemetryV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceTelemetry_V1", + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "telemetry_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceTelemetry_V1", + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + } + } + } + }, + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "telemetry_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "module": { + "parameter": "module" + }, + "type": "Command" } + } }, - "type": "object", - "properties": { - "value": { - "x-ms-summary": "Value", - "description": "The last known value of this device telemetry." - }, - "timestamp": { - "x-ms-summary": "Timestamp", - "description": "String-formatted date representing the time when the telemetry value was sent.", - "type": "string", - "format": "date-time" + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleComponentCommandV1" + } + } + } }, - "DeviceModuleTelemetryV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceTelemetry_V1", - "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "capability": { - "parameter": "telemetry_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceTelemetry_V1", + "post": { + "operationId": "Devices_RunModuleComponentCommand_V1", + "summary": "Run a module component command", + "description": "Run a command on a module component.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "module": { - "parameterReference": "module" - }, - "capability": { - "parameterReference": "telemetry_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } } + } }, - "type": "object", - "properties": { - "value": { - "x-ms-summary": "Value", - "description": "The last known value of this device telemetry." - }, - "timestamp": { - "x-ms-summary": "Timestamp", - "description": "String-formatted date representing the time when the telemetry value was sent.", - "type": "string", - "format": "date-time" - } - } - }, - "DeviceModuleComponentTelemetryV1": { - "x-ms-dynamic-schema": { - "operationId": "Schema_DeviceTelemetry_V1", + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameter": "application" - }, - "template": { - "parameter": "template" - }, - "module": { - "parameter": "module" - }, - "component": { - "parameter": "component_name" - }, - "capability": { - "parameter": "telemetry_name" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_DeviceTelemetry_V1", + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + } + } + } + }, + { + "in": "path", + "name": "command_name", + "x-ms-summary": "Device Command", + "description": "Name of this device command.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", "parameters": { - "application": { - "parameterReference": "application" - }, - "template": { - "parameterReference": "template" - }, - "module": { - "parameterReference": "module" - }, - "component": { - "parameterReference": "component_name" - }, - "capability": { - "parameterReference": "telemetry_name" - } + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "module": { + "parameter": "module" + }, + "type": "Command" } + } }, - "type": "object", - "properties": { - "value": { - "x-ms-summary": "Value", - "description": "The last known value of this device telemetry." - }, - "timestamp": { - "x-ms-summary": "Timestamp", - "description": "String-formatted date representing the time when the telemetry value was sent.", - "type": "string", - "format": "date-time" + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } } + } + }, + { + "name": "body", + "in": "body", + "description": "Device command body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceModuleComponentCommandV1" + } } - }, - "DeviceTemplate": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device Template ID", - "description": "Unique ID of the device template.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "etag": { - "x-ms-summary": "Device Template ETag", - "description": "ETag used to prevent conflict in device template updates.", - "x-ms-visibility": "internal", - "type": "string" - }, - "types": { - "x-ms-summary": "Device Template Types", - "description": "The types of device to which this template applies.", - "type": "array", - "items": { - "type": "string" - } - }, - "displayName": { - "x-ms-summary": "Device Template Name", - "description": "Display name of the device template.", - "type": "string" - }, - "description": { - "x-ms-summary": "Device Template Description", - "description": "Detailed description of the device template.", - "type": "string" - } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleComponentCommandV1" + } + } + } + } + }, + "/api/v1/devices": { + "get": { + "operationId": "Devices_List_V1", + "summary": "List devices", + "description": "Get the list of devices in an application.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceCollectionV1" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + } + ] + } + }, + "/api/preview/devices/{device_id}": { + "get": { + "operationId": "Devices_Get", + "summary": "Get a device by ID (deprecated)", + "description": "Get details about an existing device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Device" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "types" - ] + { + "$ref": "#/parameters/DeviceId" + } + ] }, - "DeviceTemplateCollection": { - "type": "object", - "properties": { - "value": { - "description": "The collection of device templates.", - "type": "array", - "items": { - "$ref": "#/definitions/DeviceTemplate" - } - }, - "nextLink": { - "description": "URL to get the next page of device templates.", - "type": "string" - } + "put": { + "operationId": "Devices_Set", + "summary": "Create or update a device (deprecated)", + "description": "Create a new device or update an existing one by device ID (deprecated).", + "x-ms-visibility": "advanced", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "value" - ] - }, - "Rule": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Rule ID", - "description": "Unique ID of the rule.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "displayName": { - "x-ms-summary": "Rule Name", - "description": "Display name of the rule.", - "type": "string" - } + { + "$ref": "#/parameters/DeviceId" + }, + { + "name": "body", + "in": "body", + "description": "Device body.", + "required": true, + "schema": { + "$ref": "#/definitions/Device" + } } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Device" + } + } + } }, - "RuleCollection": { - "type": "object", - "properties": { - "value": { - "description": "The collection of rules.", - "type": "array", - "items": { - "$ref": "#/definitions/Rule" - } - }, - "nextLink": { - "description": "URL to get the next page of rules.", - "type": "string" - } + "delete": { + "operationId": "Devices_Remove", + "summary": "Delete a device (deprecated)", + "description": "Delete an existing device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "responses": { + "204": { + "description": "Success" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "value" - ] - }, - "WebhookActionDevice": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Device ID", - "description": "Unique ID of the device.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "etag": { - "x-ms-summary": "Device ETag", - "description": "ETag used to prevent conflict in device updates.", - "x-ms-visibility": "internal", - "type": "string" - }, - "displayName": { - "x-ms-summary": "Device Name", - "description": "Display name of the device.", - "type": "string" - }, - "instanceOf": { - "x-ms-summary": "Device Template", - "description": "The device template definition for the device.", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "DeviceTemplates_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - "simulated": { - "x-ms-summary": "Simulated", - "description": "Whether the device is simulated.", - "type": "boolean" - }, - "approved": { - "x-ms-summary": "Approved", - "description": "Whether the device has been approved to connect to IoT Central.", - "type": "boolean" - }, - "provisioned": { - "x-ms-summary": "Provisioned", - "description": "Whether resources have been allocated for the device.", - "type": "boolean", - "readOnly": true - }, - "cloudProperties": { - "x-ms-summary": "Cloud Properties", - "description": "Cloud properties that triggered the webhook.", - "type": "object" - }, - "properties": { - "x-ms-summary": "Properties", - "description": "Device properties that triggered the webhook.", - "type": "object" - }, - "telemetry": { - "x-ms-summary": "Telemetry", - "description": "Device telemetry that triggered the webhook.", - "type": "object" - } + { + "$ref": "#/parameters/DeviceId" } + ] + } + }, + "/api/v1/devices/{device_id}": { + "get": { + "operationId": "Devices_Get_V1", + "summary": "Get a device by ID", + "description": "Get details about an existing device by device ID.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + } + ] }, - "WebhookActionBody": { - "x-ms-dynamic-schema": { - "operationId": "Schema_WebhookActionBody", - "parameters": { - "application": { - "parameter": "application" - }, - "rule": { - "parameter": "rule" - } - }, - "value-path": "properties" - }, - "x-ms-dynamic-properties": { - "operationId": "Schema_WebhookActionBody", - "parameters": { - "application": { - "parameterReference": "application" - }, - "rule": { - "parameterReference": "body/rule" - } - } + "put": { + "operationId": "Devices_Set_V1", + "summary": "Create or update a device", + "description": "Create a new device or update an existing one by device ID.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "type": "object", - "properties": { - "action": { - "x-ms-summary": "Webhook Action", - "description": "Action that triggered the webhook.", - "$ref": "#/definitions/Action" - }, - "application": { - "x-ms-summary": "Webhook Application", - "description": "Application that triggered the webhook.", - "$ref": "#/definitions/Application" - }, - "device": { - "x-ms-summary": "Webhook Device", - "description": "Device that triggered the webhook.", - "$ref": "#/definitions/WebhookActionDevice" - }, - "rule": { - "x-ms-summary": "Webhook Rule", - "description": "Rule that triggered the webhook.", - "$ref": "#/definitions/Rule" - }, - "timestamp": { - "x-ms-summary": "Webhook Timespamp", - "description": "Timestamp at which the webhook was triggered.", - "type": "string", - "format": "date-time" - } + { + "$ref": "#/parameters/DeviceId" }, - "required": [ - "action", - "application", - "device", - "rule", - "timestamp" - ] + { + "name": "body", + "in": "body", + "description": "Device body.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceV1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceV1" + } + } + } }, - "WorkflowTrigger": { - "type": "object", - "properties": { - "id": { - "x-ms-summary": "Workflow Trigger ID", - "description": "Unique ID of the workflow trigger.", - "x-ms-visibility": "advanced", - "type": "string", - "readOnly": true - }, - "rule": { - "x-ms-summary": "Rule", - "description": "Unique ID of the rule that is tied to the workflow trigger.", - "type": "string", - "x-ms-dynamic-values": { - "operationId": "Rules_List", - "value-path": "id", - "value-title": "displayName", - "value-collection": "value", - "parameters": { - "application": { - "parameter": "application" - } - } - } - }, - "url": { - "x-ms-notification-url": true, - "x-ms-summary": "Workflow Trigger URL", - "description": "Callback URL of the workflow Trigger.", - "type": "string", - "format": "uri", - "x-ms-visibility": "internal" - } + "delete": { + "operationId": "Devices_Remove_V1", + "summary": "Delete a device", + "description": "Delete an existing device by device ID.", + "responses": { + "204": { + "description": "Success" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" }, - "required": [ - "rule", - "url" - ] - }, - "DynamicValues": { + { + "$ref": "#/parameters/DeviceId" + } + ] + } + }, + "/api/preview/devices/{device_id}/properties": { + "get": { + "operationId": "Devices_GetProperties", + "summary": "Get device properties (deprecated)", + "description": "Get all property values of a device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceProperties" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/TemplateId" + } + ] + }, + "put": { + "operationId": "Devices_UpdateProperties", + "summary": "Update device properties (deprecated)", + "description": "Update all property values of a device by device ID (deprecated).", + "x-ms-visibility": "advanced", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "$ref": "#/parameters/TemplateId" + }, + { + "name": "body", + "in": "body", + "description": "Device properties.", + "required": true, + "schema": { + "$ref": "#/definitions/DeviceProperties" + } + } + ], + "responses": { + "202": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceProperties" + } + } + } + } + }, + "/api/v1/devices/{device_id}/properties": { + "get": { + "operationId": "Devices_GetProperties_V1", + "summary": "Get device properties", + "description": "Get all property values of a device by device ID.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DevicePropertiesV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + }, + "patch": { + "operationId": "Devices_UpdateProperties_V1", + "summary": "Update device properties", + "description": "Update all property values of a device by device ID.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + { + "name": "body", + "in": "body", + "description": "Device properties.", + "required": true, + "schema": { + "$ref": "#/definitions/DevicePropertiesV1" + } + } + ], + "responses": { + "202": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DevicePropertiesV1" + } + } + } + } + }, + "/api/v1/devices/{device_id}/modules/{module}/properties": { + "get": { + "operationId": "Devices_GetModuleProperties_V1", + "summary": "Get module properties", + "description": "Get all property values of a module.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ModulePropertiesV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + }, + "patch": { + "operationId": "Devices_UpdateModuleProperties_V1", + "summary": "Update module properties", + "description": "Update all property values of a module.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + { + "name": "body", + "in": "body", + "description": "Device properties.", + "required": true, + "schema": { + "$ref": "#/definitions/ModulePropertiesV1" + } + } + ], + "responses": { + "202": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ModulePropertiesV1" + } + } + } + } + }, + "/api/preview/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetComponentTelemetryValue", + "summary": "Get device telemetry value (deprecated)", + "description": "Get the last telemetry value from a device (deprecated).", + "x-ms-visibility": "advanced", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTelemetry" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "instanceOf" + } + } + } + }, + { + "in": "path", + "name": "telemetry_name", + "x-ms-summary": "Device Telemetry", + "description": "Name of this device telemetry.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "instanceOf" + }, + "component": { + "parameter": "component_name" + }, + "type": "Telemetry" + } + } + }, + { + "$ref": "#/parameters/TemplateId" + } + ] + } + }, + "/api/v1/devices/{device_id}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetTelemetryValue_V1", + "summary": "Get device telemetry value", + "description": "Get the last telemetry value from a device.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceTelemetryV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "telemetry_name", + "x-ms-summary": "Device Telemetry", + "description": "Name of this device telemetry.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "type": "Telemetry" + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + } + }, + "/api/v1/devices/{device_id}/components/{component_name}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetComponentTelemetryValue_V1", + "summary": "Get component telemetry value", + "description": "Get the last telemetry value from a component.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceComponentTelemetryV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "path", + "name": "telemetry_name", + "x-ms-summary": "Device Telemetry", + "description": "Name of this device telemetry.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "type": "Telemetry" + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + } + }, + "/api/v1/devices/{device_id}/modules/{module}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetModuleTelemetryValue_V1", + "summary": "Get module telemetry value", + "description": "Get the last telemetry value from a module.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleTelemetryV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "path", + "name": "telemetry_name", + "x-ms-summary": "Device Telemetry", + "description": "Name of this device telemetry.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "type": "Telemetry" + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + } + }, + "/api/v1/devices/{device_id}/modules/{module}/components/{component_name}/telemetry/{telemetry_name}": { + "get": { + "operationId": "Devices_GetModuleComponentTelemetryValue_V1", + "summary": "Get module component telemetry value", + "description": "Get the last telemetry value from a module component.", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DeviceModuleComponentTelemetryV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/DeviceId" + }, + { + "in": "path", + "name": "module", + "x-ms-summary": "Device Module", + "description": "Name of the device module.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + }, + { + "in": "path", + "name": "component_name", + "x-ms-summary": "Device Component", + "description": "Name of the device component.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetComponents_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + } + } + } + }, + { + "in": "path", + "name": "telemetry_name", + "x-ms-summary": "Device Telemetry", + "description": "Name of this device telemetry.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Workflow_GetCapabilities_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "component": { + "parameter": "component_name" + }, + "type": "Telemetry" + } + } + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ] + } + }, + "/api/v1/roles": { + "get": { + "operationId": "Roles_List_V1", + "summary": "List roles", + "description": "Get the list of roles in an application.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/RoleCollectionV1" + } + } + } + } + }, + "/api/v1/roles/{role_id}": { + "get": { + "operationId": "Roles_Get_V1", + "summary": "Get role", + "description": "Get a role by ID.", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "role_id", + "x-ms-summary": "Role", + "description": "Unique ID for the role.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Roles_List_V1", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/RoleV1" + } + } + } + } + }, + "/api/preview/rules": { + "get": { + "operationId": "Rules_List", + "summary": "Get the list of rules in an application", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/RuleCollection" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + } + ] + } + }, + "/api/preview/_internal/workflow/schema/DeviceProperties": { + "get": { + "operationId": "Schema_DeviceProperties", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/TemplateId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/v1/_internal/workflow/schema/DeviceProperties": { + "get": { + "operationId": "Schema_DeviceProperties_V1", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + { + "in": "query", + "name": "module", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "Workflow_GetModules_V1", + "value-path": "value", + "value-title": "title", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/preview/_internal/workflow/schema/DeviceCloudProperties": { + "get": { + "operationId": "Schema_DeviceCloudProperties", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/TemplateId" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/preview/_internal/workflow/schema/DeviceTelemetry": { + "get": { + "operationId": "Schema_DeviceTelemetry", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/TemplateId" + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "capability", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/v1/_internal/workflow/schema/DeviceTelemetry": { + "get": { + "operationId": "Schema_DeviceTelemetry_V1", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + { + "in": "query", + "name": "module", + "type": "string" + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "capability", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/preview/_internal/workflow/schema/DeviceCommand": { + "get": { + "operationId": "Schema_DeviceCommand", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "$ref": "#/parameters/TemplateId" + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "capability", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/v1/_internal/workflow/schema/DeviceCommand": { + "get": { + "operationId": "Schema_DeviceCommand_V1", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + { + "in": "query", + "name": "module", + "type": "string" + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "capability", + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/preview/_internal/workflow/schema/WebhookActionBody": { + "get": { + "operationId": "Schema_WebhookActionBody", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "rule", + "type": "string" + } + ], + "responses": {} + } + }, + "/api/v1/_internal/workflow/schema/User": { + "get": { + "operationId": "Schema_User_V1", + "x-ms-visibility": "internal", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "user_type", + "type": "string" + }, + { + "in": "query", + "name": "patch", + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + } + } + }, + "/api/preview/_internal/workflow/schema/{type}": { + "get": { + "operationId": "Schema_Definition", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "type", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object" + } + } + }, + "x-ms-visibility": "internal" + } + }, + "/api/v1/users": { + "get": { + "operationId": "Users_List_V1", + "summary": "List users", + "description": "Get the list of users in an application", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/UserCollectionV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + } + ] + } + }, + "/api/v1/users/{user_id}": { + "get": { + "operationId": "Users_Get_V1", + "summary": "Get user", + "description": "Get a user by ID", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/UserStaticV1" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "user_id", + "x-ms-summary": "User", + "description": "Unique ID of the user.", + "x-ms-visibility": "important", + "type": "string", + "required": true + } + ] + }, + "put": { + "operationId": "Users_Create_V1", + "summary": "Create user", + "description": "Create a user in the application", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "user_id", + "x-ms-summary": "User", + "description": "Unique ID of the user.", + "x-ms-visibility": "important", + "type": "string", + "required": true + }, + { + "$ref": "#/parameters/UserType" + }, + { + "name": "body", + "in": "body", + "x-ms-summary": "Body", + "description": "User create body.", + "required": true, + "schema": { + "$ref": "#/definitions/UserV1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/UserV1" + } + } + } + }, + "patch": { + "operationId": "Users_Update_V1", + "summary": "Update user", + "description": "Update a user in the application via patch", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "user_id", + "x-ms-summary": "User", + "description": "Unique ID of the user.", + "x-ms-visibility": "important", + "type": "string", + "required": true + }, + { + "$ref": "#/parameters/UserType" + }, + { + "name": "body", + "in": "body", + "x-ms-summary": "Body", + "description": "User update body.", + "required": true, + "schema": { + "$ref": "#/definitions/UserPatchV1" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/UserPatchV1" + } + } + } + }, + "delete": { + "operationId": "Users_Remove_V1", + "summary": "Delete user", + "description": "Delete a user", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "user_id", + "x-ms-summary": "User", + "description": "Unique ID of the user.", + "x-ms-visibility": "important", + "type": "string", + "required": true + } + ], + "responses": { + "204": { + "description": "Success" + } + } + } + }, + "/api/preview/_internal/workflow/triggers": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/WebhookActionBody" + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + } + ] + }, + "post": { + "operationId": "Workflow_CreateTrigger", + "summary": "When a rule is fired", + "description": "Create an action which triggers when a rule is fired in IoT Central.", + "x-ms-trigger": "single", + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/WorkflowTrigger" + } + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/WorkflowTrigger" + } + } + } + } + }, + "/api/preview/_internal/workflow/triggers/{trigger_id}": { + "get": { + "operationId": "Workflow_GetTrigger", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/WorkflowTrigger" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "trigger_id", + "type": "string", + "required": true + } + ] + }, + "delete": { + "operationId": "Workflow_RemoveTrigger", + "x-ms-visibility": "internal", + "responses": { + "204": { + "description": "Success" + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "path", + "name": "trigger_id", + "type": "string", + "required": true + } + ] + } + }, + "/api/v1/_internal/workflow/modules": { + "get": { + "operationId": "Workflow_GetModules_V1", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DynamicValues" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "type": "string", + "required": true + } + ] + } + }, + "/api/preview/_internal/workflow/components": { + "get": { + "operationId": "Workflow_GetComponents", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DynamicValues" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "type": "string", + "required": true + }, + { + "in": "query", + "name": "module", + "type": "string" + } + ] + } + }, + "/api/v1/_internal/workflow/components": { + "get": { + "operationId": "Workflow_GetComponents_V1", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DynamicValues" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "type": "string", + "required": true + }, + { + "in": "query", + "name": "module", + "type": "string" + } + ] + } + }, + "/api/preview/_internal/workflow/capabilities": { + "get": { + "operationId": "Workflow_GetCapabilities", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DynamicValues" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "type": "string", + "required": true + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "module", + "type": "string" + }, + { + "name": "type", + "in": "query", + "type": "string" + } + ] + } + }, + "/api/v1/_internal/workflow/capabilities": { + "get": { + "operationId": "Workflow_GetCapabilities_V1", + "x-ms-visibility": "internal", + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DynamicValues" + } + } + }, + "parameters": [ + { + "$ref": "#/parameters/ApplicationId" + }, + { + "in": "query", + "name": "template", + "type": "string", + "required": true + }, + { + "in": "query", + "name": "component", + "type": "string" + }, + { + "in": "query", + "name": "module", + "type": "string" + }, + { + "name": "type", + "in": "query", + "type": "string" + } + ] + } + } + }, + "definitions": { + "Action": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Action ID", + "description": "Unique ID of the action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Action Name", + "description": "Display name of the action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Action Type", + "description": "Type of the action.", + "type": "string", + "enum": [ + "EmailAction", + "WebhookAction", + "PowerAutomateAction", + "LogicAppsAction", + "ActionGroupsAction" + ] + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the action.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + } + }, + "required": [ + "type", + "rules" + ], + "discriminator": "type" + }, + "EmailAction": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Email Action ID", + "description": "Unique ID of the email action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Email Action Name", + "description": "Display name of the email action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Email Action Type", + "description": "Type of the email action.", + "type": "string", + "enum": [ + "EmailAction" + ], + "default": "EmailAction", + "x-ms-visibility": "internal" + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the email action.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + } + }, + "required": [ + "type", + "rules" + ], + "discriminator": "type" + }, + "WebhookAction": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Webhook Action ID", + "description": "Unique ID of the webhook action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Webhook Action Name", + "description": "Display name of the webhook action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Webhook Action Type", + "description": "Type of the webhook action.", + "type": "string", + "enum": [ + "WebhookAction" + ], + "default": "WebhookAction", + "x-ms-visibility": "internal" + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the webhook action.", "type": "array", "items": { - "type": "object", - "properties": { - "value": { - "type": "string" - }, - "title": { - "type": "string" - } + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + }, + "url": { + "x-ms-summary": "Webhook URL", + "description": "Callback URL of the webhook.", + "type": "string", + "format": "uri" + } + }, + "required": [ + "type", + "rules", + "url" + ], + "discriminator": "type" + }, + "PowerAutomateAction": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Power Automate Action ID", + "description": "Unique ID of the Power Automate action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Power Automate Action Name", + "description": "Display name of the Power Automate action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Power Automate Action Type", + "description": "Type of the Power Automate action.", + "type": "string", + "enum": [ + "PowerAutomateAction" + ], + "default": "PowerAutomateAction", + "x-ms-visibility": "internal" + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the Power Automate action.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + } + }, + "required": [ + "type", + "rules" + ], + "discriminator": "type" + }, + "LogicAppsAction": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Logic Apps Action ID", + "description": "Unique ID of the Logic Apps action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Logic Apps Action Name", + "description": "Display name of the Logic Apps action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Logic Apps Action Type", + "description": "Type of the Logic Apps action.", + "type": "string", + "enum": [ + "LogicAppsAction" + ], + "default": "LogicAppsAction", + "x-ms-visibility": "internal" + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the Logic Apps action.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + } + }, + "required": [ + "type", + "rules" + ], + "discriminator": "type" + }, + "ActionGroupsAction": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Action Groups Action ID", + "description": "Unique ID of the Action Groups action.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Action Groups Action Name", + "description": "Display name of the Action Groups action.", + "type": "string" + }, + "type": { + "x-ms-summary": "Action Groups Action Type", + "description": "Type of the Action Groups action.", + "type": "string", + "enum": [ + "ActionGroupsAction" + ], + "default": "ActionGroupsAction", + "x-ms-visibility": "internal" + }, + "rules": { + "x-ms-summary": "Rules", + "description": "Unique IDs of the rules that are tied to the Action Groups action.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 1 + } + }, + "required": [ + "type", + "rules" + ], + "discriminator": "type" + }, + "Application": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Application ID", + "description": "Unique ID of the application.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Application Name", + "description": "Display name of the application.", + "type": "string" + }, + "subdomain": { + "x-ms-summary": "Subdomain", + "description": "The URL subdomain of the application.", + "type": "string" + }, + "host": { + "x-ms-summary": "Host", + "description": "The URL host of the application.", + "type": "string" + } + }, + "required": [ + "subdomain", + "host" + ] + }, + "ApplicationCollection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of applications.", + "type": "array", + "items": { + "$ref": "#/definitions/Application" + } + }, + "nextLink": { + "description": "URL to get the next page of applications.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "Device": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device ID", + "description": "Unique ID of the device.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "etag": { + "x-ms-summary": "Device ETag", + "description": "ETag used to prevent conflict in device updates.", + "x-ms-visibility": "internal", + "type": "string" + }, + "displayName": { + "x-ms-summary": "Device Name", + "description": "Display name of the device.", + "type": "string" + }, + "instanceOf": { + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + "simulated": { + "x-ms-summary": "Simulated", + "description": "Whether the device is simulated.", + "type": "boolean" + }, + "approved": { + "x-ms-summary": "Approved", + "description": "Whether the device has been approved to connect to IoT Central.", + "type": "boolean" + }, + "provisioned": { + "x-ms-summary": "Provisioned", + "description": "Whether resources have been allocated for the device.", + "type": "boolean", + "readOnly": true + } + } + }, + "DeviceV1": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device ID", + "description": "Unique ID of the device.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "etag": { + "x-ms-summary": "Device ETag", + "description": "ETag used to prevent conflict in device updates.", + "x-ms-visibility": "internal", + "type": "string" + }, + "displayName": { + "x-ms-summary": "Device Name", + "description": "Display name of the device.", + "type": "string" + }, + "template": { + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + "simulated": { + "x-ms-summary": "Simulated", + "description": "Whether the device is simulated.", + "type": "boolean" + }, + "enabled": { + "x-ms-summary": "Enabled", + "description": "Whether the device connection to IoT Central has been enabled.", + "type": "boolean" + }, + "provisioned": { + "x-ms-summary": "Provisioned", + "description": "Whether resources have been allocated for the device.", + "type": "boolean", + "readOnly": true + } + } + }, + "DeviceCollectionV1": { + "type": "object", + "properties": { + "value": { + "description": "The collection of devices.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceV1" + } + }, + "nextLink": { + "description": "URL to get the next page of devices.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeviceCloudProperties": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCloudProperties", + "parameters": { + "application": { + "parameter": "application" + }, + "instanceOf": { + "parameter": "instanceOf" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCloudProperties", + "parameters": { + "application": { + "parameterReference": "application" + }, + "instanceOf": { + "parameterReference": "instanceOf" + } + } + }, + "x-ms-summary": "Device Cloud Properties", + "description": "Cloud property values associated with the device.", + "type": "object" + }, + "DeviceCommand": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCommand", + "parameters": { + "application": { + "parameter": "application" + }, + "instanceOf": { + "parameter": "instanceOf" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "command_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCommand", + "parameters": { + "application": { + "parameterReference": "application" + }, + "instanceOf": { + "parameterReference": "instanceOf" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "command_name" + } + } + }, + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Command Request ID", + "description": "The request ID of the device command execution.", + "type": "string", + "readOnly": true + }, + "request": { + "x-ms-summary": "Device Command Request Payload", + "description": "The payload for the device command." + }, + "response": { + "x-ms-summary": "Device Command Response Payload", + "description": "The payload of the device command response.", + "readOnly": true + }, + "connectionTimeout": { + "x-ms-summary": "Device Command Connection Timeout", + "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", + "type": "integer", + "minimum": 0, + "maximum": 30 + }, + "responseTimeout": { + "x-ms-summary": "Device Command Response Timeout", + "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", + "type": "integer", + "minimum": 5, + "maximum": 30 + }, + "responseCode": { + "x-ms-summary": "Device Command Response Status", + "description": "The status code of the device command response.", + "type": "integer", + "readOnly": true + } + } + }, + "DeviceCommandV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "capability": { + "parameter": "command_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "capability": { + "parameterReference": "command_name" + } + } + }, + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Command Request ID", + "description": "The request ID of the device command execution.", + "type": "string", + "readOnly": true + }, + "request": { + "x-ms-summary": "Device Command Request Payload", + "description": "The payload for the device command." + }, + "response": { + "x-ms-summary": "Device Command Response Payload", + "description": "The payload of the device command response.", + "readOnly": true + }, + "connectionTimeout": { + "x-ms-summary": "Device Command Connection Timeout", + "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", + "type": "integer", + "minimum": 0, + "maximum": 30 + }, + "responseTimeout": { + "x-ms-summary": "Device Command Response Timeout", + "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", + "type": "integer", + "minimum": 5, + "maximum": 30 + }, + "responseCode": { + "x-ms-summary": "Device Command Response Status", + "description": "The status code of the device command response.", + "type": "integer", + "readOnly": true + } + } + }, + "DeviceComponentCommandV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "command_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "command_name" + } + } + }, + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Command Request ID", + "description": "The request ID of the device command execution.", + "type": "string", + "readOnly": true + }, + "request": { + "x-ms-summary": "Device Command Request Payload", + "description": "The payload for the device command." + }, + "response": { + "x-ms-summary": "Device Command Response Payload", + "description": "The payload of the device command response.", + "readOnly": true + }, + "connectionTimeout": { + "x-ms-summary": "Device Command Connection Timeout", + "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", + "type": "integer", + "minimum": 0, + "maximum": 30 + }, + "responseTimeout": { + "x-ms-summary": "Device Command Response Timeout", + "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", + "type": "integer", + "minimum": 5, + "maximum": 30 + }, + "responseCode": { + "x-ms-summary": "Device Command Response Status", + "description": "The status code of the device command response.", + "type": "integer", + "readOnly": true + } + } + }, + "DeviceModuleCommandV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "capability": { + "parameter": "command_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "module": { + "parameterReference": "module" + }, + "capability": { + "parameterReference": "command_name" + } + } + }, + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Command Request ID", + "description": "The request ID of the device command execution.", + "type": "string", + "readOnly": true + }, + "request": { + "x-ms-summary": "Device Command Request Payload", + "description": "The payload for the device command." + }, + "response": { + "x-ms-summary": "Device Command Response Payload", + "description": "The payload of the device command response.", + "readOnly": true + }, + "connectionTimeout": { + "x-ms-summary": "Device Command Connection Timeout", + "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", + "type": "integer", + "minimum": 0, + "maximum": 30 + }, + "responseTimeout": { + "x-ms-summary": "Device Command Response Timeout", + "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", + "type": "integer", + "minimum": 5, + "maximum": 30 + }, + "responseCode": { + "x-ms-summary": "Device Command Response Status", + "description": "The status code of the device command response.", + "type": "integer", + "readOnly": true + } + } + }, + "DeviceModuleComponentCommandV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "command_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceCommand_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "module": { + "parameterReference": "module" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "command_name" + } + } + }, + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Command Request ID", + "description": "The request ID of the device command execution.", + "type": "string", + "readOnly": true + }, + "request": { + "x-ms-summary": "Device Command Request Payload", + "description": "The payload for the device command." + }, + "response": { + "x-ms-summary": "Device Command Response Payload", + "description": "The payload of the device command response.", + "readOnly": true + }, + "connectionTimeout": { + "x-ms-summary": "Device Command Connection Timeout", + "description": "Connection timeout in seconds to wait for a disconnected device to come online. Defaults to 0 seconds.", + "type": "integer", + "minimum": 0, + "maximum": 30 + }, + "responseTimeout": { + "x-ms-summary": "Device Command Response Timeout", + "description": "Response timeout in seconds to wait for a command completion on a device. Defaults to 30 seconds.", + "type": "integer", + "minimum": 5, + "maximum": 30 + }, + "responseCode": { + "x-ms-summary": "Device Command Response Status", + "description": "The status code of the device command response.", + "type": "integer", + "readOnly": true + } + } + }, + "DeviceProperties": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceProperties", + "parameters": { + "application": { + "parameter": "application" + }, + "instanceOf": { + "parameter": "instanceOf" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceProperties", + "parameters": { + "application": { + "parameterReference": "application" + }, + "instanceOf": { + "parameterReference": "instanceOf" + } + } + }, + "x-ms-summary": "Device Properties", + "description": "Property values associated with the device.", + "type": "object" + }, + "DevicePropertiesV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceProperties_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceProperties_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + } + } + }, + "x-ms-summary": "Device Properties", + "description": "Property values associated with the device.", + "type": "object" + }, + "ModulePropertiesV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceProperties_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceProperties_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "module": { + "parameterReference": "module" + } + } + }, + "x-ms-summary": "Module Properties", + "description": "Property values associated with the module.", + "type": "object" + }, + "DeviceTelemetry": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceTelemetry", + "parameters": { + "application": { + "parameter": "application" + }, + "instanceOf": { + "parameter": "instanceOf" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "telemetry_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceTelemetry", + "parameters": { + "application": { + "parameterReference": "application" + }, + "instanceOf": { + "parameterReference": "instanceOf" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "telemetry_name" + } + } + }, + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Value", + "description": "The last known value of this device telemetry." + }, + "timestamp": { + "x-ms-summary": "Timestamp", + "description": "String-formatted date representing the time when the telemetry value was sent.", + "type": "string", + "format": "date-time" + } + } + }, + "DeviceTelemetryV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "capability": { + "parameter": "telemetry_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "capability": { + "parameterReference": "telemetry_name" + } + } + }, + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Value", + "description": "The last known value of this device telemetry." + }, + "timestamp": { + "x-ms-summary": "Timestamp", + "description": "String-formatted date representing the time when the telemetry value was sent.", + "type": "string", + "format": "date-time" + } + } + }, + "DeviceComponentTelemetryV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "telemetry_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "telemetry_name" + } + } + }, + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Value", + "description": "The last known value of this device telemetry." + }, + "timestamp": { + "x-ms-summary": "Timestamp", + "description": "String-formatted date representing the time when the telemetry value was sent.", + "type": "string", + "format": "date-time" + } + } + }, + "DeviceModuleTelemetryV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "capability": { + "parameter": "telemetry_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "module": { + "parameterReference": "module" + }, + "capability": { + "parameterReference": "telemetry_name" + } + } + }, + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Value", + "description": "The last known value of this device telemetry." + }, + "timestamp": { + "x-ms-summary": "Timestamp", + "description": "String-formatted date representing the time when the telemetry value was sent.", + "type": "string", + "format": "date-time" + } + } + }, + "DeviceModuleComponentTelemetryV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "template": { + "parameter": "template" + }, + "module": { + "parameter": "module" + }, + "component": { + "parameter": "component_name" + }, + "capability": { + "parameter": "telemetry_name" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_DeviceTelemetry_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "template": { + "parameterReference": "template" + }, + "module": { + "parameterReference": "module" + }, + "component": { + "parameterReference": "component_name" + }, + "capability": { + "parameterReference": "telemetry_name" + } + } + }, + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Value", + "description": "The last known value of this device telemetry." + }, + "timestamp": { + "x-ms-summary": "Timestamp", + "description": "String-formatted date representing the time when the telemetry value was sent.", + "type": "string", + "format": "date-time" + } + } + }, + "DeviceTemplate": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device Template ID", + "description": "Unique ID of the device template.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "etag": { + "x-ms-summary": "Device Template ETag", + "description": "ETag used to prevent conflict in device template updates.", + "x-ms-visibility": "internal", + "type": "string" + }, + "types": { + "x-ms-summary": "Device Template Types", + "description": "The types of device to which this template applies.", + "type": "array", + "items": { + "type": "string" + } + }, + "displayName": { + "x-ms-summary": "Device Template Name", + "description": "Display name of the device template.", + "type": "string" + }, + "description": { + "x-ms-summary": "Device Template Description", + "description": "Detailed description of the device template.", + "type": "string" + } + }, + "required": [ + "types" + ] + }, + "DeviceTemplateV1": { + "type": "object", + "properties": { + "@id": { + "x-ms-summary": "Device Template ID", + "description": "Unique ID of the device template.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "etag": { + "x-ms-summary": "Device Template ETag", + "description": "ETag used to prevent conflict in device template updates.", + "x-ms-visibility": "internal", + "type": "string" + }, + "@type": { + "x-ms-summary": "Device Template Types", + "description": "The JSON-LD types of this device template.", + "type": "array", + "items": { + "type": "string" + } + }, + "displayName": { + "x-ms-summary": "Device Template Name", + "description": "Display name of the device template.", + "type": "string" + }, + "description": { + "x-ms-summary": "Device Template Description", + "description": "Detailed description of the device template.", + "type": "string" + }, + "capabilityModel": { + "x-ms-summary": "Device Template Capability Model", + "description": "The capability model utilized by this device template." + } + }, + "required": [ + "@type" + ] + }, + "DeviceTemplateCollection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of device templates.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceTemplate" + } + }, + "nextLink": { + "description": "URL to get the next page of device templates.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "DeviceTemplateCollectionV1": { + "type": "object", + "properties": { + "value": { + "description": "The collection of device templates.", + "type": "array", + "items": { + "$ref": "#/definitions/DeviceTemplateV1" + } + }, + "nextLink": { + "description": "URL to get the next page of device templates.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "RoleV1": { + "type": "object", + "properties": { + "id": { + "description": "Unique ID of the role.", + "type": "string", + "readOnly": true + }, + "displayName": { + "description": "Display name of the role.", + "type": "string" + } + } + }, + "RoleCollectionV1": { + "type": "object", + "properties": { + "value": { + "description": "The collection of roles.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleV1" + } + } + }, + "required": [ + "value" + ] + }, + "Rule": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Rule ID", + "description": "Unique ID of the rule.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "displayName": { + "x-ms-summary": "Rule Name", + "description": "Display name of the rule.", + "type": "string" + } + } + }, + "RuleCollection": { + "type": "object", + "properties": { + "value": { + "description": "The collection of rules.", + "type": "array", + "items": { + "$ref": "#/definitions/Rule" + } + }, + "nextLink": { + "description": "URL to get the next page of rules.", + "type": "string" + } + }, + "required": [ + "value" + ] + }, + "UserV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_User_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "user_type": { + "parameter": "user_type" + }, + "patch": false + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_User_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "user_type": { + "parameterReference": "user_type" + }, + "patch": { + "value": false + } + } + }, + "type": "object" + }, + "UserPatchV1": { + "x-ms-dynamic-schema": { + "operationId": "Schema_User_V1", + "parameters": { + "application": { + "parameter": "application" + }, + "user_type": { + "parameter": "user_type" + }, + "patch": true + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_User_V1", + "parameters": { + "application": { + "parameterReference": "application" + }, + "user_type": { + "parameterReference": "user_type" + }, + "patch": { + "value": true + } + } + }, + "type": "object" + }, + "UserStaticV1": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "User ID", + "description": "Unique ID of the user.", + "type": "string", + "readOnly": true + }, + "type": { + "x-ms-summary": "User type", + "description": "Type of the user.", + "type": "string", + "readOnly": true + }, + "roles": { + "x-ms-summary": "Roles", + "description": "List of role assignments that specify the permissions to access the application.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleAssignmentV1" + }, + "minItems": 1 + } + }, + "required": [ + "roles" + ] + }, + "EmailUserV1": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "User ID", + "description": "Unique ID of the user.", + "type": "string", + "readOnly": true + }, + "type": { + "x-ms-summary": "User type", + "description": "Type of the user.", + "type": "string", + "enum": [ + "email" + ], + "default": "email", + "x-ms-visibility": "internal" + }, + "roles": { + "x-ms-summary": "Roles", + "description": "List of role assignments that specify the permissions to access the application.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleAssignmentV1" + }, + "minItems": 1 + }, + "email": { + "x-ms-summary": "User email", + "description": "Email address of the user.", + "type": "string", + "format": "email" + } + }, + "required": [ + "type", + "roles", + "email" + ] + }, + "ServicePrincipalUserV1": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "User ID", + "description": "Unique ID of the user.", + "type": "string", + "readOnly": true + }, + "type": { + "x-ms-summary": "User type", + "description": "Type of the user.", + "type": "string", + "enum": [ + "servicePrincipal" + ], + "default": "servicePrincipal", + "x-ms-visibility": "internal" + }, + "roles": { + "x-ms-summary": "Roles", + "description": "List of role assignments that specify the permissions to access the application.", + "type": "array", + "items": { + "$ref": "#/definitions/RoleAssignmentV1" + }, + "minItems": 1 + }, + "tenantId": { + "x-ms-summary": "Tenant ID", + "description": "The AAD tenant ID of the service principal.", + "type": "string" + }, + "objectId": { + "x-ms-summary": "Object ID", + "description": "The AAD object ID of the service principal.", + "type": "string" + } + }, + "required": [ + "type", + "roles", + "tenantId", + "objectId" + ] + }, + "UserCollectionV1": { + "type": "object", + "properties": { + "value": { + "x-ms-summary": "Users", + "description": "The collection of users.", + "type": "array", + "items": { + "$ref": "#/definitions/UserStaticV1" + } + } + }, + "required": [ + "value" + ] + }, + "RoleAssignmentV1": { + "type": "object", + "properties": { + "role": { + "x-ms-summary": "Role", + "description": "ID of the role for this role assignment.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "Roles_List_V1", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + } + }, + "required": [ + "role" + ] + }, + "WebhookActionDevice": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Device ID", + "description": "Unique ID of the device.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "etag": { + "x-ms-summary": "Device ETag", + "description": "ETag used to prevent conflict in device updates.", + "x-ms-visibility": "internal", + "type": "string" + }, + "displayName": { + "x-ms-summary": "Device Name", + "description": "Display name of the device.", + "type": "string" + }, + "instanceOf": { + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" + } + } + } + }, + "simulated": { + "x-ms-summary": "Simulated", + "description": "Whether the device is simulated.", + "type": "boolean" + }, + "approved": { + "x-ms-summary": "Approved", + "description": "Whether the device has been approved to connect to IoT Central.", + "type": "boolean" + }, + "provisioned": { + "x-ms-summary": "Provisioned", + "description": "Whether resources have been allocated for the device.", + "type": "boolean", + "readOnly": true + }, + "cloudProperties": { + "x-ms-summary": "Cloud Properties", + "description": "Cloud properties that triggered the webhook.", + "type": "object" + }, + "properties": { + "x-ms-summary": "Properties", + "description": "Device properties that triggered the webhook.", + "type": "object" + }, + "telemetry": { + "x-ms-summary": "Telemetry", + "description": "Device telemetry that triggered the webhook.", + "type": "object" + } + } + }, + "WebhookActionBody": { + "x-ms-dynamic-schema": { + "operationId": "Schema_WebhookActionBody", + "parameters": { + "application": { + "parameter": "application" + }, + "rule": { + "parameter": "rule" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "Schema_WebhookActionBody", + "parameters": { + "application": { + "parameterReference": "application" + }, + "rule": { + "parameterReference": "body/rule" + } + } + }, + "type": "object", + "properties": { + "action": { + "x-ms-summary": "Webhook Action", + "description": "Action that triggered the webhook.", + "$ref": "#/definitions/Action" + }, + "application": { + "x-ms-summary": "Webhook Application", + "description": "Application that triggered the webhook.", + "$ref": "#/definitions/Application" + }, + "device": { + "x-ms-summary": "Webhook Device", + "description": "Device that triggered the webhook.", + "$ref": "#/definitions/WebhookActionDevice" + }, + "rule": { + "x-ms-summary": "Webhook Rule", + "description": "Rule that triggered the webhook.", + "$ref": "#/definitions/Rule" + }, + "timestamp": { + "x-ms-summary": "Webhook Timespamp", + "description": "Timestamp at which the webhook was triggered.", + "type": "string", + "format": "date-time" + } + }, + "required": [ + "action", + "application", + "device", + "rule", + "timestamp" + ] + }, + "WorkflowTrigger": { + "type": "object", + "properties": { + "id": { + "x-ms-summary": "Workflow Trigger ID", + "description": "Unique ID of the workflow trigger.", + "x-ms-visibility": "advanced", + "type": "string", + "readOnly": true + }, + "rule": { + "x-ms-summary": "Rule", + "description": "Unique ID of the rule that is tied to the workflow trigger.", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "Rules_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" } + } + } + }, + "url": { + "x-ms-notification-url": true, + "x-ms-summary": "Workflow Trigger URL", + "description": "Callback URL of the workflow Trigger.", + "type": "string", + "format": "uri", + "x-ms-visibility": "internal" + } + }, + "required": [ + "rule", + "url" + ] + }, + "DynamicValues": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "title": { + "type": "string" + } + } + } + } + }, + "parameters": { + "ApplicationId": { + "in": "query", + "name": "application", + "x-ms-summary": "Application", + "description": "Unique ID of the application.", + "x-ms-visibility": "important", + "type": "string", + "required": true, + "x-ms-dynamic-values": { + "operationId": "Applications_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value" + } + }, + "DeviceId": { + "in": "path", + "name": "device_id", + "x-ms-summary": "Device", + "description": "Unique ID of the device.", + "x-ms-visibility": "important", + "type": "string", + "required": true + }, + "TemplateId": { + "in": "query", + "name": "instanceOf", + "x-ms-summary": "Device Template", + "description": "The device template definition for the device.", + "x-ms-visibility": "important", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "DeviceTemplates_List", + "value-path": "id", + "value-title": "displayName", + "value-collection": "value", + "parameters": { + "application": { + "parameter": "application" } + } } + }, + "UserType": { + "in": "query", + "name": "user_type", + "x-ms-visibility": "important", + "x-ms-summary": "User type", + "description": "Type of the user.", + "type": "string", + "enum": [ + "email", + "servicePrincipal" + ], + "x-ms-enum-values": [ + { + "displayName": "Email", + "value": "email" + }, + { + "displayName": "Service principal", + "value": "servicePrincipal" + } + ] + } } } diff --git a/certified-connectors/AzureIoTCentral/apiProperties.json b/certified-connectors/AzureIoTCentral/apiProperties.json index b3585d51c3..8fe01d8b3d 100644 --- a/certified-connectors/AzureIoTCentral/apiProperties.json +++ b/certified-connectors/AzureIoTCentral/apiProperties.json @@ -40,6 +40,20 @@ } }, "iconBrandColor": "#f2f2f2", - "publisher": "Microsoft Corporation" + "policyTemplateInstances": [ + { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "DeviceTemplates_List_V1", + "Devices_List_V1" + ], + "x-ms-apimTemplateParameter.nextLinkPropertyName": "nextLink" + }, + "templateId": "updatenextlink", + "title": "Updates next link to make pagination work" + } + ], + "publisher": "Microsoft Corporation", + "stackOwner": "Microsoft Corporation" } -} \ No newline at end of file +} From f01f692cff00484dc0c9d59fda12eac003adf581 Mon Sep 17 00:00:00 2001 From: VSagar21 <91666311+VSagar21@users.noreply.github.com> Date: Thu, 28 Oct 2021 01:40:14 +0530 Subject: [PATCH 093/219] Updated properties file (#1214) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * The Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows Power Automate Flows to get work from the Enate platform, edit the data, add/download files, update the Enate platform and subscribe to the webhook triggers. We can also create new work items on the Enate platform using these actions in the connector. The Enate Connector allows seamless integration with Enate’s enterprise workflow engine. It allows Power Automate Flows to get work from the Enate platform, edit the data, add/download files, update the Enate platform and subscribe to the webhook triggers. We can also create new work items on the Enate platform using these actions in the connector. * Updated contents with screenshots * Updated definition file as per comments from PA team * Updated properties file with background color code Updated properties file with background color code * Update as per review comments from PA team Update as per review comments from PA team --- certified-connectors/Enate/apiDefinition.swagger.json | 6 +++--- certified-connectors/Enate/apiProperties.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/certified-connectors/Enate/apiDefinition.swagger.json b/certified-connectors/Enate/apiDefinition.swagger.json index 4a6286d0c2..8a556a3164 100644 --- a/certified-connectors/Enate/apiDefinition.swagger.json +++ b/certified-connectors/Enate/apiDefinition.swagger.json @@ -2568,7 +2568,7 @@ "items": { "type": "string", "description": "Name of the Contract to be filtered", - "title": "" + "title": "ContractNamesFilter" }, "description": "ContractNamesFilter" }, @@ -2577,7 +2577,7 @@ "items": { "type": "string", "description": "Name of the Customer to be filtered", - "title": "" + "title": "CustomerNamesFilter" }, "description": "CustomerNamesFilter" }, @@ -2586,7 +2586,7 @@ "items": { "type": "string", "description": "Name of the Service to be filtered", - "title": "" + "title": "ServiceNamesFilter" }, "description": "ServiceNamesFilter" } diff --git a/certified-connectors/Enate/apiProperties.json b/certified-connectors/Enate/apiProperties.json index 76ee9532ef..e499aeaa6b 100644 --- a/certified-connectors/Enate/apiProperties.json +++ b/certified-connectors/Enate/apiProperties.json @@ -1,7 +1,7 @@ { "properties": { "connectionParameters": {}, - "iconBrandColor": "#FDFCFB", + "iconBrandColor": "#df6033", "capabilities": [], "policyTemplateInstances": [ { From 54a50fda06ddd92c605778ac21adce326ec823bd Mon Sep 17 00:00:00 2001 From: duncanbinger <87135061+duncanbinger@users.noreply.github.com> Date: Thu, 28 Oct 2021 23:05:19 +0200 Subject: [PATCH 094/219] fixed icon propery color (#1228) --- certified-connectors/BuildingMindsTwin/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/BuildingMindsTwin/apiProperties.json b/certified-connectors/BuildingMindsTwin/apiProperties.json index df48f74094..54671a582b 100755 --- a/certified-connectors/BuildingMindsTwin/apiProperties.json +++ b/certified-connectors/BuildingMindsTwin/apiProperties.json @@ -28,7 +28,7 @@ } } }, - "iconBrandColor": "#428e92", + "iconBrandColor": "#006064", "capabilities": [], "publisher": "BuildingMinds", "stackowner": "BuildingMinds" From f82b0db5b9efaa2067425b8cd8181408d208ff14 Mon Sep 17 00:00:00 2001 From: Stijn Nooijen <56258608+StijnKing@users.noreply.github.com> Date: Fri, 29 Oct 2021 00:43:24 +0200 Subject: [PATCH 095/219] Eduframe: Update definition and add catalog variants (#1224) * Update definition and add catalog variants * Move publisher property to apiProperties file --- certified-connectors/Eduframe/Readme.md | 1 + .../Eduframe/apiDefinition.swagger.json | 1035 ++++++++++------- .../Eduframe/apiProperties.json | 4 +- 3 files changed, 592 insertions(+), 448 deletions(-) diff --git a/certified-connectors/Eduframe/Readme.md b/certified-connectors/Eduframe/Readme.md index d2b0d4ba18..bfd3a18378 100644 --- a/certified-connectors/Eduframe/Readme.md +++ b/certified-connectors/Eduframe/Readme.md @@ -31,4 +31,5 @@ The connector supports the following operations: * `Get a invoice`: Get a invoice by id. * `List all invoice vats`: List all the invoice vats in the administration. * `Add a invoice vat`: Add an invoice vat to your administration. +* `List all catalog variants`: List all the catalog variants in the administration. * `List all labels`: List all the labels in the administration. diff --git a/certified-connectors/Eduframe/apiDefinition.swagger.json b/certified-connectors/Eduframe/apiDefinition.swagger.json index f32f49806b..9650147c83 100644 --- a/certified-connectors/Eduframe/apiDefinition.swagger.json +++ b/certified-connectors/Eduframe/apiDefinition.swagger.json @@ -4,8 +4,26 @@ "version": "1.0", "description": "Eduframe is a complete solution for commercial training providers & business schools to attract more students, manage & automate the course administration, and deliver the ultimate learning experience. Eduframe seamlessly integrates with Canvas LMS. The connector opens up the opportunity to easily integrate your existing software applications with Eduframe, like your CRM and accounting software.", "title": "Eduframe", - "x-copyright": null + "contact": { + "name": "Eduframe Development Team", + "url": "https://eduframe.co", + "email": "dev@drieam.nl" + } }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://eduframe.co" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://drieam.com/security-and-privacy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ], "basePath": "/api/v1", "produces": [], "security": [ @@ -40,7 +58,7 @@ }, "email": { "type": "string", - "description": "A string representing the billing e-mail of the account" + "description": "A string representing the billing e-mail of the account." }, "account_type": { "type": "string", @@ -54,6 +72,10 @@ "address": { "$ref": "#/definitions/address" }, + "phone": { + "type": "string", + "description": "A string representing the phone number of the account." + }, "updated_at": { "type": "string", "description": "Timestamp of last update.", @@ -63,6 +85,14 @@ "type": "string", "description": "Timestamp of creation.", "readOnly": true + }, + "signup_answers": { + "type": "array", + "items": { + "$ref": "#/definitions/customField" + }, + "description": "List of signup answers for this account.", + "readOnly": true } }, "additionalProperties": false @@ -123,6 +153,28 @@ }, "additionalProperties": false }, + "customField": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "Unique identifier of the signup answer.", + "readOnly": true + }, + "value": { + "type": "string", + "description": "The formatted value of the answer." + }, + "signup_question_id": { + "type": "integer", + "format": "int64", + "description": "Unique identifier of the question.", + "readOnly": true + } + }, + "additionalProperties": false + }, "category": { "type": "object", "required": [ @@ -148,7 +200,8 @@ "slug": { "type": "string", "description": "Friendly identifier of a category.", - "x-ms-visibility": "advanced" + "x-ms-visibility": "internal", + "readOnly": true }, "position": { "description": "Sorting position of the category. Lower is higher.", @@ -158,7 +211,12 @@ "parent_id": { "description": "Unique identifier of the parent category", "type": "number", - "x-ms-visibility": "advanced" + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "Get_categories", + "value-path": "id", + "value-title": "name" + } }, "avatar": { "description": "URL to the category avatar.", @@ -168,7 +226,9 @@ "is_published": { "title": "Published", "description": "If the category should be published on the website.", - "type": "boolean" + "type": "boolean", + "x-ms-visibility": "advanced", + "default": true }, "courses_count": { "description": "Number of courses directly linked to this category.", @@ -183,12 +243,12 @@ "meta_title": { "description": "The meta title of the category, used for SEO (Search Engine Optimisation) purposes.", "type": "string", - "x-ms-visibility": "advanced" + "x-ms-visibility": "internal" }, "meta_description": { "description": "The meta description of the category, used for SEO (Search Engine Optimisation) purposes.", "type": "string", - "x-ms-visibility": "advanced" + "x-ms-visibility": "internal" }, "updated_at": { "description": "Timestamp of last update.", @@ -199,31 +259,27 @@ "description": "Timestamp of creation.", "type": "string", "readOnly": true + }, + "avatar_url": { + "description": "URL to a resized avatar image (300x200^).", + "type": "string", + "readOnly": true } } }, "course": { "type": "object", "required": [ - "id", "category_id", - "position", - "starting_price", - "signup_url", - "slug", - "slug_history", - "avatar", - "website_url", "name", - "code", - "updated_at", - "created_at" + "code" ], "properties": { "id": { "type": "integer", "format": "int64", - "description": "Unique identifier of the course" + "description": "Unique identifier of the course", + "readOnly": true }, "name": { "type": "string", @@ -231,66 +287,79 @@ }, "position": { "type": "number", - "description": "Sorting position of the course. Lower is higher." + "description": "Sorting position of the course. Lower is higher.", + "x-ms-visibility": "advanced" }, "starting_price": { "type": "string", - "description": "Lowest price of all of its planned courses." + "description": "Lowest price of all of its planned courses.", + "x-ms-visibility": "internal" }, "signup_url": { "type": "string", - "description": "URL to the signup page for this course." + "description": "URL to the signup page for this course.", + "readOnly": true }, "slug": { "type": "string", - "description": "Human readable identifier, unique per educator." + "description": "Human readable identifier, unique per educator.", + "x-ms-visibility": "internal", + "readOnly": true }, "slug_history": { "type": "array", "items": { "type": "string" }, - "description": "List of old slugs, old calls will be redirected." + "description": "List of old slugs, old calls will be redirected.", + "readOnly": true, + "x-ms-visibility": "internal" }, "avatar": { "type": "string", - "description": "URL to the original avatar image file." + "description": "URL to a resized avatar image (300x200^).", + "readOnly": true + }, + "avatar_thumb_url": { + "type": "string", + "description": "URL to a resized avatar image (748x296^).", + "readOnly": true, + "x-ms-visibility": "internal" }, "website_url": { "type": "string", - "description": "Expected URL of the course on the educator website." + "description": "Expected URL of the course on the educator website.", + "readOnly": true, + "x-ms-visibility": "internal" }, "certificate_template_id": { "type": "number", - "description": "Identifier of the optionally linked certificate template." + "description": "Identifier of the optionally linked certificate template.", + "x-ms-visibility": "advanced" }, "category_id": { + "title": "Category", "type": "number", - "description": "Identifier of the category of the course." + "description": "Identifier of the category of the course.", + "x-ms-dynamic-values": { + "operationId": "Get_categories", + "value-path": "id", + "value-title": "name" + } }, "code": { "type": "string", "description": "The code of the course." }, - "duration": { - "type": "string", - "description": "The duration of the course." - }, - "level": { - "type": "string", - "description": "A string indicating the level of the course." - }, "meta_title": { "type": "string", - "description": "Meta title of the course for SEO purposes." + "description": "Meta title of the course for SEO purposes.", + "x-ms-visibility": "internal" }, "meta_description": { "type": "string", - "description": "Meta description of the course for SEO purposes." - }, - "result": { - "type": "string", - "description": "The result of the course" + "description": "Meta description of the course for SEO purposes.", + "x-ms-visibility": "internal" }, "cost": { "type": "string", @@ -308,23 +377,18 @@ }, "is_published": { "type": "boolean", - "description": "Boolean representing the publishable status of the course." - }, - "program": { - "type": "string", - "description": "The value of the property." - }, - "conditions": { - "type": "string", - "description": "The conditions of the course." + "description": "Boolean representing the publishable status of the course.", + "default": true }, "updated_at": { "type": "string", - "description": "Timestamp of last update." + "description": "Timestamp of last update.", + "readOnly": true }, "created_at": { "type": "string", - "description": "Timestamp of creation." + "description": "Timestamp of creation.", + "readOnly": true } }, "additionalProperties": false @@ -378,13 +442,14 @@ "type": "array", "items": { "$ref": "#/definitions/label" - } + }, + "readOnly": true }, "slug": { "description": "The human readable unique identifier, you can also use this to fetch the user.", "type": "string", "readOnly": true, - "x-ms-visibility": "advanced" + "x-ms-visibility": "internal" }, "wants_newsletter": { "title": "Subscribe for newsletter", @@ -398,6 +463,19 @@ "type": "boolean", "x-ms-visibility": "advanced" }, + "locale": { + "type": "string", + "enum": [ + "nl", + "en", + "is", + "es", + "en-US", + "en_GB" + ], + "description": "The locale of the user.", + "x-ms-visibility": "advanced" + }, "address": { "$ref": "#/definitions/address" }, @@ -413,6 +491,7 @@ "teacher_headline": { "description": "Short description of the user.", "type": "string", + "readOnly": true, "x-ms-visibility": "internal" }, "description": { @@ -423,6 +502,7 @@ "teacher_description": { "description": "Long description of the user. (same as description)", "type": "string", + "readOnly": true, "x-ms-visibility": "internal" }, "avatar_url": { @@ -431,6 +511,17 @@ "type": "string", "readOnly": true }, + "notes_user": { + "type": "string", + "description": "Short note about the user.", + "x-ms-visibility": "internal" + }, + "teacher_enrollments_count": { + "type": "number", + "description": "Number of assigned planned courses as a teacher.", + "readOnly": true, + "x-ms-visibility": "internal" + }, "updated_at": { "description": "Timestamp of last update.", "type": "string", @@ -459,6 +550,11 @@ "description": "Unique identifier of the invoice.", "readOnly": true }, + "reference_id": { + "description": "Reference id of the Invoice. Is used to find the invoice.", + "type": "string", + "readOnly": true + }, "account_id": { "title": "Account", "type": "number", @@ -501,6 +597,12 @@ "description": "The date when the invoice status was changed to open.", "readOnly": true }, + "invoice_set_id": { + "title": "Invoice set", + "type": "number", + "description": "Add this invoice to an invoice set by giving the identifier of the invoice set.", + "x-ms-visibility": "internal" + }, "description": { "type": "string", "description": "Human readable description of the invoice.", @@ -531,6 +633,11 @@ "description": "The total cost of the invoice excluding VAT.", "readOnly": true }, + "total_open": { + "type": "string", + "description": "The open cost of the invoice including VAT.", + "readOnly": true + }, "pdf_url": { "type": "string", "description": "Url to the download path of the invoice in PDF format.", @@ -555,7 +662,8 @@ "type": "array", "items": { "$ref": "#/definitions/invoice_item" - } + }, + "readOnly": true }, "updated_at": { "type": "string", @@ -610,6 +718,16 @@ "value-title": "name" } }, + "catalog_variant_id": { + "title": "Catalog Variant", + "type": "number", + "description": "Identifier of the catalog variant.", + "x-ms-dynamic-values": { + "operationId": "Get_catalog_variants", + "value-path": "id", + "value-title": "name" + } + }, "updated_at": { "description": "Timestamp of last update.", "type": "string", @@ -648,6 +766,80 @@ }, "additionalProperties": false }, + "catalog_variant": { + "type": "object", + "properties": { + "id": { + "type": "number", + "description": "Unique identifier of the catalog variant", + "readOnly": true + }, + "product_id": { + "type": "number", + "description": "Unique identifier of the catalog product", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the course." + }, + "cost_scheme": { + "type": "string", + "enum": [ + "student", + "order", + "tbd", + "free" + ], + "description": "How should the catalog variant be paid by default." + }, + "cost": { + "type": "string", + "description": "The price to be paid for this catalog variant." + }, + "currency": { + "type": "string", + "enum": [ + "EUR", + "ISK", + "USD", + "GBP" + ], + "description": "The currency of the catalog variant." + }, + "variantable_type": { + "type": "string", + "enum": [ + "PlannedCourse", + "Program::Edition" + ], + "description": "The currency of the invoice." + }, + "variantable_id": { + "type": "number", + "description": "Unique identifier of the variantable.", + "readOnly": true + }, + "updated_at": { + "type": "string", + "description": "Timestamp of last update.", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "Timestamp of creation.", + "readOnly": true + }, + "is_published": { + "title": "Published", + "description": "If the category should be published on the website.", + "type": "boolean", + "x-ms-visibility": "advanced", + "default": true + } + }, + "additionalProperties": false + }, "label": { "type": "object", "required": [ @@ -664,17 +856,25 @@ "name": { "title": "Name", "type": "string", - "description": "The name of the label" + "description": "The name of the label." }, "color": { "title": "Color", "type": "string", - "description": "Hex code of the color of the label" + "description": "Hex code of the color of the label." }, "model_type": { "title": "Model", "type": "string", - "description": "The model type for which this label is made available" + "enum": [ + "Lead", + "Order", + "Catalog::Product", + "User", + "Account", + "Teacher" + ], + "description": "The model type for which this label is made available." }, "updated_at": { "type": "string", @@ -691,102 +891,131 @@ }, "webhook": { "type": "object", + "required": [ + "url", + "events" + ], "properties": { "id": { - "type": "number", - "description": "Unique identifier of the webhook." - }, - "plugin_id": { - "type": "number", - "description": "Unique identifier of the linked plugin." + "type": "string", + "description": "Unique identifier of the webhook. (a UUID).", + "readOnly": true }, "url": { "type": "string", - "description": "The callback url for Eduframe to send a HTTP POST payload to." + "description": "The callback url for Eduframe to send a HTTP POST payload to.", + "x-ms-visibility": "internal" }, "active": { "type": "boolean", - "description": "State of webhook." + "description": "State of webhook.", + "default": true }, - "webhook_triggers": { - "type": "array", + "events": { "items": { - "type": "object", - "required": [ - "event", - "klass" - ], - "properties": { - "id": { - "type": "number", - "description": "Unique identifier for the Webhook Trigger" - }, - "event": { - "type": "string", - "enum": [ - "update", - "create" - ], - "description": "On which event Webhook will be fired" - }, - "klass": { - "type": "string", - "enum": [ - "Category", - "Course", - "Educator", - "Enrollment", - "Lead", - "Meeting", - "MeetingLocation", - "Order", - "Payment", - "PlannedCourse", - "Plugins::EducatorPlugin", - "Invoice", - "InvoiceItem", - "Settings::CourseLocation", - "Settings::CourseVariant", - "Settings::InvoiceVat", - "TeacherEnrollment", - "User" - ], - "description": "On which klass event be caught" - }, - "updated_at": { - "type": "string", - "description": "Timestamp of last update" - }, - "created_at": { - "type": "string", - "description": "Timestamp of creation" - } - }, - "additionalProperties": false - } + "type": "string", + "enum": [ + "account.created", + "account.deleted", + "account.updated", + "category.created", + "category.deleted", + "category.updated", + "course.created", + "course.deleted", + "course.updated", + "course_location.created", + "course_location.deleted", + "course_location.updated", + "course_variant.created", + "course_variant.deleted", + "course_variant.updated", + "educator.created", + "educator.deleted", + "educator.updated", + "enrollment.created", + "enrollment.deleted", + "enrollment.updated", + "invoice.created", + "invoice.deleted", + "invoice.updated", + "invoice_vat.created", + "invoice_vat.deleted", + "invoice_vat.updated", + "lead.created", + "lead.deleted", + "lead.updated", + "meeting.created", + "meeting.deleted", + "meeting.updated", + "meeting.teacher_attendees_changed", + "meeting_location.created", + "meeting_location.deleted", + "meeting_location.updated", + "order.created", + "order.deleted", + "order.updated", + "payment.created", + "payment.deleted", + "payment.updated", + "planned_course.created", + "planned_course.deleted", + "planned_course.updated", + "planning_event.created", + "planning_event.deleted", + "planning_event.updated", + "planning_event.teacher_attendees_changed", + "teacher_role.created", + "teacher_role.deleted", + "teacher_role.updated", + "user.created", + "user.deleted", + "user.updated" + ] + }, + "type": "array", + "description": "Array of events that should trigger this webhook." + }, + "updated_at": { + "type": "string", + "description": "Timestamp of last update.", + "readOnly": true + }, + "created_at": { + "type": "string", + "description": "Timestamp of creation.", + "readOnly": true } }, "additionalProperties": false }, "webhook_payload": { "type": "object", - "required": [ - "educator", - "model_type", - "model_id" - ], "properties": { "educator": { - "type": "number", - "description": "Unique identifier of the webhook." + "type": "string", + "description": "Slug of the educator.", + "readOnly": true }, - "model_type": { - "type": "number", - "description": "Unique identifier of the linked plugin." + "event": { + "type": "string", + "description": "Type of event that triggerd the webhook.", + "readOnly": true }, - "model_id": { + "entity_type": { + "type": "string", + "description": "Type of the model that triggerd the webhook.", + "readOnly": true + }, + "entity_id": { "type": "number", - "description": "The callback url for Eduframe to send a HTTP POST payload to." + "description": "Unique identifier of the model that triggerd the webhook.", + "readOnly": true + }, + "tenant_id": { + "type": "string", + "description": "UUID of the educator.", + "readOnly": true } }, "additionalProperties": false @@ -797,7 +1026,7 @@ "post": { "operationId": "Post_accounts", "summary": "Add an account", - "description": "Add a account to your administration", + "description": "Add an account to your administration.", "tags": [ "accounts" ], @@ -820,10 +1049,19 @@ }, "email": { "type": "string", - "description": "A string representing the billing e-mail of the account" + "description": "A string representing the billing e-mail of the account." }, "address_attributes": { "$ref": "#/definitions/address" + }, + "phone": { + "type": "string", + "description": "A string representing the phone number of the account." + }, + "visible": { + "type": "boolean", + "description": "Boolean whether this account should be visible (i.e. business or multiple users or any orders).", + "x-ms-visibility": "internal" } }, "additionalProperties": false @@ -855,20 +1093,6 @@ }, { "$ref": "#/parameters/PerPage" - }, - { - "items": { - "enum": [ - "address", - "labels" - ], - "type": "string" - }, - "type": "array", - "x-ms-summary": "Includes", - "description": "Include relations in the results", - "in": "query", - "name": "include" } ], "responses": { @@ -882,7 +1106,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -894,7 +1118,7 @@ "get": { "operationId": "Get_accounts_id", "summary": "Get an account", - "description": "Get an account by id", + "description": "Get an account by id.", "tags": [ "accounts" ], @@ -910,7 +1134,7 @@ "required": true, "x-ms-url-encoding": "single", "x-ms-summary": "Account id", - "description": "Identifier of the account" + "description": "Identifier of the account." } ], "responses": { @@ -927,7 +1151,7 @@ "post": { "operationId": "Post_categories", "summary": "Add a category", - "description": "Add a category to your administration", + "description": "Add a category to your administration.", "tags": [ "categories" ], @@ -939,59 +1163,7 @@ "in": "body", "name": "body", "schema": { - "type": "object", - "required": [ - "name" - ], - "properties": { - "name": { - "title": "Name", - "type": "string", - "description": "Title of the category." - }, - "description": { - "title": "Description", - "type": "string", - "description": "The description of the category." - }, - "slug": { - "type": "string", - "description": "Friendly identifier of a category.", - "x-ms-visibility": "advanced" - }, - "position": { - "description": "Sorting position of the category. Lower is higher.", - "type": "number", - "x-ms-visibility": "advanced" - }, - "parent_id": { - "title": "Parent", - "description": "The parent category", - "type": "number", - "x-ms-visibility": "advanced", - "x-ms-dynamic-values": { - "operationId": "Get_categories", - "value-path": "id", - "value-title": "name" - } - }, - "is_published": { - "title": "Published", - "description": "If the category should be published on the website.", - "type": "boolean", - "default": false - }, - "meta_title": { - "description": "The meta title of the category, used for SEO (Search Engine Optimisation) purposes.", - "type": "string", - "x-ms-visibility": "advanced" - }, - "meta_description": { - "description": "The meta description of the category, used for SEO (Search Engine Optimisation) purposes.", - "type": "string", - "x-ms-visibility": "advanced" - } - } + "$ref": "#/definitions/category" } } ], @@ -1046,7 +1218,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1074,7 +1246,7 @@ "required": true, "x-ms-url-encoding": "single", "x-ms-summary": "Category Id", - "description": "Identifier of the category" + "description": "Identifier of the category." } ], "responses": { @@ -1091,7 +1263,7 @@ "post": { "operationId": "Post_courses", "summary": "Add a course", - "description": "Add a course to your administration", + "description": "Add a course to your administration.", "tags": [ "courses" ], @@ -1103,86 +1275,7 @@ "in": "body", "name": "body", "schema": { - "type": "object", - "required": [ - "category_id", - "name", - "code" - ], - "properties": { - "category_id": { - "title": "Category", - "type": "number", - "description": "Identifier of the category of the course.", - "x-ms-dynamic-values": { - "operationId": "Get_categories", - "value-path": "id", - "value-title": "name" - } - }, - "name": { - "type": "string", - "description": "The name of the course." - }, - "code": { - "type": "string", - "description": "The code of the course." - }, - "cost_scheme": { - "type": "string", - "enum": [ - "student", - "order", - "tbd", - "free" - ], - "description": "How should the course be paid by default." - }, - "cost": { - "type": "string", - "description": "The price to be paid for this course." - }, - "is_published": { - "type": "boolean", - "description": "Boolean representing the publishable status of the course.", - "default": false - }, - "duration": { - "type": "string", - "description": "The duration of the course.", - "x-ms-visibility": "advanced" - }, - "level": { - "type": "string", - "description": "A string indicating the level of the course.", - "x-ms-visibility": "advanced" - }, - "program": { - "type": "string", - "description": "The value of the property.", - "x-ms-visibility": "advanced" - }, - "conditions": { - "type": "string", - "description": "The conditions of the course.", - "x-ms-visibility": "advanced" - }, - "result": { - "type": "string", - "description": "The result of the course" - }, - "meta_title": { - "type": "string", - "description": "Meta title of the course for SEO purposes.", - "x-ms-visibility": "advanced" - }, - "meta_description": { - "type": "string", - "description": "Meta description of the course for SEO purposes.", - "x-ms-visibility": "advanced" - } - }, - "additionalProperties": false + "$ref": "#/definitions/course" } } ], @@ -1200,7 +1293,7 @@ "summary": "List all courses", "description": "Get all courses.", "tags": [ - "users" + "courses" ], "consumes": [ "application/json" @@ -1237,7 +1330,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1251,7 +1344,7 @@ "summary": "Get a course", "description": "Get a single course by id", "tags": [ - "users" + "courses" ], "consumes": [ "application/json" @@ -1265,7 +1358,7 @@ "required": true, "x-ms-url-encoding": "single", "x-ms-summary": "Course id", - "description": "Identifier of the course" + "description": "Identifier of the course." } ], "responses": { @@ -1282,7 +1375,7 @@ "post": { "operationId": "Post_users", "summary": "Add a user", - "description": "Add a user to your administration", + "description": "Add a user to your administration.", "tags": [ "users" ], @@ -1340,8 +1433,40 @@ "default": true, "x-ms-visibility": "advanced" }, + "locale": { + "type": "string", + "enum": [ + "nl", + "en", + "is", + "es", + "en-US", + "en_GB" + ], + "description": "The locale of the user.", + "x-ms-visibility": "advanced" + }, + "label_ids": { + "type": "array", + "items": { + "type": "number", + "x-ms-dynamic-values": { + "parameters": { + "model_type": "User" + }, + "operationId": "Get_labels", + "value-path": "id", + "value-title": "name" + } + } + }, "address_attributes": { "$ref": "#/definitions/address" + }, + "notes_user": { + "type": "string", + "description": "Short note about the user.", + "x-ms-visibility": "advanced" } }, "additionalProperties": false @@ -1356,7 +1481,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1380,22 +1505,6 @@ { "$ref": "#/parameters/PerPage" }, - { - "items": { - "enum": [ - "address", - "labels", - "signup_answers.signup_question", - "signup_answers" - ], - "type": "string" - }, - "type": "array", - "x-ms-summary": "Includes", - "description": "Include relations in the results", - "in": "query", - "name": "include" - }, { "items": { "enum": [ @@ -1423,7 +1532,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1435,7 +1544,7 @@ "get": { "operationId": "Get_users_id", "summary": "Get a user", - "description": "Get a single user by id", + "description": "Get a single user by id.", "tags": [ "users" ], @@ -1451,23 +1560,7 @@ "required": true, "x-ms-url-encoding": "single", "x-ms-summary": "User id", - "description": "Identifier of the user" - }, - { - "name": "include", - "x-ms-summary": "Includes", - "description": "Include relations in the results", - "in": "query", - "type": "array", - "items": { - "enum": [ - "address", - "labels", - "signup_answers.signup_question", - "signup_answers" - ], - "type": "string" - } + "description": "Identifier of the user." } ], "responses": { @@ -1484,7 +1577,7 @@ "post": { "operationId": "Post_invoices", "summary": "Add an invoice", - "description": "Add an invoice to your administration", + "description": "Add an invoice to your administration.", "tags": [ "invoices" ], @@ -1513,6 +1606,16 @@ "value-title": "name" } }, + "invoice_set_id": { + "title": "Invoice set", + "type": "number", + "description": "Add this invoice to an invoice set by giving the identifier of the invoice set." + }, + "account_name": { + "type": "string", + "description": "The name of the account that is paying. Is copied to the invoice and is thus not automatically updated if the account name changes.", + "x-ms-visibility": "advanced" + }, "currency": { "type": "string", "enum": [ @@ -1539,7 +1642,8 @@ "description": "The note displayed at the bottom of the invoice.", "x-ms-visibility": "advanced" } - } + }, + "additionalProperties": false } } ], @@ -1568,20 +1672,6 @@ }, { "$ref": "#/parameters/PerPage" - }, - { - "items": { - "enum": [ - "invoice_items", - "payments" - ], - "type": "string" - }, - "type": "array", - "x-ms-summary": "Include relations", - "description": "Include relations in the results", - "in": "query", - "name": "include" } ], "responses": { @@ -1595,7 +1685,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1607,7 +1697,7 @@ "get": { "operationId": "Get_invoices_id", "summary": "Get an invoice", - "description": "Get a single invoice by id", + "description": "Get a single invoice by id.", "tags": [ "invoices" ], @@ -1623,20 +1713,7 @@ "required": true, "x-ms-url-encoding": "single", "x-ms-summary": "Invoice id", - "description": "Identifier of the invoice" - }, - { - "name": "include", - "x-ms-summary": "Includes", - "description": "Include relations in the results", - "in": "query", - "type": "array", - "items": { - "enum": [ - "invoice_items" - ], - "type": "string" - } + "description": "Identifier of the invoice." } ], "responses": { @@ -1679,7 +1756,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1689,7 +1766,7 @@ "post": { "operationId": "Post_invoice_vats", "summary": "Add an invoice vat", - "description": "Add an invoice vat which can be used on the invoice", + "description": "Add an invoice vat which can be used on the invoice.", "tags": [ "invoices" ], @@ -1701,22 +1778,7 @@ "name": "body", "in": "body", "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name of the invoice vat." - }, - "percentage": { - "type": "string", - "description": "Number representing the VAT percentage." - } - }, - "additionalProperties": false, - "required": [ - "name", - "percentage" - ] + "$ref": "#/definitions/invoice_vat" } } ], @@ -1730,6 +1792,44 @@ } } }, + "/catalog/variants": { + "get": { + "operationId": "Get_catalog_variants", + "summary": "Get all catalog variants", + "description": "Get all catalog variants.", + "tags": [ + "catalog" + ], + "consumes": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Page" + }, + { + "$ref": "#/parameters/PerPage" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "items": { + "$ref": "#/definitions/catalog_variant" + }, + "type": "array" + }, + "headers": { + "total": { + "description": "Total number of records.", + "type": "integer" + } + } + } + } + } + }, "/labels": { "get": { "operationId": "Get_labels", @@ -1747,6 +1847,21 @@ }, { "$ref": "#/parameters/PerPage" + }, + { + "in": "query", + "name": "model_type", + "type": "string", + "enum": [ + "Lead", + "Order", + "Catalog::Product", + "User", + "Account", + "Teacher" + ], + "description": "Filter labels based on model type.", + "x-ms-summary": "Filter on model type of the label" } ], "responses": { @@ -1760,7 +1875,7 @@ }, "headers": { "total": { - "description": "Total number of records", + "description": "Total number of records.", "type": "integer" } } @@ -1778,7 +1893,7 @@ "post": { "operationId": "Post_webhooks", "summary": "Subscribe to a webhook", - "description": "Subscribe to a webhook to get notified on record updates", + "description": "Subscribe to a webhook to get notified on record updates.", "x-ms-trigger": "single", "tags": [ "webhooks" @@ -1793,68 +1908,94 @@ "required": true, "schema": { "type": "object", - "required": [ - "url" - ], - "properties": { - "url": { - "type": "string", - "description": "The callback url for Eduframe to send a HTTP POST payload to.", - "x-ms-notification-url": true, - "x-ms-visibility": "internal" - }, - "active": { - "type": "boolean", - "description": "State of webhook.", - "default": true - }, - "webhook_triggers_attributes": { - "type": "array", - "items": { - "type": "object", - "required": [ - "event", - "klass" - ], - "properties": { - "event": { - "type": "string", - "enum": [ - "update", - "create" - ], - "description": "On which event webhook will be fired" - }, - "klass": { - "type": "string", - "enum": [ - "Category", - "Course", - "Educator", - "Enrollment", - "Lead", - "Meeting", - "MeetingLocation", - "Order", - "Payment", - "PlannedCourse", - "Plugins::EducatorPlugin", - "Invoice", - "InvoiceItem", - "Settings::CourseLocation", - "Settings::CourseVariant", - "Settings::InvoiceVat", - "TeacherEnrollment", - "User" - ], - "description": "On which klass event be caught" - } - }, - "additionalProperties": false - } - } - }, - "additionalProperties": false + "required": [ + "url", + "events" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier of the webhook. (a UUID).", + "readOnly": true + }, + "url": { + "type": "string", + "description": "The callback url for Eduframe to send a HTTP POST payload to.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "active": { + "type": "boolean", + "description": "State of webhook.", + "default": true + }, + "events": { + "items": { + "type": "string", + "enum": [ + "account.created", + "account.deleted", + "account.updated", + "category.created", + "category.deleted", + "category.updated", + "course.created", + "course.deleted", + "course.updated", + "course_location.created", + "course_location.deleted", + "course_location.updated", + "course_variant.created", + "course_variant.deleted", + "course_variant.updated", + "educator.created", + "educator.deleted", + "educator.updated", + "enrollment.created", + "enrollment.deleted", + "enrollment.updated", + "invoice.created", + "invoice.deleted", + "invoice.updated", + "invoice_vat.created", + "invoice_vat.deleted", + "invoice_vat.updated", + "lead.created", + "lead.deleted", + "lead.updated", + "meeting.created", + "meeting.deleted", + "meeting.updated", + "meeting.teacher_attendees_changed", + "meeting_location.created", + "meeting_location.deleted", + "meeting_location.updated", + "order.created", + "order.deleted", + "order.updated", + "payment.created", + "payment.deleted", + "payment.updated", + "planned_course.created", + "planned_course.deleted", + "planned_course.updated", + "planning_event.created", + "planning_event.deleted", + "planning_event.updated", + "planning_event.teacher_attendees_changed", + "teacher_role.created", + "teacher_role.deleted", + "teacher_role.updated", + "user.created", + "user.deleted", + "user.updated" + ] + }, + "type": "array", + "description": "Array of events that should trigger this webhook." + } + }, + "additionalProperties": false } } ], @@ -1887,7 +2028,7 @@ "parameters": { "Page": { "x-ms-summary": "Page number", - "description": "Page number to get", + "description": "Page number to get.", "name": "page", "in": "query", "type": "integer", @@ -1895,7 +2036,7 @@ }, "PerPage": { "x-ms-summary": "Records per page", - "description": "Number of records per page", + "description": "Number of records per page.", "name": "per_page", "in": "query", "type": "integer", diff --git a/certified-connectors/Eduframe/apiProperties.json b/certified-connectors/Eduframe/apiProperties.json index b33f168f65..cf4ec6d1b5 100644 --- a/certified-connectors/Eduframe/apiProperties.json +++ b/certified-connectors/Eduframe/apiProperties.json @@ -27,6 +27,8 @@ } }, "iconBrandColor": "#e4e4e4", - "capabilities": [] + "capabilities": [], + "publisher": "Drieam", + "stackOwner": "Drieam" } } From acfbb3ce1eb4e9f75276a001e85d04dd1c2699ba Mon Sep 17 00:00:00 2001 From: airmeet-ci <80478449+airmeet-ci@users.noreply.github.com> Date: Fri, 29 Oct 2021 04:16:15 +0530 Subject: [PATCH 096/219] [Airmeet] connector (#1215) * [Airmeet] connector * [Airmeet] brandcolor change * [Airmeet] validation request fix * [Airmeet] validation request fix * [Airmeet] schema definition added and descriptions corrected Co-authored-by: Airmeet Co-authored-by: Amit Kumar --- certified-connectors/Airmeet/Readme.md | 36 + .../Airmeet/apiDefinition.swagger.json | 916 ++++++++++++++++++ .../Airmeet/apiProperties.json | 117 +++ certified-connectors/Airmeet/script.csx | 72 ++ 4 files changed, 1141 insertions(+) create mode 100644 certified-connectors/Airmeet/Readme.md create mode 100644 certified-connectors/Airmeet/apiDefinition.swagger.json create mode 100644 certified-connectors/Airmeet/apiProperties.json create mode 100644 certified-connectors/Airmeet/script.csx diff --git a/certified-connectors/Airmeet/Readme.md b/certified-connectors/Airmeet/Readme.md new file mode 100644 index 0000000000..e86ab328e5 --- /dev/null +++ b/certified-connectors/Airmeet/Readme.md @@ -0,0 +1,36 @@ +## Airmeet Connector + +Airmeet is the fastest growing platform for hosting a rich variety of virtual events. From Hackathons to ice-breakers, panel discussions to workshops, Airmeet's intuitive experience delivers on organisers expectations for a wide range of events and not just conferences. + +## Prerequisites + +### To Generate Access key and Secret key + +You will need the following to proceed: + +Step 1: Sign in to your airmeet account ( https://www.airmeet.com/signup ) + +Step 2: Click on the "Settings" tab and select the "API Access Key" section. + +Step 3: Click on "Generate access key" and provide a name/label to your key (can be anything that can be remembered later) +![Generate Access key and Secret key](https://s3-ap-south-1.amazonaws.com/ind-cdn.freshdesk.com/data/helpdesk/attachments/production/82017079115/original/VFPjpANY-BGgR06r6sZs0lSa-v8sUiPl1A.png?1634818045) + +Step 4: After providing your label name 'X-Airmeet-Access-Key' with 'X-Airmeet-Secret-Key' would be generated, which can be used in API integration + +Access Key = X-Airmeet-Access-Key + +Secret Key = X-Airmeet-Secret-Key + +![Copy Access key and Secret key](https://s3-ap-south-1.amazonaws.com/ind-cdn.freshdesk.com/data/helpdesk/attachments/production/82017079116/original/3UadSalyOAf1fqCDujELbc6FkkKJ7eNtmA.png?1634818046) + +## Supported Operations + +The connector supports the following operations: + +- `Get Airmeets`: Get airmeet list from your community. +- `Create an Airmeet`: Create an Airmeet in your community. +- `Add a speaker`: Add a speaker to your Airmeet event. +- `Create Session`: Add a Session to your Airmeet. +- `Add Registrant`: Add Registrant to an Airmeet. +- `Register an Airmeet Trigger`: Select a trigger from the available options. Setup reminders and alerts based on event registration, attendance, event start and end time. + Avaible triggers are "trigger.airmeet.registrant.added","trigger.airmeet.attendee.added","trigger.airmeet.attendee.joined","trigger.airmeet.created","trigger.airmeet.started","trigger.airmeet.finished","trigger.airmeet.reminder" diff --git a/certified-connectors/Airmeet/apiDefinition.swagger.json b/certified-connectors/Airmeet/apiDefinition.swagger.json new file mode 100644 index 0000000000..803d3613d9 --- /dev/null +++ b/certified-connectors/Airmeet/apiDefinition.swagger.json @@ -0,0 +1,916 @@ +{ + "swagger": "2.0", + "info": { + "title": "Airmeet", + "description": "Airmeet is the fastest growing platform for hosting a rich variety of virtual events. From Hackathons to ice-breakers, panel discussions to workshops, Airmeet's intuitive experience delivers on organisers expectations for a wide range of events and not just conferences.", + "version": "1.0", + "contact": { + "name": "Airmeet Platform", + "url": "https://www.airmeet.com", + "email": "platform@airmeet.com" + } + }, + "host": "api-gateway.airmeet.com", + "basePath": "/", + "schemes": ["https"], + "consumes": ["application/json"], + "produces": ["application/json"], + "paths": { + "/prod/platform-integration/v1/webhook-register": { + "x-ms-notification-content": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + }, + "status": { + "type": "string", + "description": "status" + }, + "tags": { + "type": "array", + "items": {}, + "description": "tags" + }, + "host": { + "type": "string", + "description": "host" + }, + "tables": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "tags": { + "type": "string", + "description": "tags" + }, + "name": { + "type": "string", + "description": "name" + }, + "users": { + "type": "string", + "description": "users" + } + } + }, + "description": "tables" + }, + "users": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + }, + "designation": { + "type": "string", + "description": "designation" + }, + "company": { + "type": "string", + "description": "company" + }, + "tags": { + "type": "array", + "items": {}, + "description": "tags" + }, + "city": { + "type": "string", + "description": "city" + }, + "country": { + "type": "string", + "description": "country" + }, + "bio": { + "type": "string", + "description": "bio" + }, + "profile_img": { + "type": "string", + "description": "Profile image" + } + } + }, + "description": "users" + }, + "sessions": { + "type": "array", + "items": {}, + "description": "sessions" + }, + "speakers": { + "type": "array", + "items": {}, + "description": "speakers" + }, + "theme": { + "type": "string", + "description": "theme" + }, + "hostUser": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "uid" + }, + "name": { + "type": "string", + "description": "name" + }, + "email": { + "type": "string", + "description": "email" + }, + "organisation": { + "type": "string", + "description": "organisation" + }, + "designation": { + "type": "string", + "description": "designation" + }, + "bio": { + "type": "string", + "description": "bio" + }, + "city": { + "type": "string", + "description": "city" + }, + "country": { + "type": "string", + "description": "country" + }, + "imageUrl": { + "type": "string", + "description": "image Url" + } + }, + "description": "host User" + }, + "tableCount": { + "type": "string", + "description": "table Count" + }, + "airmeet_id": { + "type": "string", + "description": "airmeet Id" + }, + "start_time": { + "type": "string", + "description": "start time" + }, + "end_time": { + "type": "string", + "description": "end time" + }, + "short_desc": { + "type": "string", + "description": "short description" + }, + "long_desc": { + "type": "string", + "description": "long description" + }, + "remaining_time": { + "type": "integer", + "format": "int32", + "description": "remaining time" + }, + "organiser_name": { + "type": "string", + "description": "organiser name" + }, + "organiser_email": { + "type": "string", + "description": "organiser email" + }, + "organiser_url": { + "type": "string", + "description": "organiser url" + }, + "organiser_intro": { + "type": "string", + "description": "organiser introduction" + }, + "is_private": { + "type": "boolean", + "description": "is private" + }, + "networking_enabled": { + "type": "boolean", + "description": "networking enabled" + }, + "session_enabled": { + "type": "boolean", + "description": "session enabled" + }, + "master_img_url": { + "type": "string", + "description": "master image url" + }, + "noauth_enabled": { + "type": "boolean", + "description": "no auth enabled" + }, + "community_id": { + "type": "string", + "description": "community id" + }, + "community_name": { + "type": "string", + "description": "community name" + }, + "timezone": { + "type": "string", + "description": "timezone" + }, + "current_time": { + "type": "string", + "description": "current time" + }, + "attendee_list_enabled": { + "type": "boolean", + "description": "attendee list enabled" + }, + "is_branding_enabled": { + "type": "boolean", + "description": "is branding enabled" + }, + "branding_info": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "sponsor_logo": { + "type": "string", + "description": "sponsor logo" + }, + "branding_logo": { + "type": "string", + "description": "branding logo" + }, + "sponsor_headline": { + "type": "string", + "description": "sponsor headline" + } + }, + "description": "branding information" + } + } + } + }, + "post": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Trigger Label" + }, + "description": { + "type": "string", + "description": "Trigger Description" + }, + "triggerMetaInfoId": { + "type": "string", + "description": "Trigger Id" + }, + "url": { + "type": "string", + "description": "Webhook Url" + } + } + } + } + }, + "summary": "Register an Airmeet Trigger", + "description": "Select a trigger from the available options. Setup reminders and alerts based on event registration, attendance, event start and end time", + "operationId": "AirmeetTriggers", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "airmeetId", + "in": "query", + "required": false, + "type": "string", + "x-ms-summary": "Airmeet ID", + "description": "Airmeet Event ID", + "x-ms-dynamic-values": { + "operationId": "GetAirmeets", + "value-path": "uid", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name", + "title": "Name", + "x-ms-visibility": "internal" + }, + "description": { + "type": "string", + "description": "description", + "title": "description", + "x-ms-visibility": "internal" + }, + "url": { + "type": "string", + "description": "url", + "title": "URL", + "default": "url", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "triggerMetaInfoId": { + "type": "string", + "description": "Trigger Id", + "title": "triggerMetaInfoId", + "enum": [ + "trigger.airmeet.registrant.added", + "trigger.airmeet.attendee.added", + "trigger.airmeet.attendee.joined", + "trigger.airmeet.created", + "trigger.airmeet.started", + "trigger.airmeet.finished", + "trigger.airmeet.reminder" + ], + "default": "trigger.airmeet.registrant.added", + "x-ms-visibility": "important" + } + }, + "required": ["url", "triggerMetaInfoId"] + } + } + ] + } + }, + "/api/v1/airmeets": { + "get": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "Airmeet Id" + }, + "name": { + "type": "string", + "description": "Event Name" + }, + "status": { + "type": "string", + "description": "Event Status" + }, + "timezone": { + "type": "string", + "description": "Event Timezone" + }, + "description": { + "type": "string", + "description": "Event Description" + }, + "startTime": { + "type": "string", + "description": "Event Start Time" + }, + "endTime": { + "type": "string", + "description": "Event End Time" + } + } + }, + "description": "data" + }, + "cursors": { + "type": "object", + "properties": { + "after": { + "type": "integer", + "format": "int32", + "description": "After" + }, + "before": { + "type": "integer", + "format": "int32", + "description": "Before" + }, + "pageCount": { + "type": "integer", + "format": "int32", + "description": "Page Count" + } + }, + "description": "cursors" + } + } + } + } + }, + "summary": "Get Airmeets", + "description": "Get Airmeets", + "operationId": "GetAirmeets", + "x-ms-visibility": "advanced", + "parameters": [] + } + }, + "/api/v1/public/airmeet": { + "post": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Airmeet Id for the event" + }, + "status": { + "type": "string", + "description": "Response message" + } + } + } + } + }, + "summary": "Create an Airmeet", + "description": "Create an Airmeet in your community", + "operationId": "CreateAirmeet", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "hostEmail": { + "type": "string", + "description": "Email of the host", + "title": "Host Email" + }, + "eventName": { + "type": "string", + "description": "Name of the event", + "title": "Event Name" + }, + "shortDesc": { + "type": "string", + "description": "Short description of the event", + "title": "Short Description" + }, + "eventImage": { + "type": "string", + "description": "Url of the event image" + }, + "longDesc": { + "type": "string", + "description": "Long description of the event", + "title": "Long Description", + "x-ms-visibility": "advanced" + }, + "access": { + "type": "string", + "description": "Access type for the event", + "title": "Access Type", + "enum": [ + "INVITED_ONLY", + "WITH_VERIFIED_EMAIL", + "WITHOUT_VERIFIED_EMAIL" + ], + "default": "INVITED_ONLY", + "x-ms-visibility": "advanced" + }, + "eventType": { + "type": "string", + "description": "Airmeet event type", + "title": "Event Type", + "default": "MEETUP", + "x-ms-visibility": "internal" + }, + "timing": { + "type": "object", + "properties": { + "startTime": { + "type": "integer", + "format": "int64", + "description": "Start time for the event (unix time in miliseconds)", + "title": "Start Time" + }, + "endTime": { + "type": "integer", + "format": "int64", + "description": "End time for the event (unix time in miliseconds)", + "title": "End Time" + }, + "timezone": { + "type": "string", + "description": "Timezone for the event (Canonical TZ name)", + "title": "Timezone", + "x-ms-visibility": "advanced", + "default": "Asia/Kolkata" + } + }, + "description": "Event timing", + "required": ["endTime", "timezone", "startTime"] + }, + "config": { + "type": "object", + "properties": { + "networking": { + "type": "boolean", + "description": "Enable social lounge for the event", + "title": "Networking", + "enum": [true, false], + "default": true + }, + "tableCount": { + "type": "integer", + "format": "int32", + "description": "Number of tables in the social lounge", + "title": "Table Count", + "default": 12 + } + }, + "description": "Additional Configurations" + } + }, + "required": [ + "shortDesc", + "timing", + "hostEmail", + "eventType", + "eventName" + ] + } + } + ] + } + }, + "/api/v1/public/airmeet/{airmeetid}/speaker": { + "post": { + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "speakerEmail": { + "type": "string", + "description": "Email id of the Speaker" + }, + "status": { + "type": "string", + "description": "Response message" + } + } + } + } + }, + "parameters": [ + { + "name": "airmeetid", + "x-ms-url-encoding": "single", + "x-ms-summary": "Airmeet ID", + "description": "Airmeet Event ID", + "in": "path", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetAirmeets", + "value-path": "uid", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the Speaker", + "title": "Speaker Name" + }, + "email": { + "type": "string", + "description": "Email of the Speaker", + "title": "Speaker Email" + }, + "organisation": { + "type": "string", + "description": "Organisation of the Speaker", + "title": "Organisation" + }, + "designation": { + "type": "string", + "description": "Designation of the Speaker", + "title": "Designation" + }, + "imageUrl": { + "type": "string", + "description": "Image Url for the Speaker Profile", + "title": "Speaker Image" + }, + "bio": { + "type": "string", + "description": "Bio of the Speaker", + "title": "Bio" + }, + "city": { + "type": "string", + "description": "City", + "title": "City" + }, + "country": { + "type": "string", + "description": "Country", + "title": "Country" + } + }, + "required": ["email", "name"] + } + } + ], + "summary": "Add a speaker", + "description": "Add a speaker to your Airmeet event", + "operationId": "CreateSpeaker" + } + }, + "/api/v1/public/airmeet/{airmeetId}/session": { + "post": { + "responses": { + "200": { + "description": "Session added to your Airmeet", + "schema": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "session id" + } + } + } + } + }, + "parameters": [ + { + "name": "airmeetId", + "in": "path", + "required": true, + "x-ms-summary": "Airmeet ID", + "description": "Airmeet Event ID", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetAirmeets", + "value-path": "uid", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "sessionTitle": { + "type": "string", + "description": "Title for the Session", + "title": "Session Title" + }, + "sessionStartTime": { + "type": "integer", + "format": "int64", + "description": "Start time for the session, unix timestamp rounded to minutes", + "title": "Session Start Time" + }, + "sessionDuration": { + "type": "integer", + "format": "int32", + "description": "Duration of the event in seconds", + "title": "Session Duration" + }, + "sessionSummary": { + "type": "string", + "description": "Summary for the session", + "title": "Session Summary" + }, + "hostEmail": { + "type": "string", + "description": "Email of the Airmeet event host", + "title": "Host Email" + }, + "speakerEmails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of all the speakers. Speakers should be added to the Airmeet before creating the session" + }, + "cohostEmails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Emails of all the co hosts. Team members should be added to the community before creating the session" + }, + "type": { + "type": "string", + "description": "type", + "title": "Type", + "default": "HOSTING", + "x-ms-visibility": "internal" + } + }, + "required": [ + "hostEmail", + "sessionTitle", + "sessionStartTime", + "type" + ] + } + } + ], + "summary": "Add a Session to your Airmeet", + "description": "Create Session", + "operationId": "CreateSession" + } + }, + "/api/v1/airmeet/{airmeetId}/attendee": { + "post": { + "responses": { + "200": { + "description": "Registrant added to an Airmeet", + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email of the Invitee" + }, + "entryLink": { + "type": "string", + "description": "Event entry link" + } + } + } + } + }, + "summary": "Add Registrant", + "description": "Add Registrant to an Airmeet", + "operationId": "AddRegistrant", + "parameters": [ + { + "name": "airmeetId", + "in": "path", + "required": true, + "x-ms-summary": "Airmeet ID", + "description": "Airmeet Event ID", + "x-ms-url-encoding": "single", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetAirmeets", + "value-path": "uid", + "value-collection": "data", + "value-title": "name" + } + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the Invitee", + "title": "Name" + }, + "email": { + "type": "string", + "description": "Email of the Invitee", + "title": "Email" + }, + "organisation": { + "type": "string", + "description": "Organisation of the Invitee", + "title": "Organisation" + }, + "designation": { + "type": "string", + "description": "Designation of the Invitee", + "title": "Designation" + }, + "city": { + "type": "string", + "description": "City of the Invitee", + "title": "City" + }, + "country": { + "type": "string", + "description": "Country of the Invitee", + "title": "Country" + }, + "crm_platform": { + "type": "string", + "description": "Registration Source", + "title": "Registration Source", + "x-ms-visibility": "internal", + "default": "MICROSOFT_DYNAMICS" + }, + "customFieldMapping": { + "type": "array", + "items": { + "type": "object", + "properties": {} + }, + "description": "Custom Registration Fields" + } + }, + "required": ["email", "name", "crm_platform"] + } + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.airmeet.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.airmeet.com/hub/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Marketing" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "basic_auth": { + "type": "basic" + } + }, + "security": [ + { + "basic_auth": [] + } + ], + "tags": [] +} diff --git a/certified-connectors/Airmeet/apiProperties.json b/certified-connectors/Airmeet/apiProperties.json new file mode 100644 index 0000000000..a44587e4dd --- /dev/null +++ b/certified-connectors/Airmeet/apiProperties.json @@ -0,0 +1,117 @@ +{ + "properties": { + "connectionParameters": { + "username": { + "type": "securestring", + "uiDefinition": { + "displayName": "x-access-key", + "description": "The x-access-key for this api", + "tooltip": "Provide the x-access-key", + "constraints": { + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "x-secret-key", + "description": "The x-secret-key for this api", + "tooltip": "Provide the x-secret-key", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#4DC3FF", + "scriptOperations": [ + "CreateAirmeet", + "CreateSession", + "CreateSpeaker", + "GetAirmeets", + "AddRegistrant", + "AirmeetTriggers" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Content-Type", + "parameters": { + "x-ms-apimTemplateParameter.name": "Content-Type", + "x-ms-apimTemplateParameter.value": "application/json", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "setheader", + "title": "Accept", + "parameters": { + "x-ms-apimTemplateParameter.name": "Accept", + "x-ms-apimTemplateParameter.value": "application/json", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "setheader", + "title": "x-access-key", + "parameters": { + "x-ms-apimTemplateParameter.name": "x-access-key", + "x-ms-apimTemplateParameter.value": "@connectionParameters('username')", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "setheader", + "title": "x-secret-key", + "parameters": { + "x-ms-apimTemplateParameter.name": "x-secret-key", + "x-ms-apimTemplateParameter.value": "@connectionParameters('password')", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "setconnectionstatustounauthenticated", + "title": "401", + "parameters": { + "x-ms-apimTemplateParameter.statusCode": 401 + } + }, + { + "templateId": "setheader", + "title": "Location", + "parameters": { + "x-ms-apimTemplateParameter.name": "Location", + "x-ms-apimTemplateParameter.value": "https://api-gateway.airmeet.com/prod/platform-integration/v1/webhook-deregister", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Response" + } + }, + { + "templateId": "dynamichosturl", + "title": "URL", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "https://api.airmeet.com", + "x-ms-apimTemplate-operationName": [ + "GetAirmeets", + "CreateAirmeet", + "CreateSpeaker", + "CreateSession", + "AddRegistrant" + ] + } + } + ], + "publisher": "Airmeet Platform", + "stackOwner": "Airmeet Platform" + } +} diff --git a/certified-connectors/Airmeet/script.csx b/certified-connectors/Airmeet/script.csx new file mode 100644 index 0000000000..9652963b47 --- /dev/null +++ b/certified-connectors/Airmeet/script.csx @@ -0,0 +1,72 @@ +public class Script: ScriptBase { + public override async Task < HttpResponseMessage > ExecuteAsync() { + if (this.Context.OperationId == "AirmeetTriggers") { + await this.UpdateNameRequest().ConfigureAwait(false); + } else { + await this.UpdateRequest().ConfigureAwait(false); + } + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + response.Headers.Location = new Uri(string.Format("https://api-gateway.airmeet.com/prod/platform-integration/v1/webhook-deregister")); + return response; + } + private async Task UpdateNameRequest() { + var contentAsString = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var contentAsJson = JObject.Parse(contentAsString); + var triggerMetaInfoId = (string) contentAsJson["triggerMetaInfoId"]; + + if (triggerMetaInfoId == "trigger.airmeet.attendee.added") { + contentAsJson["name"] = "ZAPIER_AIRMEET_CREATED"; + contentAsJson["description"] = "Airmeet Created trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.created") { + contentAsJson["name"] = "ZAPIER_AIRMEET_CREATED"; + contentAsJson["description"] = "Airmeet Created trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.registrant.added") { + contentAsJson["name"] = "ZAPIER_REGISTRANT_ADDED"; + contentAsJson["description"] = "Registrant Created trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.started") { + contentAsJson["name"] = "ZAPIER_AIRMEET_STARTED"; + contentAsJson["description"] = "Airmeet started trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.finished") { + contentAsJson["name"] = "ZAPIER_AIRMEET_FINISHED"; + contentAsJson["description"] = "Airmeet finished trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.reminder") { + contentAsJson["name"] = "ZAPIER_AIRMEET_REMINDER"; + contentAsJson["description"] = "Airmeet reminder trigger subscription for MICROSOFT_DYNAMICS"; + } + if (triggerMetaInfoId == "trigger.airmeet.attendee.joined") { + contentAsJson["name"] = "ZAPIER_REGISTRANT_JOINED"; + contentAsJson["description"] = "Attendee Joined trigger subscription for MICROSOFT_DYNAMICS"; + } + this.Context.Request.Headers.TryAddWithoutValidation("Content-Type", "application/json"); + this.Context.Request.Content = CreateJsonContent(contentAsJson.ToString()); + } + private async Task UpdateRequest() { + string content = string.Empty; + this.Context.Request.Headers.TryGetValues("x-access-key", out + var airmeetAccessKey); + this.Context.Request.Headers.TryGetValues("x-secret-key", out + var airmeetSecretKey); + using + var userInfoRequest = new HttpRequestMessage(HttpMethod.Post, "https://api.airmeet.com/api/v1/auth"); + userInfoRequest.Headers.TryAddWithoutValidation("X-Airmeet-Access-Key", airmeetAccessKey); + userInfoRequest.Headers.TryAddWithoutValidation("X-Airmeet-Secret-Key", airmeetSecretKey); + userInfoRequest.Headers.TryAddWithoutValidation("Content-Type", "application/json"); + var newResult = new JObject {}; + userInfoRequest.Content = CreateJsonContent(newResult.ToString()); + using + var userInfoResponse = await this.Context.SendAsync(userInfoRequest, this.CancellationToken).ConfigureAwait(false); + content = await userInfoResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + var jsonContent = JObject.Parse(content); + var token = (string) jsonContent["token"]; + if (string.IsNullOrEmpty(token)) { + token = string.Empty; + } + this.Context.Request.Headers.TryAddWithoutValidation("Content-Type", "application/json"); + this.Context.Request.Headers.TryAddWithoutValidation("X-Airmeet-Access-Token", token); + } +} \ No newline at end of file From e3a0ef278249f667a4ed6b72d5e94365a802476d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Arantes?= <91188523+AntonioArantesDevscope@users.noreply.github.com> Date: Sat, 30 Oct 2021 02:40:22 +0100 Subject: [PATCH 097/219] Robots for PowerBI - change icon color (#1229) * Robots for Power BI * Robots for PowerBI - change icon color --- certified-connectors/Robots for Power BI/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Robots for Power BI/apiProperties.json b/certified-connectors/Robots for Power BI/apiProperties.json index 169f4ec80b..cee72628d1 100644 --- a/certified-connectors/Robots for Power BI/apiProperties.json +++ b/certified-connectors/Robots for Power BI/apiProperties.json @@ -15,7 +15,7 @@ } } }, - "iconBrandColor": "#0577bd", + "iconBrandColor": "#375ba9", "capabilities": [], "publisher": "DevScope S.A.", "stackOwner": "DevScope S.A." From e2fc58f63bc8a0a1452f7267dc5a5d2a84db8bee Mon Sep 17 00:00:00 2001 From: Rambatla Venkat Rao <68921481+RamboV@users.noreply.github.com> Date: Sat, 30 Oct 2021 07:11:14 +0530 Subject: [PATCH 098/219] HYAS Insight - Added C2 Attribution Actions (#1220) * Added HYAS Insight in Certified Connectors Folder * Readded HYAS Insight * Added HYAS Insight to Dev Branch * Added HYAS Insight to Dev Branch * Add files via upload * Add files via upload * Delete icon.png * Delete settings.json * Delete apiDefinition.swagger.json * Delete apiProperties.json * Add files via upload * Delete apiDefinition.swagger.json * Delete apiProperties.json * Delete icon.png * Delete settings.json * Added HYAS Insight to Certified Connectors Folder * Update apiProperties.json * Delete apiDefinition.swagger.json * Delete apiProperties.json * Delete icon.png * Delete settings.json * Added new set of files * Update apiProperties.json * Delete icon.png * Delete settings.json * Create readme.md * Update readme.md * Update readme.md * IPQualityScore Custom Connector Open Source Submission for Review * Added "active_status" output parameter Added "active_status" output parameter to "Retrieve Phone Number reputation data" and added a description to the connector actions. * typo in active_status * Farsight DNSDB Open Source Submission * Updated DNSDB Host * Fixed Issues of Copyright and special characters * Fixed Unicode Characters Issue * removed Copyright * Added C2 Attribution Actions in Readme * Added C2 Attribution Actions * Update apiProperties.json * removed empty property values * removed all empty operations Co-authored-by: Rambatza Venkat Rao --- .../HYAS Insight/apiDefinition.swagger.json | 1472 +++++++++++------ .../HYAS Insight/apiProperties.json | 43 +- certified-connectors/HYAS Insight/readme.md | 4 + 3 files changed, 965 insertions(+), 554 deletions(-) diff --git a/certified-connectors/HYAS Insight/apiDefinition.swagger.json b/certified-connectors/HYAS Insight/apiDefinition.swagger.json index 9cfd17df3c..b6ae1e3b02 100644 --- a/certified-connectors/HYAS Insight/apiDefinition.swagger.json +++ b/certified-connectors/HYAS Insight/apiDefinition.swagger.json @@ -3,11 +3,11 @@ "info": { "title": "HYAS Insight", "description": "HYAS Insight integration to Microsoft Azure Sentinel provides direct, high volume access to HYAS Insight data. It enables investigators and analysts to understand and defend against cyber adversaries and their infrastructure.", - "contact":{ - "name": "HYAS Infosec", - "url": "https://www.hyas.com/contact", - "email": "support@hyas.com" - }, + "contact": { + "name": "HYAS Infosec", + "url": "https://www.hyas.com/contact", + "email": "support@hyas.com" + }, "version": "1.0" }, "host": "insight.hyas.com", @@ -136,8 +136,7 @@ "geo_horizontal_accuracy": { "type": "number", "format": "float", - "description": "The GPS horizontal accuracy.", - "title": "" + "description": "The GPS horizontal accuracy." }, "ipv4": { "type": "string", @@ -160,6 +159,10 @@ "wifi_bssid": { "type": "string", "description": "The BSSID (MAC address) of the wifi router that the device communicated through." + }, + "wifi_ssid": { + "type": "string", + "description": "The SSID (name) of the wifi network that the device communicated through." } } } @@ -458,7 +461,7 @@ "md5_count": { "type": "integer", "format": "int32", - "description": "The malware hash count related to the domain." + "description": "The passive dns count." } } } @@ -669,234 +672,232 @@ ] } }, - "/whois": { + "/device_geo/ipv6": { "post": { "consumes": [ "application/json" ], "responses": { "200": { - "description": "Whois information.", + "description": "A list of mobile geolocation information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "datetime": { + "type": "string", + "description": "A date-time string in RFC 3339 format." + }, + "device_geo_id": { + "type": "string", + "description": "Internal record ID." + }, + "device_user_agent": { + "type": "string", + "description": "The user agent string for the device." + }, + "geo_country_alpha_2": { + "type": "string", + "description": "The ISO 3316 alpha-2 code for the country associated with the lat/long reported." + }, + "geo_horizontal_accuracy": { + "type": "number", + "format": "float", + "description": "The GPS horizontal accuracy." + }, + "ipv4": { + "type": "string", + "description": "The ipv4 address assigned to the device. A device may have either or ipv4 and ipv6." + }, + "ipv6": { + "type": "string", + "description": "The ipv6 address assigned to the device. A device may have either or ipv4 and ipv6." + }, + "latitude": { + "type": "number", + "format": "float", + "description": "Units are degrees on the WGS 84 spheroid." + }, + "longitude": { + "type": "number", + "format": "float", + "description": "Units are degrees on the WGS 84 spheroid." + }, + "wifi_bssid": { + "type": "string", + "description": "The BSSID (MAC address) of the wifi router that the device communicated through." + }, + "wifi_ssid": { + "type": "string", + "description": "The SSID (name) of the wifi network that the device communicated through." + } + } + } + } + } + }, + "summary": "Retrieve Device Geo information for IPv6 address", + "description": "Retrieve Device Geo enrichment data for IPv6 address.", + "operationId": "IPV6_DEVICE_GEO", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, "schema": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { + "applied_filters": { + "type": "object", + "properties": { + "ipv6": { + "type": "string", + "description": "IPv6 address you want to enrich.", + "title": "IPv6 address" + } + }, + "description": "Request body (application/json).", + "required": [ + "ipv6" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + }, + "/passivedns/ip": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "Passive DNS information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cert_name": { + "type": "string", + "description": "The certificate provider name." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The passive dns count." + }, + "domain": { + "type": "string", + "description": "The domain of the passive dns information requested." + }, + "first_seen": { + "type": "string", + "description": "The first time this domain was seen." + }, + "ip": { "type": "object", "properties": { - "abuse_emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The abuse emails information." - }, - "address": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The address information." - }, - "city": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The city of the registrant." - }, - "country": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The country of the registrant." - }, - "data": { - "type": "string", - "description": "The data information." - }, - "datetime": { - "type": "string", - "description": "The datetime information." - }, - "domain": { - "type": "string", - "description": "The domain of the registrant." - }, - "domain_2tld": { - "type": "string", - "description": "The second-level domain of the registrant." - }, - "domain_created_datetime": { - "type": "string", - "description": "The date and time when the Whois record was created." - }, - "domain_expires_datetime": { - "type": "string", - "description": "The date and time when the Whois record expires." - }, - "domain_updated_datetime": { - "type": "string", - "description": "The date and time when the Whois record was last updated." - }, - "email": { - "type": "array", - "items": { - "type": "string" + "geo": { + "type": "object", + "properties": { + "city_name": { + "type": "string", + "description": "City of the ip organization." + }, + "country_iso_code": { + "type": "string", + "description": "Country ISO code of the ip organization." + }, + "country_name": { + "type": "string", + "description": "Country name of the ip organization." + }, + "location_latitude": { + "type": "string", + "description": "The latitude of the ip organization." + }, + "location_longitude": { + "type": "string", + "description": "The longitude of the ip organization." + }, + "postal_code": { + "type": "string", + "description": "The postalcode of the ip organization." + } }, - "description": "The email information." - }, - "idn_name": { - "type": "string", - "description": "The international domain name information." + "description": "The geo object." }, - "meta_data": { + "ip": { "type": "string", - "description": "The metadata information." + "description": "IP of the organization." }, - "name": { - "type": "array", - "items": { - "type": "string" + "isp": { + "type": "object", + "properties": { + "autonomous_system_number": { + "type": "string", + "description": "The ASN of the ip." + }, + "autonomous_system_organization": { + "type": "string", + "description": "The ASO of the ip." + }, + "ip_address": { + "type": "string", + "description": "The IP." + }, + "isp": { + "type": "string", + "description": "The Internet Service Provider." + }, + "organization": { + "type": "string", + "description": "The ISP organization." + } }, - "description": "The contact name (registrant contact, administrative contact, technical contact, or abuse contact.)" - }, - "nameserver": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The nameserver domain." - }, - "organization": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The organization information." - }, - "phone": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The phone number of the registrant in e164 format." - }, - "registrar": { - "type": "string", - "description": "The domain registrar." - }, - "state": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The state where domain was registered." - }, - "whois_hash": { - "type": "string", - "description": "The hash information." - }, - "whois_id": { - "type": "string", - "description": "The whois id information." - }, - "whois_nameserver": { - "type": "array", - "items": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "The nameserver\u2019s domain information." - }, - "domain_2tld": { - "type": "string", - "description": "The nameserver\u2019s domain_2tld information." - }, - "whois_related_nameserver_id": { - "type": "string", - "description": "The nameserver\u2019s Id Information." - } - } - }, - "description": "The whois_nameserver object." - }, - "whois_pii": { - "type": "array", - "items": { - "type": "object", - "properties": { - "address": { - "type": "string", - "description": "The personal identity address information." - }, - "city": { - "type": "string", - "description": "The personal identity city information." - }, - "data": { - "type": "string", - "description": "The personal identity data information." - }, - "email": { - "type": "string", - "description": "The personal identity email information." - }, - "geo_country_alpha_2": { - "type": "string", - "description": "The personal identity country information." - }, - "name": { - "type": "string", - "description": "The personal identity name information." - }, - "organization": { - "type": "string", - "description": "The personal identity organization information." - }, - "phone_e164": { - "type": "string", - "description": "The personal identity Phone_e164 information." - }, - "state": { - "type": "string", - "description": "The personal identity state information." - }, - "whois_related_pii_id": { - "type": "string", - "description": "The personal identity Id information." - }, - "whois_related_type": { - "type": "string", - "description": "The personal identity related information." - } - } - }, - "description": "The whois_pii object." + "description": "The isp object." } - } + }, + "description": "The ip object." }, - "description": "The items object." - }, - "source": { - "type": "string", - "description": "The source information." - }, - "total_count": { - "type": "integer", - "format": "int32", - "description": "The total count information." + "ipv4": { + "type": "string", + "description": "The ipv4 address of the passive dns record." + }, + "ipv6": { + "type": "string", + "description": "The ipv6 address of the passive dns record." + }, + "last_seen": { + "type": "string", + "description": "The last time this domain was seen." + }, + "sha1": { + "type": "string", + "description": "The sha1." + }, + "sources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of pDNS providers which the data came from." + } } } } } }, - "summary": "Retrieve Current WHOIS information for domain", - "description": "Retrieve Current WHOIS enrichment data for domain.", - "operationId": "DOMAIN_WHOIS_CURRENT", + "summary": "Retrieve Passive DNS information for IP address", + "description": "Retrieve Passive DNS enrichment data for IP address.", + "operationId": "IP_PASSIVE_DNS", "parameters": [ { "name": "body", @@ -908,23 +909,15 @@ "applied_filters": { "type": "object", "properties": { - "domain": { + "ipv4": { "type": "string", - "description": "Domain you want to enrich.", - "title": "Domain" - }, - "current": { - "type": "boolean", - "description": "current.", - "title": "", - "x-ms-visibility": "internal", - "default": true + "description": "IPv4 address you want to enrich.", + "title": "IPv4 address" } }, "description": "Request body (application/json).", "required": [ - "domain", - "current" + "ipv4" ] } }, @@ -936,71 +929,55 @@ ] } }, - "/device_geo/ipv6": { + "/dynamicdns/email": { "post": { "consumes": [ "application/json" ], "responses": { "200": { - "description": "A list of mobile geolocation information.", + "description": "Dynamic DNS information.", "schema": { "type": "array", "items": { "type": "object", "properties": { - "datetime": { + "a_record": { "type": "string", - "description": "A date-time string in RFC 3339 format." + "description": "The A record for the domain." }, - "device_geo_id": { + "account": { "type": "string", - "description": "Internal record ID." + "description": "The account holder name." }, - "device_user_agent": { + "created": { "type": "string", - "description": "The user agent string for the device." + "description": "The date which the domain was created." }, - "geo_country_alpha_2": { + "created_ip": { "type": "string", - "description": "The ISO 3316 alpha-2 code for the country associated with the lat/long reported." - }, - "geo_horizontal_accuracy": { - "type": "number", - "format": "float", - "description": "The GPS horizontal accuracy.", - "title": "" + "description": "The ip address of the account holder." }, - "ipv4": { + "domain": { "type": "string", - "description": "The ipv4 address assigned to the device. A device may have either or ipv4 and ipv6." + "description": "The domain associated with the dynamic dns information." }, - "ipv6": { + "domain_creator_ip": { "type": "string", - "description": "The ipv6 address assigned to the device. A device may have either or ipv4 and ipv6." - }, - "latitude": { - "type": "number", - "format": "float", - "description": "Units are degrees on the WGS 84 spheroid." - }, - "longitude": { - "type": "number", - "format": "float", - "description": "Units are degrees on the WGS 84 spheroid." + "description": "The ip address of the domain creator." }, - "wifi_bssid": { + "email": { "type": "string", - "description": "The BSSID (MAC address) of the wifi router that the device communicated through." + "description": "The email address connected to the domain." } } } } } }, - "summary": "Retrieve Device Geo information for IPv6 address", - "description": "Retrieve Device Geo enrichment data for IPv6 address.", - "operationId": "IPV6_DEVICE_GEO", + "summary": "Retrieve Dynamic DNS information for email address", + "description": "Retrieve Dynamic DNS enrichment data for email address.", + "operationId": "EMAIL_DYNAMIC_DNS", "parameters": [ { "name": "body", @@ -1012,15 +989,15 @@ "applied_filters": { "type": "object", "properties": { - "ipv6": { + "email": { "type": "string", - "description": "IPv6 address you want to enrich.", - "title": "IPv6 address" + "description": "Email address you want to enrich.", + "title": "Email address" } }, "description": "Request body (application/json).", "required": [ - "ipv6" + "email" ] } }, @@ -1032,277 +1009,39 @@ ] } }, - "/passivedns/ip": { + "/whois/domain": { "post": { "consumes": [ "application/json" ], "responses": { "200": { - "description": "Passive DNS information.", + "description": "The whois historic information.", "schema": { "type": "array", "items": { "type": "object", "properties": { - "cert_name": { - "type": "string", - "description": "The certificate provider name." + "address": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The address information." }, - "count": { - "type": "integer", - "format": "int32", - "description": "The passive dns count." + "city": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The city information." }, - "domain": { - "type": "string", - "description": "The domain of the passive dns information requested." - }, - "first_seen": { - "type": "string", - "description": "The first time this domain was seen." - }, - "ip": { - "type": "object", - "properties": { - "geo": { - "type": "object", - "properties": { - "city_name": { - "type": "string", - "description": "City of the ip organization." - }, - "country_iso_code": { - "type": "string", - "description": "Country ISO code of the ip organization." - }, - "country_name": { - "type": "string", - "description": "Country name of the ip organization." - }, - "location_latitude": { - "type": "string", - "description": "The latitude of the ip organization." - }, - "location_longitude": { - "type": "string", - "description": "The longitude of the ip organization." - }, - "postal_code": { - "type": "string", - "description": "The postalcode of the ip organization." - } - }, - "description": "The geo object." - }, - "ip": { - "type": "string", - "description": "IP of the organization." - }, - "isp": { - "type": "object", - "properties": { - "autonomous_system_number": { - "type": "string", - "description": "The ASN of the ip." - }, - "autonomous_system_organization": { - "type": "string", - "description": "The ASO of the ip." - }, - "ip_address": { - "type": "string", - "description": "The IP." - }, - "isp": { - "type": "string", - "description": "The Internet Service Provider." - }, - "organization": { - "type": "string", - "description": "The ISP organization." - } - }, - "description": "The isp object." - } - }, - "description": "The ip object." - }, - "ipv4": { - "type": "string", - "description": "The ipv4 address of the passive dns record." - }, - "ipv6": { - "type": "string", - "description": "The ipv6 address of the passive dns record." - }, - "last_seen": { - "type": "string", - "description": "The last time this domain was seen." - }, - "sha1": { - "type": "string", - "description": "The sha1." - }, - "sources": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of pDNS providers which the data came from." - } - } - } - } - } - }, - "summary": "Retrieve Passive DNS information for IP address", - "description": "Retrieve Passive DNS enrichment data for IP address.", - "operationId": "IP_PASSIVE_DNS", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "applied_filters": { - "type": "object", - "properties": { - "ipv4": { - "type": "string", - "description": "IPv4 address you want to enrich.", - "title": "IPv4 address" - } - }, - "description": "Request body (application/json).", - "required": [ - "ipv4" - ] - } - }, - "required": [ - "applied_filters" - ] - } - } - ] - } - }, - "/dynamicdns/email": { - "post": { - "consumes": [ - "application/json" - ], - "responses": { - "200": { - "description": "Dynamic DNS information.", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "a_record": { - "type": "string", - "description": "The A record for the domain." - }, - "account": { - "type": "string", - "description": "The account holder name." - }, - "created": { - "type": "string", - "description": "The date which the domain was created." - }, - "created_ip": { - "type": "string", - "description": "The ip address of the account holder." - }, - "domain": { - "type": "string", - "description": "The domain associated with the dynamic dns information." - }, - "domain_creator_ip": { - "type": "string", - "description": "The ip address of the domain creator." - }, - "email": { - "type": "string", - "description": "The email address connected to the domain." - } - } - } - } - } - }, - "summary": "Retrieve Dynamic DNS information for email address", - "description": "Retrieve Dynamic DNS enrichment data for email address.", - "operationId": "EMAIL_DYNAMIC_DNS", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "applied_filters": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email address you want to enrich.", - "title": "Email address" - } - }, - "description": "Request body (application/json).", - "required": [ - "email" - ] - } - }, - "required": [ - "applied_filters" - ] - } - } - ] - } - }, - "/whois/domain": { - "post": { - "consumes": [ - "application/json" - ], - "responses": { - "200": { - "description": "The whois historic information.", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "address": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The address information." - }, - "city": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The city information." - }, - "country": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The country information." + "country": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The country information." }, "data": { "type": "string", @@ -1392,6 +1131,10 @@ }, "description": "Array of object, The phone number registrant contact in e164 format along with geo info." }, + "privacy_punch": { + "type": "boolean", + "description": "True if this record has additional information bypassing privacy protect." + }, "registrar": { "type": "string", "description": "The domain registrar." @@ -1565,6 +1308,10 @@ }, "description": "Array of object, The phone number registrant contact in e164 format along with geo info." }, + "privacy_punch": { + "type": "boolean", + "description": "True if this record has additional information bypassing privacy protect." + }, "registrar": { "type": "string", "description": "The domain registrar." @@ -1738,6 +1485,10 @@ }, "description": "Array of object, The phone number registrant contact in e164 format along with geo info." }, + "privacy_punch": { + "type": "boolean", + "description": "True if this record has additional information bypassing privacy protect." + }, "registrar": { "type": "string", "description": "The domain registrar." @@ -1788,20 +1539,673 @@ } ] } - } - }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.hyas.com" - }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.hyas.com/privacy-statement/" }, - { + "/c2attribution/domain": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "C2 Attribution Domain information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actor_ipv4": { + "type": "string", + "description": "The actor ipv4." + }, + "c2_domain": { + "type": "string", + "description": "The c2 domain." + }, + "c2_ip": { + "type": "string", + "description": "The c2 ipv4." + }, + "c2_url": { + "type": "string", + "description": "The C2 panel url." + }, + "datetime": { + "type": "string", + "description": "C2 Attribution datetime." + }, + "email": { + "type": "string", + "description": "The actor email." + }, + "email_domain": { + "type": "string", + "description": "The email domain." + }, + "referrer_domain": { + "type": "string", + "description": "The referrer domain." + }, + "referrer_ipv4": { + "type": "string", + "description": "The referrer ipv4." + }, + "referrer_url": { + "type": "string", + "description": "The referrer url." + }, + "sha256": { + "type": "string", + "description": "The sha256 malware hash." + } + } + } + } + } + }, + "summary": "Retrieve C2 Attribution information for Domain", + "description": "Retrieve C2 Attribution enrichment data for Domain.", + "operationId": "DOMAIN_C2_ATTRIBUTION", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "applied_filters": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain that you want to enrich", + "title": "Domain" + } + }, + "description": "applied_filters", + "required": [ + "domain" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + }, + "/c2attribution/ip": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "C2 Attribution IP information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actor_ipv4": { + "type": "string", + "description": "The actor ipv4." + }, + "c2_domain": { + "type": "string", + "description": "The c2 domain." + }, + "c2_ip": { + "type": "string", + "description": "The c2 ipv4." + }, + "c2_url": { + "type": "string", + "description": "The C2 panel url." + }, + "datetime": { + "type": "string", + "description": "C2 Attribution datetime." + }, + "email": { + "type": "string", + "description": "The actor email." + }, + "email_domain": { + "type": "string", + "description": "The email domain." + }, + "referrer_domain": { + "type": "string", + "description": "The referrer domain." + }, + "referrer_ipv4": { + "type": "string", + "description": "The referrer ipv4." + }, + "referrer_url": { + "type": "string", + "description": "The referrer url." + }, + "sha256": { + "type": "string", + "description": "The sha256 malware hash." + } + } + } + } + } + }, + "summary": "Retrieve C2 Attribution information for IP address", + "description": "Retrieve C2 Attribution enrichment data for IP address.", + "operationId": "IP_C2_ATTRIBUTION", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "applied_filters": { + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "IP address that you want to enrich.", + "title": "IP" + } + }, + "description": "applied_filters", + "required": [ + "ip" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + }, + "/c2attribution/sha256": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "C2 Attribution SHA256 information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actor_ipv4": { + "type": "string", + "description": "The actor ipv4." + }, + "c2_domain": { + "type": "string", + "description": "The c2 domain." + }, + "c2_ip": { + "type": "string", + "description": "The c2 ipv4." + }, + "c2_url": { + "type": "string", + "description": "The C2 panel url." + }, + "datetime": { + "type": "string", + "description": "C2 Attribution datetime." + }, + "email": { + "type": "string", + "description": "The actor email." + }, + "email_domain": { + "type": "string", + "description": "The email domain." + }, + "referrer_domain": { + "type": "string", + "description": "The referrer domain." + }, + "referrer_ipv4": { + "type": "string", + "description": "The referrer ipv4." + }, + "referrer_url": { + "type": "string", + "description": "The referrer url." + }, + "sha256": { + "type": "string", + "description": "The sha256 malware hash." + } + } + } + } + } + }, + "summary": "Retrieve C2 Attribution information for SHA256", + "description": "Retrieve C2 Attribution enrichment data for SHA256.", + "operationId": "SHA256_C2_ATTRIBUTION", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "applied_filters": { + "type": "object", + "properties": { + "sha256": { + "type": "string", + "description": "SHA256 that you want to enrich.", + "title": "SHA256" + } + }, + "description": "applied_filters", + "required": [ + "sha256" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + }, + "/c2attribution/email": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "C2 Attribution Email information.", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "actor_ipv4": { + "type": "string", + "description": "The actor ipv4." + }, + "c2_domain": { + "type": "string", + "description": "The c2 domain." + }, + "c2_ip": { + "type": "string", + "description": "The c2 ipv4." + }, + "c2_url": { + "type": "string", + "description": "The C2 panel url." + }, + "datetime": { + "type": "string", + "description": "C2 Attribution datetime." + }, + "email": { + "type": "string", + "description": "The actor email." + }, + "email_domain": { + "type": "string", + "description": "The email domain." + }, + "referrer_domain": { + "type": "string", + "description": "The referrer domain." + }, + "referrer_ipv4": { + "type": "string", + "description": "The referrer ipv4." + }, + "referrer_url": { + "type": "string", + "description": "The referrer url." + }, + "sha256": { + "type": "string", + "description": "The sha256 malware hash." + } + } + } + } + } + }, + "summary": "Retrieve C2 Attribution information for Email address", + "description": "Retrieve C2 Attribution enrichment data for Email address.", + "operationId": "EMAIL_C2_ATTRIBUTION", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "applied_filters": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address that you to enrich.", + "title": "Email" + } + }, + "description": "applied_filters", + "required": [ + "email" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + }, + "/whois/v1": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "Whois information.", + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "abuse_emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The abuse emails information." + }, + "address": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The address information." + }, + "city": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The city of the registrant." + }, + "country": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The country of the registrant." + }, + "data": { + "type": "string", + "description": "The data information." + }, + "datetime": { + "type": "string", + "description": "The datetime information." + }, + "domain": { + "type": "string", + "description": "The domain of the registrant." + }, + "domain_2tld": { + "type": "string", + "description": "The second-level domain of the registrant." + }, + "domain_created_datetime": { + "type": "string", + "description": "The date and time when the Whois record was created." + }, + "domain_expires_datetime": { + "type": "string", + "description": "The date and time when the Whois record expires." + }, + "domain_updated_datetime": { + "type": "string", + "description": "The date and time when the Whois record was last updated." + }, + "email": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The email information." + }, + "idn_name": { + "type": "string", + "description": "The international domain name information." + }, + "meta_data": { + "type": "string", + "description": "The metadata information." + }, + "name": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The contact name (registrant contact, administrative contact, technical contact, or abuse contact.)" + }, + "nameserver": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The nameserver domain." + }, + "organization": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The organization information." + }, + "phone": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The phone number of the registrant in e164 format." + }, + "registrar": { + "type": "string", + "description": "The domain registrar." + }, + "state": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The state where domain was registered." + }, + "whois_hash": { + "type": "string", + "description": "The hash information." + }, + "whois_id": { + "type": "string", + "description": "The whois id information." + }, + "whois_nameserver": { + "type": "array", + "items": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The nameserver\u2019s domain information." + }, + "domain_2tld": { + "type": "string", + "description": "The nameserver\u2019s domain_2tld information." + }, + "whois_related_nameserver_id": { + "type": "string", + "description": "The nameserver\u2019s Id Information." + } + } + }, + "description": "The whois_nameserver object." + }, + "whois_pii": { + "type": "array", + "items": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "The personal identity address information." + }, + "city": { + "type": "string", + "description": "The personal identity city information." + }, + "data": { + "type": "string", + "description": "The personal identity data information." + }, + "email": { + "type": "string", + "description": "The personal identity email information." + }, + "geo_country_alpha_2": { + "type": "string", + "description": "The personal identity country information." + }, + "name": { + "type": "string", + "description": "The personal identity name information." + }, + "organization": { + "type": "string", + "description": "The personal identity organization information." + }, + "phone_e164": { + "type": "string", + "description": "The personal identity Phone_e164 information." + }, + "state": { + "type": "string", + "description": "The personal identity state information." + }, + "whois_related_pii_id": { + "type": "string", + "description": "The personal identity Id information." + }, + "whois_related_type": { + "type": "string", + "description": "The personal identity related information." + } + } + }, + "description": "The whois_pii object." + } + } + }, + "description": "The items object." + }, + "source": { + "type": "string", + "description": "The source information." + }, + "total_count": { + "type": "integer", + "format": "int32", + "description": "The total count information." + } + } + } + } + }, + "summary": "Retrieve Current WHOIS information for domain", + "description": "Retrieve Current WHOIS enrichment data for domain.", + "operationId": "DOMAIN_WHOIS_CURRENT", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "applied_filters": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain that you want to enrich", + "title": "Domain" + }, + "current": { + "type": "boolean", + "description": "current", + "enum": [ + true, + false + ], + "default": true + } + }, + "description": "applied_filters", + "required": [ + "current", + "domain" + ] + } + }, + "required": [ + "applied_filters" + ] + } + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.hyas.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.hyas.com/privacy-statement/" + }, + { "propertyName": "Categories", - "propertyValue": "Security;Website" + "propertyValue": "Security;Website" } ], "definitions": {}, diff --git a/certified-connectors/HYAS Insight/apiProperties.json b/certified-connectors/HYAS Insight/apiProperties.json index 3789e85d99..f43e368ed1 100644 --- a/certified-connectors/HYAS Insight/apiProperties.json +++ b/certified-connectors/HYAS Insight/apiProperties.json @@ -20,72 +20,75 @@ "policyTemplateInstances": [ { "templateId": "routerequesttoendpoint", - "title": "IPV6_DEVICE_GEO_POLICY", + "title": "C2_ATTRIBUTION", "parameters": { - "x-ms-apimTemplateParameter.newPath": "/device_geo", + "x-ms-apimTemplateParameter.newPath": "/c2attribution", "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ - "IPV6_DEVICE_GEO" + "IP_C2_ATTRIBUTION", + "EMAIL_C2_ATTRIBUTION", + "SHA256_C2_ATTRIBUTION", + "DOMAIN_C2_ATTRIBUTION" ] } }, { - "templateId": "routerequesttoendpoint", - "title": "IP_PASSIVE_POLICY", + "templateId": "dynamichosturl", + "title": "WHO_IS_CURRENT", "parameters": { - "x-ms-apimTemplateParameter.newPath": "/passivedns", - "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplateParameter.urlTemplate": "https://api.hyas.com/", "x-ms-apimTemplate-operationName": [ - "IP_PASSIVE_DNS" + "DOMAIN_WHOIS_CURRENT" ] } }, { "templateId": "routerequesttoendpoint", - "title": "EMAIL_DYNAMIC_POLICY", + "title": "IPV6_DEVICE_GEO_POLICY", "parameters": { - "x-ms-apimTemplateParameter.newPath": "/dynamicdns", + "x-ms-apimTemplateParameter.newPath": "/device_geo", "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ - "EMAIL_DYNAMIC_DNS" + "IPV6_DEVICE_GEO" ] } }, { "templateId": "routerequesttoendpoint", - "title": "DOMAIN_WHOIS", + "title": "IP_PASSIVE_POLICY", "parameters": { - "x-ms-apimTemplateParameter.newPath": "/whois", + "x-ms-apimTemplateParameter.newPath": "/passivedns", "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ - "DOMAIN_WHOIS_HISTORIC" + "IP_PASSIVE_DNS" ] } }, { "templateId": "routerequesttoendpoint", - "title": "EMAIL_WHOIS", + "title": "EMAIL_DYNAMIC_POLICY", "parameters": { - "x-ms-apimTemplateParameter.newPath": "/whois", + "x-ms-apimTemplateParameter.newPath": "/dynamicdns", "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ - "EMAIL_WHOIS_HISTORIC" + "EMAIL_DYNAMIC_DNS" ] } }, { "templateId": "routerequesttoendpoint", - "title": "PHONE_WHOIS", + "title": "WHO_IS_HISTORIC", "parameters": { "x-ms-apimTemplateParameter.newPath": "/whois", "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ + "DOMAIN_WHOIS_HISTORIC", + "EMAIL_WHOIS_HISTORIC", "PHONE_WHOIS_HISTORIC" ] } } ], - "publisher": "HYAS Infosec", - "stackOwner": "HYAS Infosec" + "publisher": "Shubham Mishra" } } diff --git a/certified-connectors/HYAS Insight/readme.md b/certified-connectors/HYAS Insight/readme.md index db8d696575..752b64c41e 100644 --- a/certified-connectors/HYAS Insight/readme.md +++ b/certified-connectors/HYAS Insight/readme.md @@ -23,6 +23,10 @@ The connector supports the following operations: * `Retrieve SSL certificate information for IP address`: Retrieve SSL certificate enrichment data for IP address. * `Retrieve Device Geo information for IPv4 address`: Retrieve Device Geo enrichment data for IPv4 address. * `Retrieve Device Geo information for IPv6 address`: Retrieve Device Geo enrichment data for IPv6 address. +* `Retrieve C2 Attribution information for Domain`: Retrieve C2 Attribution enrichment data for Domain. +* `Retrieve C2 Attribution information for IP address`: Retrieve C2 Attribution enrichment data for IP address. +* `Retrieve C2 Attribution information for SHA256`: Retrieve C2 Attribution enrichment data for SHA256. +* `Retrieve C2 Attribution information for Email address`: Retrieve C2 Attribution enrichment data for Email address. ## Support and documentation: For all the support requests and general queries you can contact support@hyas.com or visit [contact-us](https://www.hyas.com/contact) From aaa526cf54eb42c943d7eddd7fd2bc23e4cb5dfc Mon Sep 17 00:00:00 2001 From: kian-beetroot <70074720+kian-beetroot@users.noreply.github.com> Date: Mon, 1 Nov 2021 23:17:00 +0100 Subject: [PATCH 099/219] updates Assently E-Sign updateCase action (#1232) * Adds Assently E-Sign custom connector for certification * fixes bug of getting file content of Assently case documents * Updates Assently readme file. * updates Assently E-Sign updateCase action --- .../Assently E-Sign/apiDefinition.swagger.json | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/certified-connectors/Assently E-Sign/apiDefinition.swagger.json b/certified-connectors/Assently E-Sign/apiDefinition.swagger.json index 7e7db2510b..b8abbe67f3 100644 --- a/certified-connectors/Assently E-Sign/apiDefinition.swagger.json +++ b/certified-connectors/Assently E-Sign/apiDefinition.swagger.json @@ -258,13 +258,9 @@ "in": "body", "required": true, "schema": { - "x-ms-dynamic-schema": { - "parameters": { - "schemaType": "caseModel" - }, - "operationId": "GetSchema", - "value-path": "schema" - } + "type": "object", + "x-ms-visibility": "important", + "title": "Case object to be updated" } } ] From b25d0db0ba81d2aa4de02e7ae3dcc41c7e7a6988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20=C3=9Cnl=C3=BC?= Date: Tue, 2 Nov 2021 04:35:23 +0300 Subject: [PATCH 100/219] Carbon Intensity (Independent Publisher) (Student) (#1173) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Updates for LMS365 connector (#851) * add empty schema definition for responses which may contain some data * Add Admins field to Course details * Remove ContentType property as it's not needed anymore * Add Asite (US Gov.) connector (#1048) * Add new Asite connector * Change connector files according to suggession by Microsoft team * Update indentation as suggested * Update indentation and remove redirectUrl Set redirectMode as a global so for that as Micfosoft team suggested to remove redirectUrl property. * Remove unicode character in readMe file * fix indentation * remove x-ms-api-annotation as suggested by Microsoft Team * update host URL ,OAuth URL and indentation for both swagger files * change background color as suggested * edit action's name and description * rollback icon background change * rollback changes * rollback the background color * Update apiProperties.json rollback bg color * Update apiProperties.json Change bg color * Changed brand background colour * Adding sub-folder API * Change readme file * add media property * [ADD] Add new connector for Asite (US Gov.) * [MOD] modify asite connector name Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal * Enable certification validation for independent publisher connector (#1169) * Add Carbon Intensity * Changed connector folder * Updated readme.md formatting * Updated apıProperties.json * Updated apiDefinition.swagger.json * Removed other connector files * Updated swagger_validation.yml * Removed extra space from swagger_validation.yml Co-authored-by: Alexei Gus <32488384+elearningforce-ag@users.noreply.github.com> Co-authored-by: Mahbub Murshed Co-authored-by: asitedeveloper <77782776+asitedeveloper@users.noreply.github.com> Co-authored-by: deven_bhatt Co-authored-by: rachir Co-authored-by: ShubhamPanchal Co-authored-by: Mahbub Murshed <48570820+mamurshe@users.noreply.github.com> --- .../apiDefinition.swagger.json | 513 ++++++++++++++++++ .../Carbon Intensity/apiProperties.json | 9 + .../Carbon Intensity/readme.md | 47 ++ 3 files changed, 569 insertions(+) create mode 100644 independent-publisher-connectors/Carbon Intensity/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Carbon Intensity/apiProperties.json create mode 100644 independent-publisher-connectors/Carbon Intensity/readme.md diff --git a/independent-publisher-connectors/Carbon Intensity/apiDefinition.swagger.json b/independent-publisher-connectors/Carbon Intensity/apiDefinition.swagger.json new file mode 100644 index 0000000000..e3838bf1c9 --- /dev/null +++ b/independent-publisher-connectors/Carbon Intensity/apiDefinition.swagger.json @@ -0,0 +1,513 @@ +{ + "swagger": "2.0", + "info": { + "title": "Carbon Intensity", + "description": "Uses Carbon Intensity API to provide an indicative trend of the regional carbon intensity of the electricity system in Great Britain", + "version": "1.0", + "contact": { + "name": "Hasan Unlu", + "email": "hu1997tr@gmail.com" + } + }, + "host": "api.carbonintensity.org.uk", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/intensity": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "from" + }, + "to": { + "type": "string", + "description": "to" + }, + "intensity": { + "type": "object", + "properties": { + "forecast": { + "type": "integer", + "format": "int32", + "description": "forecast" + }, + "actual": { + "type": "integer", + "format": "int32", + "description": "actual" + }, + "index": { + "type": "string", + "description": "index" + } + }, + "description": "intensity" + } + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Get National Carbon Intensity", + "description": "The API returns national carbon intensity data for current half hour. All times provided in UTC (+00:00)", + "operationId": "GetIntensity", + "parameters": [] + } + }, + "/intensity/factors": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Biomass": { + "type": "integer", + "format": "int32", + "description": "Biomass" + }, + "Coal": { + "type": "integer", + "format": "int32", + "description": "Coal" + }, + "Dutch Imports": { + "type": "integer", + "format": "int32", + "description": "Dutch Imports" + }, + "French Imports": { + "type": "integer", + "format": "int32", + "description": "French Imports" + }, + "Gas (Combined Cycle)": { + "type": "integer", + "format": "int32", + "description": "Gas (Combined Cycle)" + }, + "Gas (Open Cycle)": { + "type": "integer", + "format": "int32", + "description": "Gas (Open Cycle)" + }, + "Hydro": { + "type": "integer", + "format": "int32", + "description": "Hydro" + }, + "Irish Imports": { + "type": "integer", + "format": "int32", + "description": "Irish Imports" + }, + "Nuclear": { + "type": "integer", + "format": "int32", + "description": "Nuclear" + }, + "Oil": { + "type": "integer", + "format": "int32", + "description": "Oil" + }, + "Other": { + "type": "integer", + "format": "int32", + "description": "Other" + }, + "Pumped Storage": { + "type": "integer", + "format": "int32", + "description": "Pumped Storage" + }, + "Solar": { + "type": "integer", + "format": "int32", + "description": "Solar" + }, + "Wind": { + "type": "integer", + "format": "int32", + "description": "Wind" + } + } + }, + "description": "data" + } + } + } + } + }, + "description": "Get National Carbon Intensity factors for each fuel type", + "summary": "Get National Carbon Intensity Factors", + "operationId": "GetIntensityFactors", + "parameters": [] + } + }, + "/generation": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "from" + }, + "to": { + "type": "string", + "description": "to" + }, + "generationmix": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fuel": { + "type": "string", + "description": "fuel" + }, + "perc": { + "type": "number", + "format": "float", + "description": "perc" + } + } + }, + "description": "generationmix" + } + }, + "description": "data" + } + } + } + } + }, + "operationId": "GetGeneration", + "summary": "Get National Generation Mix", + "description": "Generation Mix for the GB power system. Contains the following fuel types: gas, coal, nuclear, biomass, hydro, imports, solar, wind, other.", + "parameters": [] + } + }, + "/regional/england": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "regionid": { + "type": "integer", + "format": "int32", + "description": "regionid" + }, + "dnoregion": { + "type": "string", + "description": "dnoregion" + }, + "shortname": { + "type": "string", + "description": "shortname" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "from" + }, + "to": { + "type": "string", + "description": "to" + }, + "intensity": { + "type": "object", + "properties": { + "forecast": { + "type": "integer", + "format": "int32", + "description": "forecast" + }, + "index": { + "type": "string", + "description": "index" + } + }, + "description": "intensity" + }, + "generationmix": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fuel": { + "type": "string", + "description": "fuel" + }, + "perc": { + "type": "number", + "format": "float", + "description": "perc" + } + } + }, + "description": "generationmix" + } + } + }, + "description": "data" + } + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Get Carbon Intensity for England", + "description": "Get Carbon Intensity data for current half hour for England. All times provided in UTC (+00:00).", + "operationId": "GetIntensityEngland", + "parameters": [] + } + }, + "/regional/scotland": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "regionid": { + "type": "integer", + "format": "int32", + "description": "regionid" + }, + "dnoregion": { + "type": "string", + "description": "dnoregion" + }, + "shortname": { + "type": "string", + "description": "shortname" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "from" + }, + "to": { + "type": "string", + "description": "to" + }, + "intensity": { + "type": "object", + "properties": { + "forecast": { + "type": "integer", + "format": "int32", + "description": "forecast" + }, + "index": { + "type": "string", + "description": "index" + } + }, + "description": "intensity" + }, + "generationmix": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fuel": { + "type": "string", + "description": "fuel" + }, + "perc": { + "type": "number", + "format": "float", + "description": "perc" + } + } + }, + "description": "generationmix" + } + } + }, + "description": "data" + } + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Get Carbon Intensity for Scotland", + "description": "Get Carbon Intensity data for current half hour for Scotland. All times provided in UTC (+00:00).", + "operationId": "GetIntensityScotland", + "parameters": [] + } + }, + "/regional/wales": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "regionid": { + "type": "integer", + "format": "int32", + "description": "regionid" + }, + "dnoregion": { + "type": "string", + "description": "dnoregion" + }, + "shortname": { + "type": "string", + "description": "shortname" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "description": "from" + }, + "to": { + "type": "string", + "description": "to" + }, + "intensity": { + "type": "object", + "properties": { + "forecast": { + "type": "integer", + "format": "int32", + "description": "forecast" + }, + "index": { + "type": "string", + "description": "index" + } + }, + "description": "intensity" + }, + "generationmix": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fuel": { + "type": "string", + "description": "fuel" + }, + "perc": { + "type": "number", + "format": "float", + "description": "perc" + } + } + }, + "description": "generationmix" + } + } + }, + "description": "data" + } + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Get Carbon Intensity for Wales", + "description": "Get Carbon Intensity data for current half hour for Wales. All times provided in UTC (+00:00).", + "operationId": "GetIntensityWales", + "parameters": [] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://carbonintensity.org.uk/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://github.com/carbon-intensity/terms/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } +] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Carbon Intensity/apiProperties.json b/independent-publisher-connectors/Carbon Intensity/apiProperties.json new file mode 100644 index 0000000000..3ecea9b66a --- /dev/null +++ b/independent-publisher-connectors/Carbon Intensity/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Hasan Unlu", + "stackOwner": "National Grid" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Carbon Intensity/readme.md b/independent-publisher-connectors/Carbon Intensity/readme.md new file mode 100644 index 0000000000..7524e9a922 --- /dev/null +++ b/independent-publisher-connectors/Carbon Intensity/readme.md @@ -0,0 +1,47 @@ +# Carbon Intensity + +This connector uses National Grid’s Carbon Intensity API to provide an indicative trend of regional carbon intensity of the electricity system in Great Britain (GB). + +## Publisher: Hasan Unlu + +## Prerequisites + +There are no prerequisites to use this connector.​ + +## Supported Operations + +### Intensity + +Gets Carbon Intensity data for current half hour. All times provided in UTC (+00:00). + +### Intensity Factors + +Gets Carbon Intensity factors for each fuel type. + +### Generation + +Gets generation mix for current half hour. All times provided in UTC (+00:00). + +### Regional England + +Gets Carbon Intensity data for current half hour for England. All times provided in UTC (+00:00). + +### Regional Scotland + +Gets Carbon Intensity data for current half hour for Scotland. All times provided in UTC (+00:00). + +### Regional Wales + +Gets Carbon Intensity data for current half hour for Wales. All times provided in UTC (+00:00). + +## Obtaining Credentials + +No credentials are required. + +## Known Issues and Limitations + +Not all operations provided by Carbon Intensity API are part of the current connector submission. + +## API Documentation + +Visit [Carbon Intensity APIs reference](https://api.carbonintensity.org.uk/) page for further details. From 695467327b49243ad3f9ff2b63992274c160d2f0 Mon Sep 17 00:00:00 2001 From: RoyPaarMS <86677937+RoyPaarMS@users.noreply.github.com> Date: Mon, 1 Nov 2021 20:36:42 -0500 Subject: [PATCH 101/219] New York Times (Independent Publisher) (#1193) * New York Times (Independent Publisher) Initial Commit * New York Times (Independent Publisher) Updated readme * New York Times (Independent Publisher) Updated readme. * New York Times (Independent Publisher) Changes request by Srikanth --- .../New York Times/apiDefinition.swagger.json | 479 ++++++++++++++++++ .../New York Times/apiProperties.json | 23 + .../New York Times/readme.md | 26 + 3 files changed, 528 insertions(+) create mode 100644 independent-publisher-connectors/New York Times/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/New York Times/apiProperties.json create mode 100644 independent-publisher-connectors/New York Times/readme.md diff --git a/independent-publisher-connectors/New York Times/apiDefinition.swagger.json b/independent-publisher-connectors/New York Times/apiDefinition.swagger.json new file mode 100644 index 0000000000..8cc13c4a42 --- /dev/null +++ b/independent-publisher-connectors/New York Times/apiDefinition.swagger.json @@ -0,0 +1,479 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "New York Times", + "description": "The New York Times allows anyone to search articles by keyword, date, section, and popularity. This connector allows a user to pull this data into their app, flow, or report.", + "contact": { + "name": "Roy Paar", + "email": "roypaar@microsoft.com" + } + }, + "host": "api.nytimes.com", + "basePath": "/svc/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "security": [ + { + "API Key": [] + } + ], + "paths": { + "/search/v2/articlesearch.json": { + "get": { + "summary": "Returns a list of articles based on keyword search", + "description": "Search for NYT articles by keywords.", + "operationId": "ArticleSearch", + "parameters": [ + { + "name": "q", + "in": "query", + "description": "Query", + "required": true, + "type": "string", + "x-ms-summary": "Keyword" + }, + { + "name": "begin_date", + "in": "query", + "description": "Begin date (e.g. 20120101)", + "required": false, + "type": "string", + "pattern": "^\\d{8}$", + "x-ms-summary": "Begin date (e.d. 20120101)" + }, + { + "name": "end_date", + "in": "query", + "description": "End date (e.g. 20121231)", + "required": false, + "type": "string", + "pattern": "^\\d{8}$", + "x-ms-summary": "End date (e.g. 20121231)" + } + ], + "tags": [ + "Article Search" + ], + "responses": { + "200": { + "description": "An array of articles.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string" + }, + "copyright": { + "type": "string" + }, + "response": { + "type": "object", + "properties": { + "docs": { + "type": "array", + "items": { + "$ref": "#/definitions/Article" + } + }, + "meta": { + "type": "object" + } + } + } + } + } + }, + "401": { + "description": "Unauthorized request. Make sure api-key is set." + }, + "429": { + "description": "Too many requests. You reached your per minute or per day rate limit." + } + } + } + }, + "/topstories/v2/{section}.json": { + "get": { + "summary": "Returns a list of top stories by section", + "description": "The Top Stories service returns an array of articles currently on the specified section.", + "operationId": "TopStories", + "parameters": [ + { + "name": "section", + "in": "path", + "description": "The section the story appears in.", + "required": true, + "type": "string", + "default": "home", + "x-ms-summary": "The section the store appears in.", + "enum": [ + "arts", + "automobiles", + "books", + "business", + "fashion", + "food", + "health", + "home", + "insider", + "magazine", + "movies", + "nyregion", + "obituaries", + "opinion", + "politics", + "realestate", + "science", + "sports", + "sundayreview", + "technology", + "theater", + "t-magazine", + "travel", + "upshot", + "us", + "world" + ], + "x-ms-url-encoding": "single" + } + ], + "tags": [ + "Top Stories" + ], + "responses": { + "200": { + "description": "An array of articles.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string" + }, + "copyright": { + "type": "string" + }, + "section": { + "type": "string" + }, + "last_updated": { + "type": "string" + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/Article" + } + } + } + } + }, + "401": { + "description": "Unauthorized request. Make sure api-key is set." + }, + "429": { + "description": "Too many requests. You reached your per minute or per day rate limit." + } + } + } + }, + "/mostpopular/v2/viewed/{period}.json": { + "get": { + "summary": "Returns a list of most viewed articles on NYTimes.com by time period", + "description": "Returns an array of the most viewed articles on NYTimes.com for specified period of time (1 day, 7 days, or 30 days).", + "operationId": "MostViewed", + "parameters": [ + { + "name": "period", + "in": "path", + "description": "Time period of 1, 7, or 30 days.", + "required": true, + "type": "integer", + "enum": [ + 1, + 7, + 30 + ], + "default": 1, + "x-ms-summary": "Time period of 1, 7, or 30 days.", + "x-ms-url-encoding": "single" + } + ], + "tags": [ + "Most Popular" + ], + "responses": { + "200": { + "description": "An array of articles.", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "API response status (e.g. OK)." + }, + "copyright": { + "type": "string", + "description": "Copyright message." + }, + "results": { + "type": "array", + "items": { + "$ref": "#/definitions/ViewedArticle" + }, + "description": "Array of articles." + } + } + } + }, + "401": { + "description": "Unauthorized request. Make sure api-key is set." + }, + "429": { + "description": "Too many requests. You reached your per minute or per day rate limit." + } + } + } + } + }, + "definitions": { + "Article": { + "type": "object", + "properties": { + "web_url": { + "type": "string" + }, + "snippet": { + "type": "string" + }, + "print_page": { + "type": "string" + }, + "source": { + "type": "string" + }, + "headline": { + "$ref": "#/definitions/Headline" + }, + "keywords": { + "type": "array", + "items": { + "$ref": "#/definitions/Keyword" + } + }, + "pub_date": { + "type": "string" + }, + "document_type": { + "type": "string" + }, + "news_desk": { + "type": "string" + }, + "type_of_material": { + "type": "string" + }, + "_id": { + "type": "string" + }, + "score": { + "type": "integer" + }, + "uri": { + "type": "string" + } + } + }, + "Headline": { + "type": "object", + "properties": { + "main": { + "type": "string" + }, + "kicker": { + "type": "string" + }, + "content_kicker": { + "type": "string" + }, + "print_headline": { + "type": "string" + }, + "name": { + "type": "string" + }, + "seo": { + "type": "string" + }, + "sub": { + "type": "string" + } + } + }, + "Keyword": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "major": { + "type": "string" + } + } + }, + "ViewedArticle": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Article's URL." + }, + "adx_keywords": { + "type": "string", + "description": "Semicolon separated list of keywords." + }, + "column": { + "type": "string", + "description": "Deprecated. Set to null." + }, + "section": { + "type": "string", + "description": "Article's section (e.g. Sports)." + }, + "byline": { + "type": "string", + "description": "Article's byline (e.g. By Thomas L. Friedman)." + }, + "type": { + "type": "string", + "description": "Asset type (e.g. Article, Interactive, ...)." + }, + "title": { + "type": "string", + "description": "Article's headline (e.g. When the Cellos Play, the Cows Come Home)." + }, + "abstract": { + "type": "string", + "description": "Brief summary of the article." + }, + "published_date": { + "type": "string", + "description": "When the article was published on the web (e.g. 2021-04-19)." + }, + "source": { + "type": "string", + "description": "Publisher (e.g. New York Times)." + }, + "des_facet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of description facets (e.g. Quarantine (Life and Culture))." + }, + "org_facet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of organization facets (e.g. Sullivan Street Bakery)." + }, + "per_facet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of person facets (e.g. Bittman, Mark)." + }, + "geo_facet": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of geographic facets (e.g. Canada)." + }, + "media": { + "type": "array", + "items": { + "$ref": "#/definitions/Media" + }, + "description": "Array of images." + }, + "uri": { + "type": "string", + "description": "An article's globally unique identifier." + } + } + }, + "Media": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Asset type (e.g. image)." + }, + "subtype": { + "type": "string", + "description": "Asset subtype (e.g. photo)." + }, + "caption": { + "type": "string", + "description": "Media caption." + }, + "copyright": { + "type": "string", + "description": "Media credit." + }, + "media-metadata": { + "type": "array", + "items": { + "$ref": "#/definitions/MediaMetadata" + }, + "description": "Media metadata (url, width, height, ...)." + } + } + }, + "MediaMetadata": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Image's URL." + }, + "format": { + "type": "string", + "description": "Image's crop name." + } + } + } + }, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "api-key" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://nytimes.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.nytimes.com/privacy/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Lifestyle and Entertainment" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/New York Times/apiProperties.json b/independent-publisher-connectors/New York Times/apiProperties.json new file mode 100644 index 0000000000..e787189c49 --- /dev/null +++ b/independent-publisher-connectors/New York Times/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "apikey", + "description": "The apikey for this api", + "tooltip": "Provide your apikey", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Roy Paar", + "stackOwner": "New York Times" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/New York Times/readme.md b/independent-publisher-connectors/New York Times/readme.md new file mode 100644 index 0000000000..403c77a577 --- /dev/null +++ b/independent-publisher-connectors/New York Times/readme.md @@ -0,0 +1,26 @@ +# New York Times +The New York Times allows anyone to search articles by keyword, date, section, and popularity. This connector allows a user to pull this data into their app, flow, or report. + +## Publisher: Roy Paar + +## Prerequisites +This API uses an API key. Register on the NYTimes Developer Portal (https://developer.nytimes.com/) for a free account. Then create an application. Then add the following three APIs to the application. Copy and paste the API key into the Power Platform connection. +1. Article Search API - Use the Article Search API to look up NYTimes articles by keyword. +2. Top Stories API - The Top Stories API returns an array of NYTimes articles currently on the specified section. +3. Most Popular API - The Most Popular API returns the most popular articles on NYTimes.com based on views. + +## Supported Operations +### Article Search +Get a list of articles by keyword. Enter a keyword into the 'q' field and optionally filter by begin_date or end_date. + +### Top Stories +Get a list of top stories by section. Available sections are arts, automobiles, books, business, fashion, food, health, home, insider, magazine, movies, nyregion, obituaries, opinion, politics, realestate, science, sports, sundayreview, technology, theater, t-magazine, travel, upshot, us, and world. + +### Most Viewed +Get a list of articles by popularity (number of views). Choose a time period of 1, 7, or 30 days. + +## API Documentation +https://developer.nytimes.com/apis + +## Known Issues and Limitations +None. From e587bec14bb4730c1fdc67446f984e458da5fd09 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:40:03 -0400 Subject: [PATCH 102/219] Clearbit (Independent Publisher) (#1194) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload * Update apiProperties.json * Update readme.md --- .../Clearbit/apiDefinition.swagger.json | 104 ++++++++++++++++++ .../Clearbit/apiProperties.json | 9 ++ .../Clearbit/readme.md | 18 +++ 3 files changed, 131 insertions(+) create mode 100644 independent-publisher-connectors/Clearbit/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Clearbit/apiProperties.json create mode 100644 independent-publisher-connectors/Clearbit/readme.md diff --git a/independent-publisher-connectors/Clearbit/apiDefinition.swagger.json b/independent-publisher-connectors/Clearbit/apiDefinition.swagger.json new file mode 100644 index 0000000000..14f4a1e245 --- /dev/null +++ b/independent-publisher-connectors/Clearbit/apiDefinition.swagger.json @@ -0,0 +1,104 @@ +{ + "swagger": "2.0", + "info": { + "title": "Clearbit", + "description": "Clearbit is the marketing data platform behind the fastest-growing B2B companies. Apply real-time intelligence across your entire stack to improve acquisition, conversion, and operations.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "logo.clearbit.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Get a company's logo", + "description": "Returns a company's logo with optional size, format and greyscale options.", + "operationId": "LogoGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "required": true, + "type": "string", + "description": "The company's domain.", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single" + }, + { + "name": "size", + "in": "query", + "required": false, + "type": "integer", + "default": 128, + "description": "The length of the longest side in pixels.", + "x-ms-summary": "Size" + }, + { + "name": "format", + "in": "query", + "required": false, + "type": "string", + "default": "png", + "description": "The image format.", + "x-ms-summary": "Format", + "enum": [ + "png", + "jpg" + ] + }, + { + "name": "greyscale", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Desaturates the image if true.", + "x-ms-summary": "Greyscale", + "enum": [ + false, + true + ] + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://clearbit.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://clearbit.com/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Intelligence" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Clearbit/apiProperties.json b/independent-publisher-connectors/Clearbit/apiProperties.json new file mode 100644 index 0000000000..42c295a768 --- /dev/null +++ b/independent-publisher-connectors/Clearbit/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "Clearbit" + } +} diff --git a/independent-publisher-connectors/Clearbit/readme.md b/independent-publisher-connectors/Clearbit/readme.md new file mode 100644 index 0000000000..49e6ad528e --- /dev/null +++ b/independent-publisher-connectors/Clearbit/readme.md @@ -0,0 +1,18 @@ +# Clearbit +Clearbit is the marketing data platform behind the fastest-growing B2B companies. Apply real-time intelligence across your entire stack to improve acquisition, conversion, and operations. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +Clearbit provides access to the Logo API with no account or authentication needed. Information about the API can be found [here](https://clearbit.com/docs#logo-api). + +## Obtaining Credentials +There are no credentials required to use the Logo API. + +## Supported Operations + +### Get a company's logo +Returns a company's logo with optional size, format and greyscale options. + +## Known Issues and Limitations +There are no known issues at this time. From cffeff72d122d31a03eeecadf1c9821b14decbf2 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:41:27 -0400 Subject: [PATCH 103/219] MailboxValidator (Independent Publisher) (#1195) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload * Add files via upload * Delete independent-publisher-connectors/Clearbit directory --- .../apiDefinition.swagger.json | 316 ++++++++++++++++++ .../MailboxValidator/apiProperties.json | 23 ++ .../MailboxValidator/readme.md | 22 ++ 3 files changed, 361 insertions(+) create mode 100644 independent-publisher-connectors/MailboxValidator/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/MailboxValidator/apiProperties.json create mode 100644 independent-publisher-connectors/MailboxValidator/readme.md diff --git a/independent-publisher-connectors/MailboxValidator/apiDefinition.swagger.json b/independent-publisher-connectors/MailboxValidator/apiDefinition.swagger.json new file mode 100644 index 0000000000..d0c1bb16ad --- /dev/null +++ b/independent-publisher-connectors/MailboxValidator/apiDefinition.swagger.json @@ -0,0 +1,316 @@ +{ + "swagger": "2.0", + "info": { + "title": "MailboxValidator", + "description": "MailboxValidator API is easy to integrate and use for email validation. Validate and clean your email list by detecting disposable emails, invalid emails, mail server and much more.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.mailboxvalidator.com", + "basePath": "/v1", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/validation/single": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "email_address": { + "type": "string", + "description": "The input email address.", + "title": "Email Address" + }, + "domain": { + "type": "string", + "description": "The domain of the email address.", + "title": "Domain" + }, + "is_free": { + "type": "string", + "description": "Whether the email address is from a free email provider like Gmail or Hotmail.", + "title": "Is Free" + }, + "is_syntax": { + "type": "string", + "description": "Whether the email address is syntactically correct.", + "title": "Is Syntax" + }, + "is_domain": { + "type": "string", + "description": "Whether the email address has a valid MX record in its DNS entries. '-' means not applicable.", + "title": "Is Domain" + }, + "is_smtp": { + "type": "string", + "description": "Whether the mail servers specified in the MX records are responding to connections. '-' means not applicable", + "title": "Is SMTP" + }, + "is_verified": { + "type": "string", + "description": "Whether the mail server confirms that the email address actually exist. '-' means not applicable.", + "title": "Is Verified" + }, + "is_server_down": { + "type": "string", + "description": "Whether the mail server is currently down or unresponsive. '-' means not applicable.", + "title": "Is Server Down" + }, + "is_greylisted": { + "type": "string", + "description": "Whether the mail server employs greylisting where an email has to be sent a second time at a later time. '-' means not applicable.", + "title": "Is Greylisted" + }, + "is_disposable": { + "type": "string", + "description": "Whether the email address is a temporary one from a disposable email provider. '-' means not applicable.", + "title": "Is Disposable" + }, + "is_suppressed": { + "type": "string", + "description": "Whether the email address is in our blacklist. '-' means not applicable.", + "title": "Is Suppressed" + }, + "is_role": { + "type": "string", + "description": "Whether the email address is a role-based email address like admin@example.net or webmaster@example.net. '-' means not applicable.", + "title": "Is Role" + }, + "is_high_risk": { + "type": "string", + "description": "Whether the email address contains high risk keywords. '-' means not applicable.", + "title": "Is High Risk" + }, + "is_catchall": { + "type": "string", + "description": "Whether the email address is a catch-all address. '-' means not applicable.", + "title": "Is Catchall" + }, + "mailboxvalidator_score": { + "type": "string", + "description": "Email address reputation score. Score > 0.70 means good; score > 0.40 means fair; score ≤ 0.40 means poor.", + "title": "MailboxValidator Score" + }, + "time_taken": { + "type": "string", + "description": "The time taken to get the results in seconds.", + "title": "Time Taken" + }, + "status": { + "type": "string", + "description": "Whether our system think the email address is valid based on all the previous fields.", + "title": "Status" + }, + "credits_available": { + "type": "integer", + "format": "int32", + "description": "The number of credits left to perform validations.", + "title": "Credits Available" + }, + "error_code": { + "type": "string", + "description": "The error code if there is any error.", + "title": "Error Code" + }, + "error_message": { + "type": "string", + "description": "The error message if there is any error.", + "title": "Error Message" + } + } + } + } + }, + "summary": "Validate a single email address", + "description": "Returns validations for a single email address.", + "operationId": "ValidateSingle", + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string", + "description": "The email address to be validated.", + "x-ms-summary": "Email" + }, + { + "name": "format", + "in": "query", + "required": true, + "type": "string", + "default": "json", + "description": "Return the result in JSON.", + "x-ms-summary": "Format", + "x-ms-visibility": "internal" + } + ] + } + }, + "/email/disposable": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "email_address": { + "type": "string", + "description": "The input email address.", + "title": "Email Address" + }, + "is_disposable": { + "type": "string", + "description": "Whether the email address is a temporary one from a disposable email provider. '-' means not applicable.", + "title": "Is Disposable" + }, + "credits_available": { + "type": "integer", + "format": "int32", + "description": "The number of credits left to perform validations.", + "title": "Credits Available" + }, + "error_code": { + "type": "string", + "description": "The error code if there is any error.", + "title": "Error Code" + }, + "error_message": { + "type": "string", + "description": "The error message if there is any error.", + "title": "Error Message" + } + } + } + } + }, + "summary": "Validate email address is from a disposable email provider", + "description": "Returns validation from whether email address is from a disposable email provider. Disposable email addresses (DEAs) are temporary email addresses that are only valid for a very short period of time.", + "operationId": "ValidateDisposable", + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string", + "description": "The email address to be validated.", + "x-ms-summary": "Email" + }, + { + "name": "format", + "in": "query", + "required": true, + "type": "string", + "default": "json", + "description": "Return the result in JSON.", + "x-ms-summary": "Format", + "x-ms-visibility": "internal" + } + ] + } + }, + "/email/free": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "email_address": { + "type": "string", + "description": "The input email address.", + "title": "Email Address" + }, + "is_free": { + "type": "string", + "description": "Whether the email address is from a free email provider like Gmail or Hotmail.", + "title": "Is Free" + }, + "credits_available": { + "type": "integer", + "format": "int32", + "description": "The number of credits left to perform validations.", + "title": "Credits Available" + }, + "error_code": { + "type": "string", + "description": "The error code if there is any error.", + "title": "Error Code" + }, + "error_message": { + "type": "string", + "description": "The error message if there is any error.", + "title": "Error Message" + } + } + } + } + }, + "summary": "Validate email address is from a free email provider", + "description": "Returns validation from whether email address is from a free email provider.", + "operationId": "ValidateFree", + "parameters": [ + { + "name": "email", + "in": "query", + "required": true, + "type": "string", + "description": "The email address to be validated.", + "x-ms-summary": "Email" + }, + { + "name": "format", + "in": "query", + "required": true, + "type": "string", + "default": "json", + "description": "Return the result in JSON.", + "x-ms-summary": "Format", + "x-ms-visibility": "internal" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.mailboxvalidator.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.mailboxvalidator.com/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Intelligence" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/MailboxValidator/apiProperties.json b/independent-publisher-connectors/MailboxValidator/apiProperties.json new file mode 100644 index 0000000000..1939732ad7 --- /dev/null +++ b/independent-publisher-connectors/MailboxValidator/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "MailboxValidator" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/MailboxValidator/readme.md b/independent-publisher-connectors/MailboxValidator/readme.md new file mode 100644 index 0000000000..5d3f0f8be2 --- /dev/null +++ b/independent-publisher-connectors/MailboxValidator/readme.md @@ -0,0 +1,22 @@ +# MailboxValidator +MailboxValidator API is easy to integrate and use for email validation. Validate and clean your email list by detecting disposable emails, invalid emails, mail server and much more. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +MailboxValidator has an API-Free plan which allows 300 queries a month at no charge. Additional paid plans are available if you need additional queries. + +## Obtaining Credentials +After creating your developer account, visit your [dashboard](https://www.mailboxvalidator.com/dashboard) to see your API key. + +## Supported Operations + +### Validate a single email address +Returns validations for a single email address. +### Validate email address is from a disposable email provider +Returns validation from whether email address is from a disposable email provider. Disposable email addresses (DEAs) are temporary email addresses that are only valid for a very short period of time. +### Validate email address is from a free email provider +Returns validation from whether email address is from a free email provider. + +## Known Issues and Limitations +There are no known issues at this time. From 62804001b4d3732090be4f078cc15f7f5a0ddbbc Mon Sep 17 00:00:00 2001 From: RoyPaarMS <86677937+RoyPaarMS@users.noreply.github.com> Date: Mon, 1 Nov 2021 20:42:37 -0500 Subject: [PATCH 104/219] The Weather Channel (Independent Publisher) (#1197) * The Weather Channel (Independent Publisher) Initial Commit * The Weather Channel (Independent Publisher) Resolved Flow issue by changing response structure * The Weather Channel (Independent Publisher) Added stackOwner * The Weather Channel (Independent Publisher) Removed Power Platform from readme and apiDefinition --- .../apiDefinition.swagger.json | 278 ++++++++++++++++++ .../The Weather Channel/apiProperties.json | 23 ++ .../The Weather Channel/readme.md | 23 ++ 3 files changed, 324 insertions(+) create mode 100644 independent-publisher-connectors/The Weather Channel/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/The Weather Channel/apiProperties.json create mode 100644 independent-publisher-connectors/The Weather Channel/readme.md diff --git a/independent-publisher-connectors/The Weather Channel/apiDefinition.swagger.json b/independent-publisher-connectors/The Weather Channel/apiDefinition.swagger.json new file mode 100644 index 0000000000..81dfb5a907 --- /dev/null +++ b/independent-publisher-connectors/The Weather Channel/apiDefinition.swagger.json @@ -0,0 +1,278 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "The Weather Channel", + "description": "The Weather Channel allows anyone to search weather events by geocode and time. This connector allows a user to pull this data into their app, flow, or report.", + "contact": { + "name": "Roy Paar", + "email": "roypaar@microsoft.com" + } + }, + "host": "api.weather.com", + "basePath": "/v3", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/wx/observations/current": { + "get": { + "summary": "Request current weather conditions", + "operationId": "GetConditions", + "description": "Request current weather conditions", + "parameters": [ + { + "$ref": "#/parameters/geocode" + }, + { + "$ref": "#/parameters/units" + }, + { + "$ref": "#/parameters/language" + }, + { + "$ref": "#/parameters/format" + } + ], + "responses": { + "200": { + "$ref": "#/responses/OKRequest" + } + } + } + }, + "/alerts/headlines": { + "get": { + "summary": "Request weather alert headlines", + "operationId": "GetHeadlines", + "description": "Request weather alert headlines", + "parameters": [ + { + "$ref": "#/parameters/geocode" + }, + { + "$ref": "#/parameters/acceptHeader" + }, + { + "$ref": "#/parameters/language" + }, + { + "$ref": "#/parameters/format" + } + ], + "responses": { + "200": { + "$ref": "#/responses/OKRequest" + } + } + } + }, + "/wx/conditions/historical/dailysummary/30day": { + "get": { + "summary": "Request historical weather observations", + "operationId": "GetHistory", + "description": "Request historical weather observations", + "parameters": [ + { + "$ref": "#/parameters/geocode" + }, + { + "$ref": "#/parameters/units" + }, + { + "$ref": "#/parameters/language" + }, + { + "$ref": "#/parameters/format" + } + ], + "responses": { + "200": { + "$ref": "#/responses/OKRequest" + } + } + } + } + }, + "definitions": { + "successSchema": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "statusDetails": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "statusCode": { + "type": "string" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/messages" + } + } + } + }, + "messages": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + }, + "parameters": { + "geocode": { + "name": "geocode", + "in": "query", + "description": "A comma-delimited latitude and longitude to retrieve data for. For example, 34.53,-84.50.", + "required": true, + "type": "string", + "default": "33.74,-84.39", + "x-ms-summary": "A comma-delimited latitude and longitude." + }, + "latitude": { + "name": "latitude", + "in": "path", + "description": "Latitude", + "required": true, + "type": "number", + "default": 33.74, + "x-ms-summary": "Latitude", + "x-ms-url-encoding": "single" + }, + "longitude": { + "name": "longitude", + "in": "path", + "description": "Longitude", + "required": true, + "type": "number", + "default": -84.39, + "x-ms-summary": "Longitude", + "x-ms-url-encoding": "single" + }, + "locationType": { + "name": "locationType", + "in": "path", + "description": "Location Type", + "required": true, + "type": "string", + "enum": [ + "county", + "country", + "state" + ], + "x-ms-summary": "Location Type", + "x-ms-url-encoding": "single" + }, + "duration": { + "name": "duration", + "in": "path", + "description": "Period for reports in the past", + "required": true, + "type": "string", + "enum": [ + "60day", + "1year" + ], + "x-ms-summary": "Period for reports in the past", + "x-ms-url-encoding": "single" + }, + "acceptHeader": { + "name": "acceptHeader", + "in": "header", + "description": "Required to be set to gzip to ensure that the response is compressed", + "required": true, + "type": "string", + "default": "gzip", + "x-ms-summary": "Required to be set to gzip" + }, + "units": { + "name": "units", + "in": "query", + "description": "The units of measure to return the data in. For example, e=Imperial(English), m=Metric, h=Hybrid. Some APIs require the units of measure.", + "required": true, + "type": "string", + "enum": [ + "e", + "m" + ], + "default": "e", + "x-ms-summary": "The units of measure to return the data in." + }, + "language": { + "name": "language", + "in": "query", + "description": "The language to return the response in. For example, en-US, es-MX, fr-FR.", + "required": true, + "type": "string", + "default": "en-US", + "x-ms-summary": "The language to return the response in." + }, + "format": { + "name": "format", + "in": "query", + "description": "Response format", + "required": true, + "type": "string", + "enum": [ + "json" + ], + "default": "json", + "x-ms-summary": "Response format" + } + }, + "responses": { + "OKRequest": { + "description": "OK. The request has succeeded", + "schema": { + "$ref": "#/definitions/successSchema" + } + } + }, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "apiKey" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://weather.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://weather.com/privacy-settings" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/The Weather Channel/apiProperties.json b/independent-publisher-connectors/The Weather Channel/apiProperties.json new file mode 100644 index 0000000000..b97004af9b --- /dev/null +++ b/independent-publisher-connectors/The Weather Channel/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Roy Paar", + "stackOwner": "The Weather Channel" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/The Weather Channel/readme.md b/independent-publisher-connectors/The Weather Channel/readme.md new file mode 100644 index 0000000000..de5f2a761e --- /dev/null +++ b/independent-publisher-connectors/The Weather Channel/readme.md @@ -0,0 +1,23 @@ +# The Weather Channel +The Weather Channel allows anyone to search weather events by geocode and time. This connector allows a user to pull this data into their app, flow, or report. + +## Publisher: Roy Paar + +## Prerequisites +This API uses an API key. Register on the IBM call for code portal (https://developer.ibm.com/callforcode/tools/weather/) in order to request an API key. + +## Supported Operations +### Get Current Conditions +Get current conditions for a specific geocode. + +### Get Alert Headlines +Get any headline weather alerts for a specific geocode. + +### Get Historical Conditions +Get historical conditions for a specific geocode. + +## API Documentation +https://weather.com/swagger-docs/call-for-code + +## Known Issues and Limitations +None. From 11cc44abc69a20b141fd5f7d04ac67dc004ef3f4 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:43:51 -0400 Subject: [PATCH 105/219] Icon Horse (Independent Publisher) (#1192) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload * Add response x-ms-summary * Update readme.md * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json --- .../Icon Horse/apiDefinition.swagger.json | 128 ++++++++++++++++++ .../Icon Horse/apiProperties.json | 9 ++ .../Icon Horse/readme.md | 18 +++ 3 files changed, 155 insertions(+) create mode 100644 independent-publisher-connectors/Icon Horse/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Icon Horse/apiProperties.json create mode 100644 independent-publisher-connectors/Icon Horse/readme.md diff --git a/independent-publisher-connectors/Icon Horse/apiDefinition.swagger.json b/independent-publisher-connectors/Icon Horse/apiDefinition.swagger.json new file mode 100644 index 0000000000..73663ae7fd --- /dev/null +++ b/independent-publisher-connectors/Icon Horse/apiDefinition.swagger.json @@ -0,0 +1,128 @@ +{ + "swagger": "2.0", + "info": { + "title": "Icon Horse", + "description": "Get any site's favicon with Icon Horse. Confidently use Icon Horse and get bulletproof favicons with fallbacks if no icon exists. Icon Horse scours any website for the perfect favicon to use. Not just any icon, but the best quality available.", + "version": "1.1", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "icon.horse", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/icon/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + }, + "headers": { + "Content-Type": { + "description": "The response media type.", + "x-ms-summary": "Content-Type", + "type": "string" + }, + "content-disposition": { + "description": "Contains whether the response content is displayed in the browser or saved locally, and the filename.", + "x-ms-summary": "content-disposition", + "type": "string" + } + } + } + }, + "summary": "Get favicon", + "description": "Retrieve the best available favicon. A backup image is returned if no favicon is available.", + "operationId": "FaviconGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "required": true, + "type": "string", + "description": "The domain name you are requesting a favicon for.", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single", + { + "name": "apikey", + "in": "query", + "required": false, + "type": "string", + "description": "Identifies you as a Pro client, meaning you can use Pro features.", + "x-ms-summary": "API Key" + }, + { + "name": "fallback_text", + "in": "query", + "required": false, + "type": "string", + "default": "EFF6FF", + "description": "Specify a custom text colour for the fallback icon's text. Expects a hex colour value with no hash mark. Pro/Enterprise only", + "x-ms-summary": "Fallback Text" + }, + { + "name": "fallback_bg", + "in": "query", + "required": false, + "type": "string", + "default": "1F2937", + "description": "Specify a custom background colour for the fallback icon. Expects a hex colour value with no hash mark. Pro/Enterprise only", + "x-ms-summary": "Fallback Background" + }, + { + "name": "size", + "in": "query", + "required": false, + "type": "string", + "description": "If the site has multiple options available for icons, serve the size you prefer. Please note that if you request a size that is not available, you will be served whatever icon size is closest to the one you requested \u2013 unless you set ignore_other_sizes (see below), in which case you will get the fallback in the size you requested. Pro/Enterprise only", + "x-ms-summary": "Size" + }, + { + "name": "ignore_other_sizes", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "If you specified a size param, and if you want Icon Horse to serve you a fallback if that size is not available (but other sizes might be), set this to true. Pro/Enterprise only", + "x-ms-summary": "Ignore Other Sizes", + "enum": [ + false, + true + ] + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://icon.horse/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://icon.horse/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Website" + } + ] +} diff --git a/independent-publisher-connectors/Icon Horse/apiProperties.json b/independent-publisher-connectors/Icon Horse/apiProperties.json new file mode 100644 index 0000000000..dae6749d6b --- /dev/null +++ b/independent-publisher-connectors/Icon Horse/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "Icon Horse" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Icon Horse/readme.md b/independent-publisher-connectors/Icon Horse/readme.md new file mode 100644 index 0000000000..49f47c74aa --- /dev/null +++ b/independent-publisher-connectors/Icon Horse/readme.md @@ -0,0 +1,18 @@ +# Icon Horse +Get any site's favicon with Icon Horse. Confidently use Icon Horse and get bulletproof favicons with fallbacks if no icon exists. Icon Horse scours any website for the perfect favicon to use. Not just any icon, but the best quality available. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +To use the free service, no signup is required. There is a $9/month Pro service which has no usage limits, allows you to customize the fallback icon, service icons from your own domain, and page screenshots. + +## Obtaining Credentials +There are no credentials required to use the free service. The Pro service can be used by including your API key in the operation parameter. + +## Supported Operations + +### Get favicon +Retrieve the best available favicon. A backup image is returned if no favicon is available. + +## Known Issues and Limitations +The Pro service is currently in beta and not widely available. Parameters that require the Pro service have 'Pro/Enterprise only' at the end of the description. From c8621ee8ca94bd7906e4be2971f3dc518eaf0599 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:45:04 -0400 Subject: [PATCH 106/219] Federal Reserve Economic Data (FRED) (Independent Publisher) (#1186) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload --- .../apiDefinition.swagger.json | 6092 +++++++++++++++++ .../apiProperties.json | 23 + .../Federal Reserve Economic Data/readme.md | 78 + 3 files changed, 6193 insertions(+) create mode 100644 independent-publisher-connectors/Federal Reserve Economic Data/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Federal Reserve Economic Data/apiProperties.json create mode 100644 independent-publisher-connectors/Federal Reserve Economic Data/readme.md diff --git a/independent-publisher-connectors/Federal Reserve Economic Data/apiDefinition.swagger.json b/independent-publisher-connectors/Federal Reserve Economic Data/apiDefinition.swagger.json new file mode 100644 index 0000000000..37cf3d2e33 --- /dev/null +++ b/independent-publisher-connectors/Federal Reserve Economic Data/apiDefinition.swagger.json @@ -0,0 +1,6092 @@ +{ + "swagger": "2.0", + "info": { + "title": "Federal Reserve Economic Data", + "description": "FRED contains frequently updated US macro and regional economic time series at annual, quarterly, monthly, weekly, and daily frequencies. FRED aggregates economic data from a variety of sources- most of which are US government agencies. The economic time series in FRED contain observation or measurement periods associated with data values.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "api.stlouisfed.org", + "basePath": "/fred", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/category": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The category identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + } + } + }, + "description": "The categories.", + "title": "Categories" + } + } + } + } + }, + "summary": "Get a category", + "description": "Get a category.", + "parameters": [ + { + "name": "category_id", + "in": "query", + "description": "The identifier for a category.", + "x-ms-summary": "Category ID", + "required": true, + "type": "integer", + "default": 0 + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + } + ], + "operationId": "CategoryGetA" + } + }, + "/category/children": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The category identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The category name.", + "title": "Name" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + } + } + }, + "description": "The categories.", + "title": "Categories" + } + } + } + } + }, + "parameters": [ + { + "name": "category_id", + "in": "query", + "description": "The identifier for a category.", + "x-ms-summary": "Category ID", + "required": true, + "type": "integer", + "default": 0 + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ], + "summary": "Get the child categories", + "description": "Get the child categories for a specified parent category.", + "operationId": "CategoryGetChild" + } + }, + "/category/related": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The category identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The category name.", + "title": "Name" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + } + } + }, + "description": "The categories.", + "title": "Categories" + } + } + } + } + }, + "summary": "Get the related categories for a category", + "description": "A related category is a one-way relation between 2 categories that is not part of a parent-child category hierarchy. Most categories do not have related categories.", + "operationId": "CategoryGetRelated", + "parameters": [ + { + "name": "category_id", + "in": "query", + "description": "The identifier for a category.", + "x-ms-summary": "Category ID", + "required": true, + "type": "integer", + "default": 0 + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/category/series": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "group_popularity": { + "type": "integer", + "format": "int32", + "description": "The group popularity ranking.", + "title": "Group Popularity" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "summary": "Get the series in a category", + "description": "Get the series in a category.", + "operationId": "CategoryGetSeries", + "parameters": [ + { + "name": "category_id", + "in": "query", + "description": "The identifier for a category.", + "x-ms-summary": "Category ID", + "required": true, + "type": "integer", + "default": 0 + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "filter_variable", + "in": "query", + "description": "The attribute to filter results by.", + "x-ms-summary": "Filter Variable", + "required": false, + "type": "string", + "enum": [ + "frequency", + "units", + "seasonal_adjustment" + ] + }, + { + "name": "filter_value", + "in": "query", + "description": "The value of the filter variable attribute to filter results by.", + "x-ms-summary": "Filter Value", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + } + ] + } + }, + "/category/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the tags for a category", + "description": "Get the FRED tags for a category.", + "operationId": "CategoryGetTags", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/category/related_tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the related tags for tags within a category", + "description": "Get the related FRED tags for one or more FRED tags within a category. FRED tags are attributes assigned to series. For this request, related FRED tags are the tags assigned to series that match all tags in the parameters.", + "operationId": "CategoryGetRelatedTags", + "parameters": [ + { + "name": "category_id", + "in": "query", + "description": "The identifier for a category.", + "x-ms-summary": "Category ID", + "required": true, + "type": "integer", + "default": 0 + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + } + ] + } + }, + "/category/releases": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "releases": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "press_release": { + "type": "boolean", + "description": "Whether there is a press release.", + "title": "Press Release" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The releases.", + "title": "Releases" + } + } + } + } + }, + "summary": "Get all releases of economic data", + "description": "Get all releases of economic data.", + "operationId": "ReleaseGetAll", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/releases/dates": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "release_dates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "release_id": { + "type": "integer", + "format": "int32", + "description": "The release identifier.", + "title": "Release ID" + }, + "release_name": { + "type": "string", + "description": "The release name.", + "title": "Release Name" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "Date" + } + } + }, + "description": "The release dates.", + "title": "Release Dates" + } + } + } + } + }, + "summary": "Get release dates for all releases of economic data", + "description": "Get release dates for all releases of economic data.", + "operationId": "ReleaseGetDates", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "include_release_dates_with_no_data", + "in": "query", + "description": "Determines whether release dates with no data available are returned. The defalut value 'false' excludes release dates that do not have data. In particular, this excludes future release dates which may be available in the FRED release calendar or the ALFRED release calendar.", + "x-ms-summary": "Include Release Dates With No Data", + "required": false, + "type": "string", + "enum": [ + "true", + "false" + ] + } + ] + } + }, + "/release": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "releases": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "press_release": { + "type": "boolean", + "description": "Whether there is a press release.", + "title": "Press Release" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The releases.", + "title": "Releases" + } + } + } + } + }, + "summary": "Get a release of economic data", + "description": "Get a release of economic data.", + "operationId": "ReleaseGetA", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/release/dates": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "release_dates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "release_id": { + "type": "integer", + "format": "int32", + "description": "The release identifier.", + "title": "Release ID" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "Date" + } + } + }, + "description": "The release dates.", + "title": "Release Dates" + } + } + } + } + }, + "summary": "Get release dates for a release of economic data", + "description": "Get release dates for a release of economic data. Note that release dates are published by data sources and do not necessarily represent when data will be available on the FRED or ALFRED websites.", + "operationId": "ReleaseGetReleaseDates", + "parameters": [ + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "include_release_dates_with_no_data", + "in": "query", + "description": "Determines whether release dates with no data available are returned. The defalut value 'false' excludes release dates that do not have data. In particular, this excludes future release dates which may be available in the FRED release calendar or the ALFRED release calendar.", + "x-ms-summary": "Include Releases With No Data", + "required": false, + "type": "string", + "enum": [ + "true", + "false" + ] + } + ] + } + }, + "/release/series": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "group_popularity": { + "type": "integer", + "format": "int32", + "description": "The group popularity ranking.", + "title": "Group Popularity" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "summary": "Get the series on a release of economic data", + "description": "Get the series on a release of economic data.", + "operationId": "ReleaseGetSeries", + "parameters": [ + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "filter_variable", + "in": "query", + "description": "The attribute to filter results by.", + "x-ms-summary": "Filter Variable", + "required": false, + "type": "string", + "enum": [ + "frequency", + "units", + "seasonal_adjustment" + ] + }, + { + "name": "filter_value", + "in": "query", + "description": "The value of the filter variable attribute to filter results by.", + "x-ms-summary": "Filter Value", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + } + ] + } + }, + "/release/sources": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The sources.", + "title": "Sources" + } + } + } + } + }, + "summary": "Get the sources for a release of economic data", + "description": "Get the sources for a release of economic data.", + "operationId": "ReleaseGetSources", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/release/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the tags for a release", + "description": "Get the FRED tags for a release.", + "operationId": "ReleaseGetTags", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/release/related_tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the related tags for one or more tags within a release", + "description": "Get the related FRED tags for one or more FRED tags within a release.", + "operationId": "ReleaseGetRelatedTags", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/release/tables": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "element_id": { + "type": "integer", + "format": "int32", + "description": "The element identifier.", + "title": "Element ID" + }, + "release_id": { + "type": "string", + "description": "The release identifier.", + "title": "Release ID" + }, + "elements": { + "type": "object", + "properties": { + "element": { + "type": "object", + "properties": { + "element_id": { + "type": "integer", + "format": "int32", + "description": "The element identifier.", + "title": "element_id" + }, + "release_id": { + "type": "integer", + "format": "int32", + "description": "The release identifier.", + "title": "Release ID" + }, + "series_id": { + "type": "string", + "description": "The series identifier.", + "title": "Series ID" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + }, + "line": { + "type": "string", + "description": "The line.", + "title": "Line" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "level": { + "type": "string", + "description": "The level.", + "title": "Level" + }, + "children": { + "type": "array", + "items": { + "type": "object", + "properties": { + "element_id": { + "type": "integer", + "format": "int32", + "description": "The element identifier.", + "title": "Element ID" + }, + "release_id": { + "type": "integer", + "format": "int32", + "description": "The release identifier.", + "title": "Release ID" + }, + "series_id": { + "type": "string", + "description": "The series identifier.", + "title": "Series ID" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + }, + "line": { + "type": "string", + "description": "The line.", + "title": "Line" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "level": { + "type": "string", + "description": "The level.", + "title": "Level" + }, + "children": { + "type": "array", + "items": {}, + "description": "The children.", + "title": "Children" + } + } + }, + "description": "The children.", + "title": "Children" + } + }, + "description": "The Element.", + "title": "Element" + } + }, + "description": "The elements.", + "title": "Elements" + } + } + } + } + }, + "parameters": [ + { + "name": "release_id", + "in": "query", + "description": "The release identifier.", + "x-ms-summary": "Release ID", + "required": false, + "type": "integer" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "element_id", + "in": "query", + "description": "The release table element id you would like to retrieve.", + "x-ms-summary": "Element ID", + "required": false, + "type": "integer" + }, + { + "name": "include_observation_values", + "in": "query", + "description": "A flag to indicate that observations need to be returned. Observation value and date will only be returned for a series type element.", + "x-ms-summary": "Include Observation Values", + "required": false, + "type": "string", + "enum": [ + "true", + "false" + ], + "default": "false" + }, + { + "name": "observation_date", + "in": "query", + "description": "The observation date to be included with the returned release table. YYYY-MM-DD formatted string.", + "x-ms-summary": "Observation Date", + "required": false, + "type": "string" + } + ], + "summary": "Get release table trees for a given release", + "description": "Get release table trees for a given release. Note that release dates are published by data sources and do not necessarily represent when data will be available on the FRED or ALFRED websites.", + "operationId": "ReleaseGetTables" + } + }, + "/series": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ], + "summary": "Get an economic data series", + "description": "Get an economic data series.", + "operationId": "SeriesGetA" + } + }, + "/series/categories": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "parent_id": { + "type": "integer", + "format": "int32", + "description": "The parent identifier.", + "title": "Parent ID" + } + } + }, + "description": "The categories.", + "title": "Categories" + } + } + } + } + }, + "summary": "Get the categories for an economic data series", + "description": "Get the categories for an economic data series.", + "operationId": "SeriesGetCategory", + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/series/observations": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "observation_start": { + "type": "string", + "description": "The start of the observation period. YYYY-MM-DD formatted string.", + "title": "observation_start" + }, + "observation_end": { + "type": "string", + "description": "The end of the observation period. YYYY-MM-DD formatted string.", + "title": "observation_end" + }, + "units": { + "type": "string", + "description": "A key that indicates a data value transformation.", + "title": "units", + "enum": [ + "lin", + "chg", + "ch1", + "pch", + "pc1", + "pca", + "cch", + "cca", + "log" + ], + "default": "lin" + }, + "output_type": { + "type": "integer", + "format": "int32", + "description": "An integer that indicates an output type.", + "title": "Output Type", + "enum": [ + 1, + 2, + 3, + 4 + ], + "default": 1 + }, + "file_type": { + "type": "string", + "description": "A key or file extension that indicates the type of file to send.", + "title": "File Type" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "observations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "Date" + }, + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + } + } + }, + "description": "The observations.", + "title": "Observations" + } + } + } + } + }, + "summary": "Get the observations or data values for an economic data series", + "description": "Get the observations or data values for an economic data series.", + "operationId": "SeriesGetObservations", + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "observation_start", + "in": "query", + "description": "The start of the observation period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Observation Start", + "required": false, + "type": "string" + }, + { + "name": "observation_end", + "in": "query", + "description": "The end of the observation period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Observation End", + "required": false, + "type": "string" + }, + { + "name": "units", + "in": "query", + "description": "A key that indicates a data value transformation.", + "x-ms-summary": "Units", + "required": false, + "type": "string", + "enum": [ + "lin", + "chg", + "ch1", + "pch", + "pc1", + "pca", + "cch", + "cca", + "log" + ], + "default": "lin" + }, + { + "name": "frequency", + "in": "query", + "description": "An optional parameter that indicates a lower frequency to aggregate values to. The FRED frequency aggregation feature converts higher frequency data series into lower frequency data series (e.g. converts a monthly data series into an annual data series). In FRED, the highest frequency data is daily, and the lowest frequency data is annual.", + "x-ms-summary": "Frequency", + "required": false, + "type": "string", + "enum": [ + "d", + "w", + "bw", + "m", + "q", + "sa", + "a", + "wef", + "weth", + "wew", + "wetu", + "wem", + "wesu", + "wesa", + "bwew", + "bwem" + ] + }, + { + "name": "aggregation_method", + "in": "query", + "description": "A key that indicates the aggregation method used for frequency aggregation. This parameter has no affect if the frequency parameter is not set.", + "x-ms-summary": "Aggregation Method", + "required": false, + "type": "string", + "enum": [ + "avg", + "sum", + "eop" + ], + "default": "avg" + }, + { + "name": "output_type", + "in": "query", + "description": "An integer that indicates an output type.", + "x-ms-summary": "Output Type", + "required": false, + "type": "integer", + "enum":[ + 1, + 2, + 3, + 4 + ], + "default": 1 + }, + { + "name": "vintage_dates", + "in": "query", + "description": "A comma separated string of YYYY-MM-DD formatted dates in history (e.g. 2000-01-01,2005-02-24). Vintage dates are used to download data as it existed on these specified dates in history. Vintage dates can be specified instead of a real-time period using real-time start and real-time end.", + "x-ms-summary": "Vintage Dates", + "required": false, + "type": "string" + } + ] + } + }, + "/series/release": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "releases": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "press_release": { + "type": "boolean", + "description": "Whether there is a press release.", + "title": "Press Release" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The releases.", + "title": "Releases" + } + } + } + } + }, + "summary": "Get the release for an economic data series", + "description": "Get the release for an economic data series.", + "operationId": "SeriesGetRelease", + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/series/search": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "group_popularity": { + "type": "integer", + "format": "int32", + "description": "The group popularity ranking.", + "title": "Group Popularity" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "summary": "Get economic data series that match search text", + "description": "Get economic data series that match search text.", + "operationId": "SeriesSearch", + "parameters": [ + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "search_type", + "in": "query", + "description": "Determines the type of search to perform.", + "x-ms-summary": "Search Type", + "required": false, + "type": "string", + "enum": [ + "full_text", + "series_id" + ], + "default": "full_text" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "filter_variable", + "in": "query", + "description": "The attribute to filter results by.", + "x-ms-summary": "Filter Variable", + "required": false, + "type": "string", + "enum": [ + "frequency", + "units", + "seasonal_adjustment" + ] + }, + { + "name": "filter_value", + "in": "query", + "description": "The value of the filter variable attribute to filter results by.", + "x-ms-summary": "Filter Value", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + } + ] + } + }, + "/series/search/related_tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the related tags for one or more tags matching a series search", + "description": "Get the related FRED tags for one or more FRED tags matching a series search.", + "operationId": "SeriesGetRelatedTagsSearch", + "parameters": [ + { + "name": "series_search_text", + "in": "query", + "description": "The words to match against economic data series.", + "x-ms-summary": "Series Search Text", + "required": true, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "tag_search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Tag Search Text", + "required": false, + "type": "string" + } + ] + } + }, + "/series/search/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the tags for a series search", + "description": "Get the FRED tags for a series search.", + "operationId": "SeriesGetTagsSearch", + "parameters": [ + { + "name": "series_search_text", + "in": "query", + "description": "The words to match against economic data series.", + "x-ms-summary": "Series Search Text", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "tag_search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Tag Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/series/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the tags for a series", + "description": "Get the FRED tags for a series.", + "operationId": "SeriesGetTags", + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/series/updates": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "filter_variable": { + "type": "string", + "description": "The filter variable.", + "title": "Filter Variable" + }, + "filter_value": { + "type": "string", + "description": "The filter value.", + "title": "Filter Value" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "summary": "Get economic data series sorted by when observations were updated", + "description": "Get economic data series sorted by when observations were updated on the FRED server. Results are limited to series updated within the last two weeks.", + "operationId": "SeriesGetUpdates", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "filter_value", + "in": "query", + "description": "The value of the filter variable attribute to filter results by.", + "x-ms-summary": "Filter Value", + "required": false, + "type": "string" + }, + { + "name": "start_time", + "in": "query", + "description": "The start time.", + "x-ms-summary": "Start Time", + "required": false, + "type": "string" + }, + { + "name": "end_time", + "in": "query", + "description": "The end time.", + "x-ms-summary": "End Time", + "required": false, + "type": "string" + } + ] + } + }, + "/series/vintagedates": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "vintage_dates": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The vintage dates.", + "title": "Vintage Dates" + } + } + } + } + }, + "summary": "Get the dates in history when a series' data values were revised", + "description": "Get the dates in history when a series' data values were revised or new data values were released. Vintage dates are the release dates for a series excluding release dates when the data for the series did not change.", + "operationId": "SeriesGetHistoryDates", + "parameters": [ + { + "name": "series_id", + "in": "query", + "description": "The identifer for a series.", + "x-ms-summary": "Series ID", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/sources": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The sources.", + "title": "Sources" + } + } + } + } + }, + "summary": "Get all sources of economic data", + "description": "Get all sources of economic data.", + "operationId": "SourcesGetAll", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/source": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "sources": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The sources.", + "title": "Sources" + } + } + } + } + }, + "summary": "Get a source of economic data", + "description": "Get a source of economic data.", + "operationId": "SourceGetA", + "parameters": [ + { + "name": "source_id", + "in": "query", + "description": "The identifier for a source.", + "x-ms-summary": "Source ID", + "required": true, + "type": "integer" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + } + ] + } + }, + "/source/releases": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "releases": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "press_release": { + "type": "boolean", + "description": "Whether there is a press release.", + "title": "Press Release" + }, + "link": { + "type": "string", + "description": "The link address.", + "title": "Link" + } + } + }, + "description": "The releases.", + "title": "Releases" + } + } + } + } + }, + "summary": "Get the releases for a source", + "description": "Get the releases for a source.", + "operationId": "SourceGetReleases", + "parameters": [ + { + "name": "source_id", + "in": "query", + "description": "The identifier for a source.", + "x-ms-summary": "Source ID", + "required": true, + "type": "integer" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get all tags", + "description": "Get FRED tags. Optionally, filter results by tag name, tag group, or search. FRED tags are attributes assigned to series.", + "operationId": "TagGetAll", + "parameters": [ + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/related_tags": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "group_id": { + "type": "string", + "description": "The group identifier.", + "title": "Group ID" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + }, + "created": { + "type": "string", + "description": "When created.", + "title": "Created" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "series_count": { + "type": "integer", + "format": "int32", + "description": "The series count.", + "title": "Series Count" + } + } + }, + "description": "The tags.", + "title": "Tags" + } + } + } + } + }, + "summary": "Get the related tags for one or more tags", + "description": "Get the related FRED tags for one or more FRED tags. Optionally, filter results by tag group or search. FRED tags are attributes assigned to series. Related FRED tags are the tags assigned to series that match all tags in the tag_names parameter and no tags in the exclude_tag_names parameter.", + "operationId": "TagGetRelated", + "parameters": [ + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "realtime_start", + "in": "query", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time Start", + "required": false, + "type": "string" + }, + { + "name": "realtime_end", + "in": "query", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "x-ms-summary": "Real-time End", + "required": false, + "type": "string" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + }, + "/tags/series": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "order_by": { + "type": "string", + "description": "Order results by values of the specified attribute.", + "title": "Order By", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + "sort_order": { + "type": "string", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "title": "Sort Order", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count of the response", + "title": "Count" + }, + "offset": { + "type": "integer", + "format": "int32", + "description": "The value offset.", + "title": "Offset" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The requested limit.", + "title": "Limit" + }, + "seriess": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The item identifier.", + "title": "ID" + }, + "realtime_start": { + "type": "string", + "description": "The start of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time Start" + }, + "realtime_end": { + "type": "string", + "description": "The end of the real-time period. YYYY-MM-DD formatted string.", + "title": "Real-time End" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "observation_start": { + "type": "string", + "description": "When the observation started.", + "title": "Observation Start" + }, + "observation_end": { + "type": "string", + "description": "When the observation ended.", + "title": "Observation End" + }, + "frequency": { + "type": "string", + "description": "The frequency.", + "title": "Frequency" + }, + "frequency_short": { + "type": "string", + "description": "The short frequency abbreviation.", + "title": "Frequency Short" + }, + "units": { + "type": "string", + "description": "The units.", + "title": "Units" + }, + "units_short": { + "type": "string", + "description": "The short unit abbreviation.", + "title": "Units Short" + }, + "seasonal_adjustment": { + "type": "string", + "description": "The seasonal adjustment.", + "title": "Seasonal Adjustment" + }, + "seasonal_adjustment_short": { + "type": "string", + "description": "The short seasonal adjustment abbreviation.", + "title": "Seasonal Adjustment Short" + }, + "last_updated": { + "type": "string", + "description": "When last updated.", + "title": "Last Updated" + }, + "popularity": { + "type": "integer", + "format": "int32", + "description": "The popularity ranking.", + "title": "Popularity" + }, + "group_popularity": { + "type": "integer", + "format": "int32", + "description": "The group popularity ranking.", + "title": "Group Popularity" + }, + "notes": { + "type": "string", + "description": "The notes for this item.", + "title": "Notes" + } + } + }, + "description": "The series.", + "title": "Series" + } + } + } + } + }, + "summary": "Get the series matching tags", + "description": "Get the series matching all tags in the tag_names parameter and no tags in the exclude_tag_names parameter.", + "operationId": "TagGetSeries", + "parameters": [ + { + "name": "tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match all of.", + "x-ms-summary": "Tag Names", + "required": true, + "type": "string" + }, + { + "name": "file_type", + "in": "query", + "description": "A key or file extension that indicates the type of file to send.", + "x-ms-summary": "File Type", + "required": true, + "type": "string", + "default": "json", + "x-ms-visibility": "internal" + }, + { + "name": "exclude_tag_names", + "in": "query", + "description": "A semicolon delimited string of tag names that series match none of.", + "x-ms-summary": "Excluded Tag Names", + "required": false, + "type": "string" + }, + { + "name": "tag_group_id", + "in": "query", + "description": "A tag group identifier to filter tags by type.", + "x-ms-summary": "Tag Group ID", + "required": false, + "type": "string", + "enum": [ + "freq", + "gen", + "geo", + "geot", + "rls", + "seas", + "src" + ] + }, + { + "name": "search_text", + "in": "query", + "description": "The words to find matching tags with.", + "x-ms-summary": "Search Text", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "The maximum number of results to return.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer", + "default": "1000" + }, + { + "name": "offset", + "in": "query", + "description": "The requested number offset.", + "x-ms-summary": "Offet", + "required": false, + "type": "integer", + "default": 0 + }, + { + "name": "order_by", + "in": "query", + "description": "Order results by values of the specified attribute.", + "x-ms-summary": "Order By", + "required": false, + "type": "string", + "enum": [ + "series_id", + "title", + "units", + "frequency", + "seasonal_adjustment", + "realtime_start", + "realtime_end", + "last_updated", + "observation_start", + "observation_end", + "popularity", + "group_popularity" + ], + "default": "series_id" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sort results is ascending or descending order for attribute values specified by order by.", + "x-ms-summary": "Sort Order", + "required": false, + "type": "string", + "enum": [ + "asc", + "desc" + ], + "default": "asc" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "api_key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://fred.stlouisfed.org/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://research.stlouisfed.org/privacy.html" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Federal Reserve Economic Data/apiProperties.json b/independent-publisher-connectors/Federal Reserve Economic Data/apiProperties.json new file mode 100644 index 0000000000..5cdec32b49 --- /dev/null +++ b/independent-publisher-connectors/Federal Reserve Economic Data/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The API Key for this API", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "Federal Reserve Board of St. Louis" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Federal Reserve Economic Data/readme.md b/independent-publisher-connectors/Federal Reserve Economic Data/readme.md new file mode 100644 index 0000000000..eef9b55a38 --- /dev/null +++ b/independent-publisher-connectors/Federal Reserve Economic Data/readme.md @@ -0,0 +1,78 @@ +# Federal Reserve Economic Data (FRED) +FRED contains frequently updated US macro and regional economic time series at annual, quarterly, monthly, weekly, and daily frequencies. FRED aggregates economic data from a variety of sources- most of which are US government agencies. The economic time series in FRED contain observation or measurement periods associated with data values. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +There are no prerequisites for this API other than obtaining an API key. + +## Obtaining Credentials +You will need to register on the Federal Reserve Board of St. Louis website for an [API key](https://fred.stlouisfed.org/docs/api/api_key.html). + +## Supported Operations + +### Get a category +Get a category. +### Get the child categories +Get the child categories for a specified parent category. +### Get the related categories for a category +A related category is a one-way relation between 2 categories that is not part of a parent-child category hierarchy. Most categories do not have related categories. +### Get the series in a category +Get the series in a category. +### Get the tags for a category +Get the FRED tags for a category. +### Get the related tags for tags within a category +Get the related FRED tags for one or more FRED tags within a category. FRED tags are attributes assigned to series. For this request, related FRED tags are the tags assigned to series that match all tags in the parameters. +### Get all releases of economic data +Get all releases of economic data. +### Get release dates for all releases of economic data +Get release dates for all releases of economic data. +### Get a release of economic data +Get a release of economic data. +### Get release dates for a release of economic data +Get release dates for a release of economic data. Note that release dates are published by data sources and do not necessarily represent when data will be available on the FRED or ALFRED websites. +### Get the series on a release of economic data +Get the series on a release of economic data. +### Get the sources for a release of economic data +Get the sources for a release of economic data. +### Get the tags for a release +Get the FRED tags for a release. +### Get the related tags for one or more tags within a release +Get the related FRED tags for one or more FRED tags within a release. +### Get release table trees for a given release +Get release table trees for a given release. Note that release dates are published by data sources and do not necessarily represent when data will be available on the FRED or ALFRED websites. +### Get an economic data series +Get an economic data series. +### Get the categories for an economic data series +Get the categories for an economic data series. +### Get the observations or data values for an economic data series +Get the observations or data values for an economic data series. +### Get the release for an economic data series +Get the release for an economic data series. +### Get economic data series that match search text +Get economic data series that match search text. +### Get the related tags for one or more tags matching a series search +Get the related FRED tags for one or more FRED tags matching a series search. +### Get the tags for a series search +Get the FRED tags for a series search. +### Get the tags for a series +Get the FRED tags for a series. +### Get economic data series sorted by when observations were updated +Get economic data series sorted by when observations were updated on the FRED server. Results are limited to series updated within the last two weeks. +### Get the dates in history when a series' data values were revised +Get the dates in history when a series' data values were revised or new data values were released. Vintage dates are the release dates for a series excluding release dates when the data for the series did not change. +### Get all sources of economic data +Get all sources of economic data. +### Get a source of economic data +Get a source of economic data. +### Get the releases for a source +Get the releases for a source. +### Get all tags +Get FRED tags. Optionally, filter results by tag name, tag group, or search. FRED tags are attributes assigned to series. +### Get the related tags for one or more tags +Get the related FRED tags for one or more FRED tags. Optionally, filter results by tag group or search. FRED tags are attributes assigned to series. Related FRED tags are the tags assigned to series that match all tags in the tag_names parameter and no tags in the exclude_tag_names parameter. +### Get the series matching tags +Get the series matching all tags in the tag_names parameter and no tags in the exclude_tag_names parameter. + +## Known Issues and Limitations +There are no issues or limitations none at this time. From 70bf80045ed68a14be4d5ef0581b0424685971a6 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:46:30 -0400 Subject: [PATCH 107/219] Unix Timestamp (Independent Publisher) (#1188) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload --- .../Unix Timestamp/apiDefinition.swagger.json | 149 ++++++++++++++++++ .../Unix Timestamp/apiProperties.json | 9 ++ .../Unix Timestamp/readme.md | 23 +++ 3 files changed, 181 insertions(+) create mode 100644 independent-publisher-connectors/Unix Timestamp/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Unix Timestamp/apiProperties.json create mode 100644 independent-publisher-connectors/Unix Timestamp/readme.md diff --git a/independent-publisher-connectors/Unix Timestamp/apiDefinition.swagger.json b/independent-publisher-connectors/Unix Timestamp/apiDefinition.swagger.json new file mode 100644 index 0000000000..0d384b0dd0 --- /dev/null +++ b/independent-publisher-connectors/Unix Timestamp/apiDefinition.swagger.json @@ -0,0 +1,149 @@ +{ + "swagger": "2.0", + "info": { + "title": "Unix Timestamp", + "description": "Converts Unix timestamps to DateTime objects and DateTime objects to Unix timestamps.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "showcase.api.linx.twenty57.net", + "basePath": "/UnixTime/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/fromunixtimestamp": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Datetime": { + "type": "string", + "description": "The datetime.", + "title": "DateTime" + } + } + } + } + }, + "summary": "Unix Timestamp to UTC DateTime", + "description": "Converts Unix timestamp to UTC datetime (yyyy-MM-dd HH:mm:ss).", + "operationId": "Unix2UTCDateTime", + "parameters": [ + { + "name": "unixtimestamp", + "in": "query", + "required": false, + "type": "integer", + "description": "The Unix timestamp.", + "x-ms-summary": "Unix Timestamp" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Datetime": { + "type": "string", + "description": "The datetime.", + "title": "Datetime" + } + } + } + } + }, + "summary": "Unix Timestamp to DateTime with Timezone", + "description": "Converts Unix timestamp to datetime with timezone (yyyy-MM-dd'T'HH:mm:ssXXX).", + "operationId": "Unix2DateTimeTimezone", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "UnixTimeStamp": { + "type": "string", + "description":"The Unix timestamp.", + "title": "UnixTimeStamp" + }, + "Timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + } + } + } + } + ] + } + }, + "/tounixtimestamp": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "UnixTimeStamp": { + "type": "string", + "description": "The Unix timestamp.", + "title": "UnixTimeStamp" + } + } + } + } + }, + "summary": "DateTime to Unix Timestamp", + "description": "Converts datetime (multiple formats) to Unix timestamp.", + "operationId": "DateTime2UnixTimestamp", + "parameters": [ + { + "name": "datetime", + "in": "query", + "required": false, + "type": "string", + "default": "now", + "description": "The datetime.", + "x-ms-summary": "DateTime" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://unixtime.co.za/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://unixtime.co.za/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Unix Timestamp/apiProperties.json b/independent-publisher-connectors/Unix Timestamp/apiProperties.json new file mode 100644 index 0000000000..0b52c7816e --- /dev/null +++ b/independent-publisher-connectors/Unix Timestamp/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "Franz Rodenacker" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Unix Timestamp/readme.md b/independent-publisher-connectors/Unix Timestamp/readme.md new file mode 100644 index 0000000000..9fba483572 --- /dev/null +++ b/independent-publisher-connectors/Unix Timestamp/readme.md @@ -0,0 +1,23 @@ +# Unix Timestamp +Converts Unix timestamps to DateTime objects and DateTime objects to Unix timestamps. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +There is no prerequisite for this service. + +## Obtaining Credentials +There are no credentials needed for this service. + + +## Supported Operations + +### DateTime to Unix Timestamp +Converts datetime (multiple formats) to Unix timestamp. +### Unix Timestamp to UTC DateTime +Converts Unix timestamp to UTC datetime (yyyy-MM-dd HH:mm:ss). +### Unix Timestamp to DateTime with Timezone +Converts Unix timestamp to datetime with timezone (yyyy-MM-dd'T'HH:mm:ssXXX). + +## Known Issues and Limitations +There are no known issues at this time. From 03799e2772538d8c67dcc93efd9cd18de9dc84f9 Mon Sep 17 00:00:00 2001 From: Korey Stegared-Pace Date: Tue, 2 Nov 2021 23:17:11 +0100 Subject: [PATCH 108/219] changes to screenshot to reflect azure enviroment (#1238) Co-authored-by: Korey Stegared-Pace --- certified-connectors/Peltarion/screenshot.png | Bin 176404 -> 246041 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/certified-connectors/Peltarion/screenshot.png b/certified-connectors/Peltarion/screenshot.png index 3a2e35b1a7f34a047fcfd38160602042b5abcd5d..065bf3d16fab861449953698e1c312e78ee90f13 100644 GIT binary patch literal 246041 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�p-_2vcn)UTs?6y~ln7J1^$#_>*TF=;KHM?4 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 z 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 b`tSc|73%L?&zgIh0SG)@{an^LB{Ts50bMOY literal 176404 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

n+A0MdKmiII8>uBp z@cvBs_7+FFc)Lse1P5&8WX0cXjv;0|+r{9Abct#0%Z-L5GoSe_jvk-}f%}XM1eL&t zQvebKSnB^4Iw<06AZ7gha(Fs_aO%L9sJi=8@IBF0@zXX$FebGxpLeCk>9O*U9r+Lz za(~y;T>sVQwJwdIiSUD7FY&)#KD==Oh9ih4)S|X%V*Fip=@;h>zULfoSyr(^ zpz*;7t<}0Jr4jLe)c%xi2kn<*Q+$$pOn)Ts5Ssk7e_C3Jkobb5^5l#8F9f4|Z{nL- zmztc9c<1+UhcEpLPG%+y=v{1SQT6vbMsL#}Y>6wXN0=PcJpeMSxz&AumhNRe1fz&0 z<#aU@vDU7+;%zHy;UdCH=9TK4N7S%$VZrwAzWl-kelW%N9O*i7f?6M-sQ|K(^ogOc zi`$-`ew&VJzI@oKUM%`qPxFS+04Qi|3^Z+Id_|N(!8FZ@N_TpqX}&I zmRM=9=4)RjrT%l?e?STK=Ntx?n=91a+Y^g+lxe7Mya7`_#zujJFbl6~rt{r*rsP_- zm^5NJn(&e(%ig+YQ;7+fwt74ynhm5EeM%#Qt#wJ{#`bwvKml{3+m0Msrivb%J`hVW zc*&$Cvs$&?-x`NTHPM|b_%X;v5=8Uy=LywZJBt{2z501#?D*lk=bbar9zt_9cPepp zylD4}(h;X{pJW=E)j;I&l>JE66}^x%=Y014+<@c)q?KX#F2((`K>mV>lEUug&r?P} z_8^T_HCgnAY~CnUwUHOVn+GwjM*aM%e=orgugLSe6P1zel6$n;Np#RC-$S@CwS$ym zJhX9crBU2FmrLoP~SGHR60pe_|rex90heBOrp~P_J1G&^;)p?ET(qdyu^B{en zG=7FK{^x`F&_yV%{hYI*UCVQvKA~jaJt;fZ0F~(7UPQh*@ztjuS2cHcN-1ngnXHE1 zu$A|@RM3uJ>-VLvb~M}#4dZGgz9Nh2r)$&Ej)WH8Rb@vW_l`xu?-L(DR9DxE;~%cj z^PbQ?y?ILgOH1dI-Q0`;*&a|52p+LLZLz!~OtItLH@K%Q7fJye{GYpw-2z1wzFwDGKVu0bE@qT-9>VhL+0F~cmI2!F?3FjXc{VG>D2E-lN}}ckRr(Si>=Ru zGL1PEa4v+y=kr$& z{6_$|$!Eofh&OP1KtF~NMwzKwG_t8-gFi$!4?4Vv&(#0yobzDz;0z=dm_3!#w`PEv zCg$rc$V#hjr6>=H@|dJ%nA!%F>)0f|-32$?CQ}$AtU;ubzmB9$AxBd0N*bY@w>BO%%kcK=uJH*>2d@qjJ zS3Ppmcf)83yi|}jLN{ULlM!!&uB2=B*#bQDbL^}T{7~=7PX-M6$L{5A>kYxnAw9%^ zUPd&h9jS0hlY5=h59P=7!+h1By~lPus#rj?mxDDp^E|T8g3%DGv2-_yC^^XVk8BsC z)W0K^tK>*xyeMMfO_ht{c0q37K3fAjJoWQ|WZsLbzg}y=D*0O*WH!FA-=<>x0_~=L zK`5ms+c|F$@X%O?pCdZ#M4A}cyO`M!LnfY3o;ssA{09^*OlCAp&;K^QsoxR3s~(gF zx!O*#c^1M|Y+F|d#x_ins&lQZt|%yjr3;?hq&(IK*W9RPwL@Y6TykKPBCEM=mDyx0;8{i6#R>v_+ z;jW7!=1WVyn%%;G^-lM89_HiHBMp>@`B4^e`jl4dlW;r5(VN#d0TxWfgR4O5)K=+jvWLyYb^*vXv9`!H&FZtk`v|*l0!eMZ7 zK`t{5$wDP1cn$&1mLK~-38mOv2{<*Vpm#W8%#VrwOvQXwomYv@ML;CB$A-&|W-%;e z@0Z&7kmt1oHSj~j4^?v!*LjWIu98TwFrTOjnGzM3Ny3V-sIjctl8TKeg_njSJ$JRQ z>8uPRZE_T+OLl99rMRw~t&`?ew)J3}Lj9zI<_l+14xq(%DOTR53uU;|4ciH;NUK4N zXruO=c^Xo`MBo>RBr;7AC9p8<5FA}KK@9r-VX0%Gr^V5u+MXXr!(U5Jf%FCBsVnc^ z46pzA!;|n;%asl3c&J5UfwLX^3mj2sC8G;gQZuv5d!MWQ)~mUpOcIj&PQ9b}7HmtA zQ=DnG4ZsMt629hyIeK)uebzBjlYXhHZt z>#gY^)k>GdoNKOj&DYF;Xzz1=ynlsc`+4q*;}`hqr!SIPYa^h_y5MlInHW?i8^~=Prz~e=5y=xfN2so~iE| zLn!$9Zr66mt3x_SC3Tm#RA4lr=LIuTE2)`+xEJ0nUXQX^I?*M8=Lb*UB-TiCKmY4& zr74lXu|hvii2nbv*`M*O%u(jFV;*wSjGlIo_RvT?Be>m`Wmhbxy#f3Zx#dxH0Q;am(HX@vitMBBPChIU17QL8!a>?Hlr&xAUN&lnAhxY686 zIxl`ZVkWo$VcNpD!#To5hOhII3eZK|Ke~3k>3&>z_Ec`Md&7#qAwGlqlQRLx78|7+ zaS(<_kB19=c5!%c4&$6^&f`aOhn{k*t>ug8M|($}s%0MEFN=MRO;%%Rp7*^75MBI$ zBAEdnE~`ztPlJytBGD$@L8YJ(zX=7Ft3_vUao~E;H`d-0cs>Z!PqXcz4n1xaQnrfI zZ8a0%x_OrOD@)s1YL}KJziF76)1o@nVfqU+bMr^;4FsP_&Bt*od_V6x?vqlgaIYBG z=L~&U%^FT@J%NY^Nc@+!u6331ceWZ8qP^HL{()Dg&m^|wWya}8s-F){T*v{QP-^@Q zlMy{xsKa6Gh7($_p*=#@)zM34HhzOwd>ih4LbPKpZ#z`E{NjT`JaQ_>a-HV+Dxl^) zpVa0Wx@R5ENys3<(S$>PL#xq~*OQ@4D;uLj) z$twr^Om#(o0CG87_QM7ZI^G56n!MMAMV3^=o6J(XpIkvyNaZni<71tkuj5WW2~J|S z1+oH^NV@T)AzC5K4}mDBTV4x6KC?MEKn1XPAORluX~!6$ z1jtddegAD-U(WFUR}bBok_Da3v2Nk}%}({@Z^QCZ^OmpB@TAW>``tPih?)l+c{TXJ zHc6z9?;1RrS5G!^%^_YZo(LtL*UZiH>9cJfkAps^s3)V1*x&*3pY|FU z|K+<_iV2&yU9~al3|yp?5*<*k3cy`z{7@l9+NZ)fI{?xtkzT)6L%bf8A4I#W53KJN z2;6V}P;LDB3z^R(n^|k#1t$8p@iAV*gcT{cD{h${>mt?QRqIfn+yCvg3bmX)u1A2b zBU#`-`??h)DmZ$9x7D+!a0C0f_OBAEO~fNUE2hzt%T5A6E?GVvQ*1;N5Hj;DINxbW zGd!%&-(szkC|8UZbTfjW&nvP6{NYpD(M}45b5rvA@?(wP6?qyyn@@+yCwa%S$hizo z`v91Hj#tSalxM|FH%3Zo8zTufNlt|qk-a<$$P~3ac+7GZ`>}H0obj5B?jVT%md7rX zIkivBa?N+nkqf!IB51kM&XoSs}x$2lS>A_Qei6LifJmCsUYJGYsE!VLtO_2$Hog*{&I_t0rvge5g4%#Vuc>zxHZgt& z?(iXKs{|IcoO1;=2)}+hN{zy2$>Yl+LMWx5va6kF0TD&kBZ@GS2*N8?8_}_%k>c@J zu~FAm9>W}i0SQh_^t_J$=5UN3wrseiec@7F3G0M&HUQG{(DQ)Ne`yJvd~s*Spso$N zTHw|a{x{4_L`CEVjTgD|#4S|e(cZ?>>kHk&{&DI@egLU z#? zBuu7!_Fz-CK{g!{OH^%oJvjbH|)A>SXG>FMU44g%FX>n66&A?o<)mU%e3Z14M z3{9&lF8NnNY4E>!(tG*WpnvN2pP3UGl3XzbX*S1HGE(kWho#!j(kLX)nk2D|=}o_^ z!fnVnCE_n8P6cByrl$&T*FCBwD9w8YXh}R22_{IXQ{h zVg|05>uYl3j}eJ>tV`mQHt__!%^sK#RvTKo-7cch(BKrAVOrP4#X4icmZ{^9D9~x= zBWMk6>hW6D=1f(h+a~tY$|4xsP(EX}>E>aI9hM}me&6v0V0FvSS4nqNm;f0s4N6l# zrueK=FY3jO;)}uOr9sT@@R~)#&MaBkO9}a+3+4#{xKccOKKLWP$w>J`)iwg_MT6Sk zsgEpMmulxHJUwE@J!cyatoDDt=CH5nhU+|;y1aK^SGk}G6v5bIaYki=|D0sy;Th`) z@~d4RL~fbG=so@CP+vOY?p6I*QZ$u|<{&~9Ewx6Y;k0qT;?-gl8!a8YSF@%j+0ri$ zuD^K_H;est2JsQT=hz3ZHFaYhi zm*$mzAXTCbU=`PWQUu}K)CtaW3ZKPi3q8(dfD=s0j9n_s<6EN(N=w8CVywd9P|;V5 z{cf*)zrfE)zTT_97c9@f{WtDGRSYxzJ^laJaJ=O<7M>Ve4cne5+jMWerzM#nLMfsqz0+R-Ugrl@RbdF$1cj+~U^|z=758x_)Kw?066G<3Ho#Jqt!PnX)d^okbHs|wv8HUr9p71{UP z@obc;v?LX5yQjm2fSdrNYtJ^|r*elUAm> zaG+th{N&}erxAp}gRMf`6??`+?jAc>oIM(T%T~~B$9a03W7j1^(b&1XVA7_42Jt`& z{2bX)L^BZ#Z~|+Tz((oN(}L=Hd1-!4NiOiihver-Y_$Mfs4h2jz&L=Gd_4o^*Dd>|-)P4JrRMAzl z>gq^`G?Sy6DG)!V%OTDTu7WwPHi97Zc7-N2bK5*}R2{VhpGB1zohRV*2QHdW{BC;= z%DUvJJ^pg?x0vsf;gZ*BPOpb$-xt%rzt$g;$vaSzykWJA$yP$A9We>%R8D!7&LDWl zOmlpx_KgbjCP8`Yy=_NeTu<{abq5of5JozG}fEuJgtGOemWb3-b)dv zYjT14DLMfSaM9@LU!$iwV#|AC?td5uUZ@rYXbfdmX1ygqXiGjh?k!<9!7AQvBm>(& z!Zq#GGNY)5vP7^Io?7PLXSBh=LDVoelKjf9N>IR~rJz6^6Nm}lB_{~r7Z zd4!03oscXx6qWqv8DG6BWP8O%{E6D8F^Mc~lk|y<{l9_N=u;#_qgSwB5<7VDH$Po* zIQ;;s=UkP@Ve(_ukcmp0VO{(c_3r$0;kF?+L~I7q{*ITKS4DH0vKt#LDJQ8v*_!|H za7uU4@Lo!q*WMx~M_gUTUN#@M_9L2h`W%|FsXUUP$fG~cKsdG9LYfodz8+fj;F$G* z@t^iH)kpaoGc-e@DC_>T5}=m4vGCquK!JmEogryNpyG{{`8m?%6$fauVM$}(B)WDn zvUcdVCi-x@s1%{oFPR60Z{!ZV`-Tx`y^l$C?RzD>fhtYnq82cDlU_agXlc3)cKih$ z(DQlGC>mZDTi4`g-fNo(uzM+&4SWF8^u7a34TnG`N`9~04ckQhV{P2 zuyo%Zy5nrP%tk{clXIC$Lf4TX5PlSX{p&esOlrSCf$20Paab+5QQBfaw)*Y<#tXQX zeJ5LjCS=sWl($S)6nD~-D5wBATK7VKOlT{($x=!Q2`GjrKLxi>drUEcz5hJw+dm2n z4K51WLrqEhJJ1f*X>Ct4uU4z?9D<^kHoKPIHkQ=t&NTFv%1E60V?ZE;uxS343*2gP zyE6Q!4s%^{_HK1|_*9Wg^O5@Il>4dQPm{lQJk+Bs_JSy7hSImn+`oW&_~7H2*2-0N z>v1Fp(!T2(;u|G9L(7jfRONCz^rEVnFd~k)wrp;9Fo(f8PWwlEd zIM*$Nk2`f*1dQS!%+)BQZ(U!xOkYxtv}m6p09^mJbqE^<_AV;nRUWD z4lMy7i~TfrY2j4Zj^W4_d$D-7C^+IHP0hZ%S%lWUOgm?PAm#EjS~%>9(mJNy zv^QF>BAteQGvb=*xbLAAXh2`F{;VZToi~i8yxnU@u!$mZ!OJ%51CJ)W1hT=i3g2^-VJO#+__%hlxTy6?EcjZlIRO z9Br3pqp|(QE=4QDc}0gytA!CRrTOk(7%HjiB=>vd>}ylK23F*wcZLRj+8l-Zt~TlR z?yU2L)=Geodp?v+fdQ#+ z3OQ_zn!3N_Du(LD&Nn%(hdM?$COD=$<~h226V^A^n|X_|YPde(xdiW6y+2jHpVrv< zK5IBMb{-3wiTjOcqlcCb|BhY2#*LlCesuI2#}v`-=M6IX&AVcHMN#N6XXClMpC9yl zY+9v|`yX#92rm}coDZtiYKMWG8$DafI=&~Ix($`vFCW^hG>et|D34qXF;SQYKNyQ+ zO=mp(+jSDc0Byb^=rGDt{cF2>rC~vAfBWN=jG2M6vS?R_4w#xx{5CB2x4SCrjf7pi zlVB~X?tGMKB1;d3i-xVk(H;u{+&>QjphmB&mowhn>>8RAu7N;I_UQy z%)>A`)<^Y6eG+K;3Ua=>cN=nk=#`~qEA^NCH&=6!^Dc0`2uYDisLiU3BXkdCLs>mt z(L9)*=err8Y3jZ8HdR#BgfdO27#V2?K2~kGGY)S#?IdXtq;^CuxJAR`L1BP88IEZ4m);3=cNPn6M_}KHudos z&aQ*le&YZNKN$q-#Y`y@e8h-DD)q~d{ptuCE$?s650~(X?4xJvUDXnDFn(^pzhNDn z(_ZSg7ruegaH<%@qHSc365&b!S?}pcyMY1!6aH1uSL0H^m>&3pJYxO_xvnAZ{O&rs zYl~H?WCJ_JiJ2F)zzB$$Es$RyB0p%pB{SMS*%Bc$*!|1fSBGOA!zCB&-uFb0lxe;$ zz^^B!?QmWTGTrTCcM93lrFSWVm!~Svc#cV-x4BCTZucbaPqRzqoNl!YqrWRKdqFPe zaFkuFm>-wg;?Fxe&*QTeF(30Mr0GQ9!A}%3__@^axXkY32UF$U>QhCSu|pUD6U)Mm z)ddt~g-cBE7_yyvO*Rdb71?Y~&rEyV$FYC6{k>xdPt3k|cdux5De01#cRBc^HKAvS zdfUhVc4fgJZed^QU)c%o6lWH_;~Nt})=#YS)trUxr90RKDVeTv_|EmI0t!(BebD-l ze6w{>-;=R@wl5E$=7tO9GCsQpn67QH@J9bmH!>6Fnyt&&>eGW54aC+3jU5~$N+H6$ zlxJxr)3TnayZ*U!o)*l1L735h@DO`gk3_;BY}BC~W5Py6+E83>>QT*)t)48NYft|x zQQL`<-R1%N1aC-e!t=Uiwh!*6YDh~+(3S4kHyg`?)}BOwJ$CO}`0_teX^Ux=ijdAs zXL>EKxH(JjQa`ito<47ssaY|P%l9~``MCQzn;x_~s^^;PM06QkXjb>Iknlz!p|B+N zrs%UPp_&8ju-&6r>AVk9WIK2uieb&?oDZIo+Ly|}o*dd@fSp=-HS~hM*ar2-eG-zu zhYB!9S1T!ZwSKcK{C+&R9?OYBUOn_xOTDa3aq zF~G}V<0Kxb;{LthxiM`hGpC6h*6Dwuz--}@Y|Y?X8D`;@<|Dqm6Bv`iT+Dy7gJRoX zfhms(>`^6cwy@OK9Hw210!1)w`$REG?UrT88@kL?0~6-6XWrjFR#>e|K;@-)#)FSe zk%Q@}$Zp=E;n2MkQs#m=b-L^z|GxeVzZw8X#5Y$dZCujOrEDMZ&fSvfXt>BmL+ZF- zcbv&*MhzXD>{1(Xb0Yj!*xZZY)P(g&lH!Y|P4maRORiiTOCYgkV?b9sh`DrwWTB*P zrje^bV?RkZih?qzcH{Vq6*G)S`Lp@N6sSSRV8gM}&X{H`8Z&`ukbkU&LCxGycj-{+ zQM3xr_vUNV@-_8QW2H^|c|7wVso&!?nx8s7;>M>(imBl3mpaX4y!bY{ zfzA72f0*&B_m_6dvaJ9&qY%Vm^1&4E{9;aJ!W`vrUb2q!(C-}MT4(IU4^bpIBoV#8 zJZG`%ew}8eyvztvt=FU5Jcc@m*sxn<+bn4E6148qHC^mWgP zVN8-J{YuXMs=1!oDVI(z8r8e#l63-Y9=Inu30oqs?>r6Z71c9cOw}h1U+~ks?Xy?5 zs|eqhp5ypaCo}&8w|gTq)8hTq>%_+vxf|c=Zu2;cU7nZxgB$wh_t_@2S7cP`w@lI_t@Qri z9X|3e?p?v_Eq?6~KP|;@QI5l8`4i75{w}HGWm`dn20D@ny)7Db?4--TEiW}8;{)Bj z3QG{xIj7=YB};bZd`*5Usv{_31S(ga_(7+wn`}k?VD#&4R>hs43d}3XenUFTP-Cc0 z|5ty_8Q*p_>_i3WT4NsgDAfy5;&sxyVKv7p)iIywEAZ7E6|`5IUQM@Ki4%#l>BKA} zO-tbR|H2w+1#K=u+qaRv%=w9eHidjUC#v`dZ{lPU71=Fspm`BUMP<7-QXXUEJ-cE35G@}}5x2iRtL0TF{L)yDk~`7bz?e1= zX4Ws5f_kFwu{NT#|1eQ7Z`x#ys_K*buz1zC^8H`RBsQyVTwlwD-G5bA-NZCch4e!alsuydX1+V63o%nrg09axX z)W3rdz#l9}zXxrsQ+F6N?|za8Q+-XeNef?0L8a8Y_i)9gN|K7JX(-TM)(d_ccRvjU z*@Q^VS6&P8*{NnZA2M0;@!FuI`54qbeoHLQ=Ao}rnPFhxKGHu%I-tYn`3tIVE^w&* z(0nI)#il)Y&#gaMGRPfp*%ZBg)~D0BRtGaWtmQ_pCky(9UuSK-6tm3=yR!fZd(eLx zCVmQ77TbP3-7mh5$SpJ5^cG$;{VL9SkH6m>?mABmW~_ipdi#2IFH=>h`$z#B^*UE1 z{+bkDDde^fe9dGI7kX_nejXb)brLHdIELxwZx-oOs_YSCy@^=WhcdgRMXauKZ$GKc ziL(4~c~#s4nHc1eVF16)*8g(TYsB?)`X)E4tyCrJ64&iKgmDzn36^-98i5&bC^(6U zHe|1`{URBk(G<0CQ$Fy;&@-3h)IH5)XIPB5&p;y9Fohp*DLq$}p&b+D)*L=sH}B?uP1;GEJI0)wR}O zYp=DN@hb(_Y`_PeemDQp=^kKtF+^%#=6Ol;$|&|QaVXT_{5EsIcER;O9pd5A+i$Cl zJ9f--YM~>uQl}Sjj!g^Kp~%%!L8$1^s-77oty{x2%O}P@>sg8#%h%hEL@gF0us#)5 zqxMI)4y_&!1FpbAaWAxE-~ECNv*yOliWoG^ufpc&i&4MR(>|%jb;zqfVl7835ni9% z{=j_;jG>JW6PA$OAnzGeX-V@Z&_o;y275?fgAlHfGi;eW)1D-5c5h#d-Yg&R-zeSc z-oN%Lb@66waLcF(L{Cb0c{yZ5?`R#PkjgH4kmiRql*$H{H6_1h^0g?VN#wogYozsu zx%4Z3c$(+JP56 zIro_4Az*0|(}2Yb#CjQR(=q`sTj4(k@5P^R&WF-ld)`uUK{3Rz4AA%{Uil~H6QsFvZ+Ip;@*&$=|M8rX6&rb zakAi1y=q39|Lll4OCd1QEF;;m>V0C-)9tREmIa)-UF)(H^KvQ9YAFb?pH6^rx zb)p&g%2DR{SSg>WMX7m(3DjLDS5@m&xUbhLcI-qoU3#W&uV=KI#^}+3Y7#*+f`9|PP)xJ%!K zU=aD*!^Vkz8cHgVGr<1cjt#vR$}{x4PQAn~_wwr4entoXqs~2)8%_`X>Gx3~6S>z| zKy6pT-F=yZx44{q9{r{vsnDDlWzQv$Krp&6H#HNAdX#9D<93 zsi;rVDI@U?hBXezuvg_3~F@Fk)z-lI1VJ- zCm|nW7V&h?^n9Y38}N4jxX@ewx6`2#aVPoXWxnf^E-uv`rD@`d!Y948y(5K^dkSc? zw?8k97&#O}`#a_4>wHdwy2MO_E%)e7(`!9S|HQpqE5R~*eo92Mn?Dq{J%#MjP`tQC z|0ee(%sypm{_dB;XHbr*vbar%n;hnHpl!wY7q2Jw3@w zr)H!!nYPTrtoIuK z)RKy zZin*2N4irs>Nn3}5c=k;OmBeH^n7vLNX)vKFl5xkv_IWrjih=!Gc;c*hP|l$bSvBJ zrI3T77TI&&#-1UyF&59=Z+Ro`{mmK8)%>M%)hxj)^l4O*l}LJ}DUUe{&`E;153hS^ zd=(tG;fwPHJiY^RX)mIG4AqruET@NTHmWqg%m*CEz9V>lPedNsX=?rp9PYlml7O3Z zBuN#(&xF(*LwO`8W+{W+A^W)7jItB1M{iw)m}T8xO3&Gw@}-1DxHRuLzv6F{+*>Li)W`?wFe{S=ETr%(SuZWgyM$^b z?DEC$gwJEJKvl9LO6jDGS`Z56Id*78{~={RLTtMq-BfvE?`WCF;(ZB2F{i`*(!^|y$(Y3o#+VlNJ!nh3 z7=I|``>=I18q41X- zM=b3fdsB`Dry?^zBxwD0GP950SHlK0X6sZdBEm=8JgAS^?eob{%m~Gg150`i?#VuU z*j1Bc>8(n2g@dxDjc}+$XHwb?|~HKhIDrNRGX&O&XTinI0F)B`1sMlP?G-12_5zey>D_GO1oYZBrU z2X8`?xVBi|mACtoCc7(B(0K8yJ1@6UC$=v zO+i{y*))Cn=g@AH|9-0UVms_udCi@rvZBv$TM}`-EnrB3?~`LcVD0AjF$?fKdKEQx z!YZb3JmrR_UAheKr!tA&Hw=9L`ey~+Cx$OoEHz?(gY0T&HHTxs2R~PZKq;VqMUP@j zHW>BMzJ!6yEeTZ?z`ccNka>zO3+|zKuoO5^xwJeR7X-~QGn8&01u2n&WR4XnDVXj! z#=lEni@5kW2uN%?hmE@P`kYODc$cfoar!bH=kNRJe$#_kmD^?*`1J)>DbJI27P)aC zcqLDHj=5DlZ6Sq^<>oPP-M(MC;A5I2icMTHy$hcCbR?mRjvUiLD;}jFjXM4f;X@xx znB0le8r#da*e^3P%VX!I=D-dNH5)9o(SIb8!sezD?!=G1G^9F$Q7Hu16)PF0D}V`a zN|K7oz;ckzK6MRGz2U=tFTbsv1kBF4gfz`$;TbceF_ClFA#UjCPfapKR<=V88Q-##aM?OdWUFEsO=lfh2J^sPsYq1opI5w)j}zr#khCz)4Gc$X}F)GNQvzlyS3 zs`&ux#|OzUdHxCo5*u*+vDdJEH)Mjtr)xKTdp-w{QDCo<4KPao@rE&003|!*&6sHm zF@+A!19GTLsek{n(C^?l6)#-Z!w6iIxcXi1q)qP_i|0sp9~YU!5t$UM@gmN;+E;6)W5*NVg+_e4e%)sBcnx-He^hyr$t~ z(HODRw$uuS(6dFXZY8(X8wUH{vGYATv1HKytzc5pPv5r#Kd$NH*p`pYUk%21<)<*G zwkJ2qY^PC*hBMahjR-E2S6w~Zaap+vW3d^1`0%Y1O?`3F%U=4lJHpIDPU`Zx zt1DfnF9W4aCnUX+jx_)XK`&HG%Ku!3>Kaq?PQSh_rJb%Xg$m_QRv6?XV$KU)#cWg~ z$|L2!8p_m6?P?g4*-r3V0V?f*+iyNc18o3!es3(1V$@uLvNENnmjB&0%UKXxv1Dkj zCW@~45=mqNmrfq~zCeP(8&{wlfkbivP?X1|9f$*W^Vb&pk8T4us^(bxi`Ya-Qb-uW zKQG-v>L@RLM97Rri0dqL4`9hw0stIcYIDf4{Wbp)^82!PF-#@w^c8*>K)9baNNWd0&(* zs>9#rH4>ZON0D#I5jH`+n0~RKkR+9JB>5CDNYHvY>gOKF3#L}9jRy;0ZGQ#y=E&}> zJo4Rhoa`iA4eumgQv=vm11ld7_&nl36J_DE0%phv6O zXWMq~5?S?VM%!O}$0Yaez9%3^WTmg52{4|4M`y2HlHQ;{XAr0NSI*Q(G?&sq-1ynf z`xF24v6CsAt%-nFkfkF&lT$q&1tgdaJ8}{_$dNtsQfLm|XCF_xe<#`ZU^G86vP>Jm za%2#;uW5JsE~W$LRRr0eoG~Gg1=}k8_vCK5WFx3-=J33aHSR`ruPN!=Hv`8(`4MT~ z6D^FPJ4lck-^qaU*$`zzxj02q3{JMpS-ceAU*5F;og(O+kFNZ=h+V?F(JQTS*$rOi ziY3^_xLyKh@H@|EXTys$;yMpqr^8^pfzZeZP`1UPiGfkKJ)E&u7vF#tm+N+;hmVS!I#8; zU5T%op^JNLIwxAF|5hw%5Z}c+>jek>#p!{b+k$;JiJS5v#i&H7kgRj~kLMYgsoLNZ zViUYYJtf-iQx8N34enMn_4pEyg|^PUlZ&ipqSql`{o3U1t;GD&ZovJSm8+gwC=NpB z$FEe!;^96$Y=lmql#H|xKT!LDxKV=nE=L=h$7g-#UtD*?p<#D*9kc&|T$m4upXlsX-mD+FAOJ!h*ZIT>r^5`VTnB&-P*+@hv>a`jomdh&Sv@Daw!}=guuqKmv z(tS<>n)TiDZ5Q3qxhNGm@h2};&rZ+e%Sw5Tuyu@+Tje^TnT*?kNipvSrx>PE!?B^Z zy~L%tI21O}!>d)9aip(j0Dd!}awc+Lh!XZjH>lWkcGT!sxnbJ6aX0pC$ylHeJG)%Z zT=#D_a>T~Cx3xgi%afoAWeG{1&!5!XSymu zMa<_aO{Nn?_E3PnrE{|NTq5L>6gi}Osz2jBN4~2?`hd*QIxGY|T_2MqbV!duJIoP9 zM$J#}UbWKzE! ztzVQK-0~XN^Hr%bgpB-n=qzqNsZ~*{j{DHzQsSwheko8FqA$Y-PGbeuPnvL^V52nw01facD#K4%yaxj0TVH zJ)XU~=GgY(Y<=Ffahhkvo}JJiCAmv<@(I1Vm8Knr4e?HdOuT#Fsf1;+(l)t?l40yF zN=NR{e_40>XPiN5&2X6chNS->aQ6T|&X;Pa)IQoXZDK1ZU#0YWRkgn6(^{Xr{My+; zr4Y)LGt66lboL)k#pxTW!gl}kzhEYTc|OsZ5$maccWuLuY454UgSUhoeD@^oMRq9{ z?QolOd@cvEZ7MtZr1J9F57cN!L_nrkpFrwlGrb}_`Il=udLPyb)F&W z(eu=ktD>SlE?KqG?$WG=?$%q2m3LS69{7s$oGH8Yk7vsuRMaA86#&nV1{(sW=5Q^* z4OC_YrgL3{m|!OKinK>qT{dMN+!e5mb~o8-p~Mzq^Z0F7%Pr`^dGv`5zh3 zt!}aD${4Al9m1YOKKCXUD0G@oT~{Y=OV69Yu1<@-$C&X`)*EpX$!jU1dC!zzj+3*v z6P8pnh+!%Pw04Im`REL>G)!_DvIs46a~cPR?I3gR*p!;vr2UyDbdVicP-4cV(`GGA zTquEw$@mj(EzGhNtx-9WDh|ABsW;se_eVu^Vx{f50ioCgNy^it$nU*fDO1T9TR3sK z#JP&cTuLyxT+khM&Kuualb6%Rq`1F1>HWKALwYux= z13e4QAO9PEchQ&&OH%Ud)sdC={X0_7XDaWa+Hz zG+Ko@b{w5Yi&m7+lqFq;E6iU|$SJ5skAuy?_thPRjIqY)1eEHP{Jbcbf1X-$E<9;h zSSkR&DEIE$$tX!EPwM2{86HucPU$b0Nq>RIMfMBl5f%+3&2;Z7Y* zeS&^;;LuutV_(xAl>!_+Zz9P{q2>Anzio{BKqe7$q)Jzx=2qIATns(yrz)C`E}@()2tBGa z%eKxI?l&mkbE$6u+0-WaOp>5ODn2==iMTru$5j<&zb0a;Bg*L|9X5Ln=C5{+bC>;IwuXiTN8Ft*mheaO?E8_s&FWOuFBW?q;!Y{x30rT~fTgYPVs0KMmb z-|z;^iPY4u+Ho!+B}KTaRzc8vuV`Usl^K*;tM6sSbNE+8vsl24i;1^*FROhqT5{uS zRIB7+(f`xW^p2K0VM8n}YWP^_6MKix|7XDUqTYo$4UHCzmG+9cXe8gNFJ-|0^WEa} zv-4!67RU$t9Fo8N{N-?qAqa_OCxI9z-L^!LYNJ{ZnF|aH2?7 z>ZamKhMI_GUJ2*yBhB)Or}24qw^y4G0aS6-JKloHJJ+@ekeK|C54{fhZ7-?~h%Kvb zm~Q@nR4h21u2W&p$`o4yZ(?A|BY;!J-0yZp5>quHkN3-Ngh+^dnr$E zUroJJc2B7E?QJ(zx+^DyDcj$k`c!P$LDk>e2uWH9{YyNYKff$vRtq2ZW9JI58YQT^ z<>|*1uI$CK%%rkCIXHV$Y0s8)#IARrpWLo~aAtw9X&yxOlgT>;`$oxFXb#p1#ARnh z6Q(iG`FdDTYiBx!YxAYksP9E$FY<`de_uJB__vn^x#TEb1-#VIw(3)N#}6+Mj62&B z{wCT9IttaZD^Qc_;~uuRz`60x>2t|cM5@fa0`XOYqE(_zRFb`3=_Ba|ffHMz!-yR;K>yzg^< zpXdGj-q&GSkAt}|z*B#eX2ak&^h%$IOSh#U%CF4pMa^yAM&Gh;Ohtb6^Y!sV602aW z*l%7a8h*h0QvPRL;n&VlgmbY1l*4SqxxX{FnK2=s(2%)8aWV?iO2Kik_7YQy=>y*D zFNWm2DSJ5??VWQSr>xlWJ5wKq6XI#!*Am#pX+i<7f z8N?IMO{SZP6LjhaTQ-}1VU@ukWwWWFKB0$a%Xy!ib{K#1Oc}y>O({CA`ZcoWlMpKk z$vF_++D6J}y+2qOZgQ2|7XiKM(*zWuTIU787CKr0G=16}gXJJ~VzXBk&-O-DKWiVE72rt+jf| zbiv2(4r_lmh)ORW*CtZQ2?3Az0$ zwoM8Qgr-G(Y-Die&M3XTO8Ef6ShE1unq6%~ne(fjhK!x>4rScVj_=&5m46`_I8I;l z?GKAjY%h%I#2xsQUMNg%8GlM@QuK1Zx3B+PKQBFC%D!+$uCrRWD3Co z9NLZ+VVWVR5t^mtHjTHr6d9%e$1FZlZDR~3!ddlzRX!!?Xh7z&psH`to`Oqh(m@Z_ z-10Vq=qB7~xn@yYj}^?r>a=t}Vn%1OR^UJ5EU;Bkjh7!pt?)30hQfnw$fsEiE> z@2nKFA4QMNkOod{rd$wY3@W)jnQL6D&3C4whh<_W|DP+ekf$OBg!d3 zf@8?Ar5Vx--`MXKrEb!M699&p3>Oy@y<2cUc$p>@ZByyvpI{P@HA89{zA$V5PAG>F zqyZw<;?>2%-ZHUlmRgN@;^~!>n&myNvQ5qO!7>(k0gN2nK0IfDX2EBq{_-zT&wChB zPlek;drgi;axvAYFI~A%rsZR=?Wg%mlq)m8rdvP1+nV=^b_Mmx$@2@=QeLa`M|V$cvUbvlapsy>tB_lcD-W3$q6%e0x@q{ry~ z-jFg4IM_`#Pvh^rMF$gKe${|N6A|o&Z*uQC_bvI-u?I@Ow-wJ9D-|v&xmY+{=?1Y~ zAUA$kWHH{v?9#L*4fYnoh7G}n_ggKH6E*E{ac0raC>TauD=LikwcYSUZ2x zF~sBEG(BG#T@5UT{8?uTf6#ivIx&?uZy5^_$l;&umq5QsJvXDW5B@u&Y=I(y5Kw$n zSNfYb{~pUw2J)7```}jCh!j8~2iE*p7e(BA-ouT)zXL=?tQNK>CtAGBS0!LzG$#5w zU9Z>u`PPlo`^c0TC$aOQQl8GHshZ2-?};*t*#a!DzEW{|A3Qtps;8-@z{#|8uO&i9 zb2u#mlR)V$@$b&xp_2l9n-?ifDpq=BK9_VZ^p=JK$~Ab`$UBUC2Vd*Wv*%;V^q5Kg z8i51I(s6+B_WQW0EUez;*2gi%0mW+fdgB9-Dl|GaLh3QiVxJ?v;c=n5KAK}`EIJjyY!9^>FZZT>3<7kxeb?2X@ zb7OM*UwWs>UjLqpCvv-_w%#F42GDnkG+mWyeI&*yT!b!q9#<4R*Az-y7zC?zaex(B z0qJ%%Tv72aZ&f$NCV44kmnUz0Nw&TOsr3pZOpIk3M~=~5TsAFeT-5-h?p%#YDN6U$ z4vEYG_-w9nqn!(X=Lbf9X9bx_IPRAyW8&u9ZYR#LA3{STqO#-!qq5>i`mG1iqp6aV z3~M6re4SChNf=OV2$L;y6T1B0{54`OyP>1lvLHysd;QxO8s8tcNz!)KQHVOV5cG5l zYib5ZwU%jt?dYXts$oL3YpirvJjW6LZP@~3y#np#qL-%{1164IuVr}@!&a@e-w7SM z;X9b;2EvO6U@BtPYDEoyn1SVmfRPSltgM66YS%Sw8buJqv%Hcj^+&(h5pBsKZJk)c zw{FuQ>pe_JhU6j&!isEUUMhak;~TjLjcD4u{7i00O_8uLPJbRt>t$%dq6b;oJ!Ij4 zBC!I_5gM%FX|NcUxFENf&CRsV=+W{Hw5=t;DSxW9{e#Ymr=LJ#X=UUAZ91S?=qQ(G z^@s$rTuE~2?J2$NR9{@R!<@;$S#=iLsyH2ko<&*QU&bN`&2B%nGuto|Wc3&DoF4(y zV+4PPT?`!$4m`F4{=mN#Q_GMnE`o0ba#DrfiEV)2iLr$NAdm7<@z=3`i}bfvJd@)K z|7bsg?3D)=PvPm)HI`2PWl@#Y6li-1pfS~?SCHp>Vl$%~>SI1|_5^Dss20vP>0m24 zUO>{0vj6laikR5Jos$KXDzwP0Z(ka=Uokt|>Ts>Mv%(oX1 zV%ww}nzoiV2$YgfzdeAB{G+FA{(YTp{rG|XXZ0X;gRY2e-CSX7yX}7)EQEz*1d40_ z8UbF7KQxn#tG6}~CtnCqm1`KQExlv zp6B3`koOQ}zz8TCRGJ^(2V;2vNrB5eP;iU=!uq~-nKa^>z z&GXncBBgHZ%2Xa=aA)Dh=lXVdmH^Ex^zD_d_Ex%NgPUQi5-WAJs6%NC=MQ$Ek2i7& z2m*8oH9T&874(FJAB%X_u>q|_J+7JOKo8zOjF>hx8o(&ydB@=p@oYViOHecYbZfOl z?_!vl91goAHl6J3?EI_4yoAS$7Cp^lSQ}w{1ElN%pVtJ;ENC zuZI>%G0x;{BaTD;H?+rE!?U(%g!Oj|1Wkz2cSNg?dka*Mafhp(FHG)0TdWWX>cLN@ z9%dQo+~s{1biZt zbdUuL_);8dfKkvY)KtE~j3Ttbg3jKx&ZxP{>~4#2Y%BYGurYu63XGxqp;lcS$9o^%=R#ZeOqkiw=8=ye70Jy>2WN^E{2c>6d{2co ztXR#1+~5i!fNgP6hUL-%W2FY}3Y?v^ulnK?rRa%cS8QTicG;V|cY_;%JI>&q1wR(kbAvxpXajnT ug(APzdIHWVxzW3}xx1hx*%{RN0_qv@M}=vUcs%35G&AGNMwN!{vHt^bFFgYQ From d35d69a4f3e54c7be86e57829ef6e4b923e62412 Mon Sep 17 00:00:00 2001 From: Matt Beard Date: Tue, 2 Nov 2021 22:38:04 +0000 Subject: [PATCH 109/219] Updated and added script (#1231) * Updated and added script * Tweaks as per PR#1231 --- .../Data8/apiDefinition.swagger.json | 2835 +++++++++++------ certified-connectors/Data8/apiProperties.json | 2 +- certified-connectors/Data8/script.csx | 38 + 3 files changed, 1844 insertions(+), 1031 deletions(-) create mode 100644 certified-connectors/Data8/script.csx diff --git a/certified-connectors/Data8/apiDefinition.swagger.json b/certified-connectors/Data8/apiDefinition.swagger.json index 48d1dcfe12..3060e7e83c 100644 --- a/certified-connectors/Data8/apiDefinition.swagger.json +++ b/certified-connectors/Data8/apiDefinition.swagger.json @@ -1,362 +1,815 @@ { - "swagger": "2.0", - "info": { - "version": "1.0.1", - "title": "Data8 Data Enrichment", - "description": "Data8 helps you build confidence in your data. We can save you money by cleaning and enriching both your existing data, as well as ensuring only the highest quality data goes in at the point of entry, leaving you to concentrate on targeting and communicating to the right customers.", - "contact": { - "name" : "Technical Helpdesk", - "url" : "https://www.data-8.co.uk", - "email" : "helpdesk@data-8.co.uk" + "swagger": "2.0", + "info": { + "version": "1.0.2", + "title": "Data8 Data Enrichment", + "description": "Data8 helps you build confidence in your data. We can save you money by cleaning and enriching both your existing data, as well as ensuring only the highest quality data goes in at the point of entry, leaving you to concentrate on targeting and communicating to the right customers.", + "contact": { + "name": "Technical Helpdesk", + "url": "https://www.data-8.co.uk", + "email": "helpdesk@data-8.co.uk" + } + }, + "host": "webservices.data-8.co.uk", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/SalaciousName/IsUnusableName.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "Check Usable Name", + "description": "Using this action, you can check if a name is a real usable name or whether it is salacious, random or blank.", + "operationId": "IsUsableName", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "description": "The title of the name", + "title": "Title" + }, + "Forename": { + "type": "string", + "description": "The first name of the full name", + "title": "First name" + }, + "MiddleName": { + "type": "string", + "description": "The middle name of the full name", + "title": "Middle name" + }, + "Surname": { + "type": "string", + "title": "Last name", + "description": "The last name of the full name" + } + }, + "description": "name" + } + } + } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" + }, + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } + }, + "description": "Status" + }, + "Result": { + "type": "string", + "description": "A blank value indiciates the name is a usable name. If a value is returned it will be one of the following: \"IncompleteName\", \"RandomName\" or \"SalaciousName\"", + "title": "Result", + "enum": [ + "", + "IncompleteName", + "RandomName", + "SalaciousName" + ] + } + } + } + } + } } }, - "host": "webservices.data-8.co.uk", - "basePath": "/", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [ - "application/json" - ], - "paths": { - "/SalaciousName/IsUnusableName.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "Check Usable Name", - "description": "Using this action, you can check if a name is a real usable name or whether it is salacious, random or blank.", - "operationId": "IsUsableName", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "name": { - "type": "object", - "properties": { - "Title": { - "type": "string", - "description": "The title of the name", - "title": "Title" - }, - "Forename": { - "type": "string", - "description": "The first name of the full name", - "title": "First name" - }, - "MiddleName": { - "type": "string", - "description": "The middle name of the full name", - "title": "Middle name" - }, - "Surname": { - "type": "string", - "title": "Last name", - "description": "The last name of the full name" - } + "/TPS/IsCallable.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "TPS Check", + "description": "Checks if a telephone number is registered on the TPS or not.", + "operationId": "IsCallableTPS", + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "The telephone number you want to TPS check", + "title": "Telephone Number" + } + }, + "required": [ + "number" + ] + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "name" - } + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } + }, + "description": "Status" + }, + "Callable": { + "type": "boolean", + "description": "Returns a boolean value letting you know if it's callable. If false, the number is currently on the TPS.", + "title": "Is Callable" + }, + "TelephoneNumber": { + "type": "string", + "description": "Returns the telephone number if callable, null if not.", + "title": "Telephone Number" } } } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + } + } + }, + "/CTPS/IsCallable.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "CTPS Check", + "description": "Checks if a telephone number is registered on the CTPS or not.", + "operationId": "IsCallableCTPS", + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "The telephone number you wish to CTPS check", + "title": "Telephone Number" + } + }, + "required": [ + "number" + ] + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "Status" + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "Result": { - "type": "string", - "description": "A blank value indiciates the name is a usable name. If a value is returned it will be one of the following: \"IncompleteName\", \"RandomName\" or \"SalaciousName\"", - "title": "Result", - "enum": [ - "", - "IncompleteName", - "RandomName", - "SalaciousName" - ] - } + "description": "Status" + }, + "Callable": { + "type": "boolean", + "description": "Returns a boolean value letting you know if it's callable. If false, the number is currently on the CTPS.", + "title": "Is Callable" + }, + "TelephoneNumber": { + "type": "string", + "description": "If populated, the telephone number is callable and null if not", + "title": "Telephone Number" } } } } } - }, - "/TPS/IsCallable.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "TPS Check", - "description": "Checks if a telephone number is registered on the TPS or not.", - "operationId": "IsCallableTPS", - "parameters": [ - { - "name": "body", - "in": "body", - "schema": { - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "The telephone number you want to TPS check", - "title": "Telephone Number" - } + } + }, + "/BankAccountValidation/IsValid.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "Validate Bank Account Information", + "description": "Check if a sort code and bank account number are valid.", + "operationId": "IsValidBankAccount", + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "sortCode": { + "type": "string", + "description": "The sort code you wish to validate", + "title": "Sort Code" }, - "required": [ - "number" - ] + "bankAccountNumber": { + "type": "string", + "description": "The bank account number you wish to validate", + "title": "Bank Account Number" + } }, - "required": true - } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + "required": [ + "sortCode" + ] + }, + "required": true + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" + }, + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" }, - "description": "Status" + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "Callable": { - "type": "boolean", - "description": "Returns a boolean value letting you know if it's callable. If false, the number is currently on the TPS.", - "title": "Is Callable" + "description": "Status" + }, + "Valid": { + "type": "string", + "title": "Valid", + "description": "Indicates if the incoming sort code and bank account number could be validated." + }, + "SortCode": { + "type": "string", + "description": "The sort code that has been validated.", + "title": "Sort Code" + }, + "AccountNumber": { + "type": "string", + "description": "The account number that has been validated.", + "title": "Account Number" + }, + "BICCode": { + "type": "string", + "description": "The BIC code of the bank branch indicated by the sort code.", + "title": "BIC Code" + }, + "IBAN": { + "type": "string", + "title": "IBAN", + "description": "The IBAN code of the bank account indicated by the sort code and account number." + }, + "BranchName": { + "type": "string", + "description": "The name of the bank branch indicated by the sort code.", + "title": "Branch Name" + }, + "ShortBankName": { + "type": "string", + "description": "A short name for the bank indicated by the sort code.", + "title": "Short Bank Name" + }, + "FullBankName": { + "type": "string", + "description": "The full name for the bank indicated by the sort code.", + "title": "Full Bank Name" + }, + "Address": { + "type": "object", + "properties": { + "Address": { + "type": "object", + "properties": { + "Lines": { + "type": "array", + "items": { + "type": "string", + "title": "Address Lines" + }, + "description": "Lines" + } + }, + "title": "Address", + "description": "The address of the bank branch indicated by the sort code." + } }, - "TelephoneNumber": { - "type": "string", - "description": "Returns the telephone number if callable, null if not.", - "title": "Telephone Number" - } + "description": "Address" + }, + "AcceptsBACSPayments": { + "type": "boolean", + "description": "Indicates if the bank branch can accept payments made through the BACS system.", + "title": "Accepts BACS Payments" + }, + "AcceptsDirectDebitTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept direct debit payments.", + "title": "Accepts Direct Debit Transactions" + }, + "AcceptsDirectCreditTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept direct credit payments.", + "title": "Accepts Direct Credit Transactions" + }, + "AcceptsUnpaidChequeClaimTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept claims for unpaid cheques.", + "title": "Accepts Unpaid Cheque Claim Transactions" + }, + "AcceptsBuildingSocietyCreditTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept credits from building societies.", + "title": "Accepts Building Society Credit Transactions" + }, + "AcceptsDividendInterestPaymentTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept dividend interest payments.", + "title": "Accepts Dividend Interest Payment Transactions" + }, + "AcceptsDirectDebitInstructionTransactions": { + "type": "boolean", + "description": "Indicates if the bank branch can accept direct debit instructions.", + "title": "Accepts Direct Debit Instruction Transactions" + }, + "AcceptsCHAPSPayments": { + "type": "boolean", + "description": "Indicates if the bank branch can accept payments made through the CHAPS system.", + "title": "Accepts CHAPS Payments" + }, + "AcceptsCheques": { + "type": "boolean", + "description": "Indicates if the bank branch can accept payments made by cheque.", + "title": "Accepts Cheques" + }, + "AcceptsFasterPayments": { + "type": "boolean", + "description": "Indicates if the bank branch can accept faster payments.", + "title": "Accepts Faster Payments" } } } } } - }, - "/CTPS/IsCallable.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "CTPS Check", - "description": "Checks if a telephone number is registered on the CTPS or not.", - "operationId": "IsCallableCTPS", - "parameters": [ - { - "name": "body", - "in": "body", - "schema": { - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "The telephone number you wish to CTPS check", - "title": "Telephone Number" - } + } + }, + "/EmailValidation/IsValid.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "Validate Email Address", + "description": "Checks to see if an inputted email address is valid to receive email", + "operationId": "IsValidEmail", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "The email address you wish to validate", + "title": "Email Address" }, - "required": [ - "number" - ] + "level": { + "type": "string", + "description": "The level to which you wish to validate - please check https://www.data-8.co.uk/resources/support/service-documentation/email-validation/reference/isvalid for more information", + "title": "Validation Level", + "enum": [ + "Syntax", + "MX", + "Server", + "Address" + ] + } }, - "required": true + "required": [ + "email", + "level" + ] } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "Status" - }, - "Callable": { - "type": "boolean", - "description": "Returns a boolean value letting you know if it's callable. If false, the number is currently on the CTPS.", - "title": "Is Callable" - }, - "TelephoneNumber": { - "type": "string", - "description": "If populated, the telephone number is callable and null if not", - "title": "Telephone Number" + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } } + }, + "Result": { + "type": "string", + "description": "Contains a status code indicating if the email address could be validated. For more information on the possible status code, please read https://www.data-8.co.uk/resources/support/service-documentation/email-validation/reference/isvalid", + "title": "Result" } } } } } - }, - "/BankAccountValidation/IsValid.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "Validate Bank Account Information", - "description": "Check if a sort code and bank account number are valid.", - "operationId": "IsValidBankAccount", - "parameters": [ - { - "name": "body", - "in": "body", - "schema": { - "type": "object", - "properties": { - "sortCode": { - "type": "string", - "description": "The sort code you wish to validate", - "title": "Sort Code" - }, - "bankAccountNumber": { - "type": "string", - "description": "The bank account number you wish to validate", - "title": "Bank Account Number" - } + } + }, + "/InternationalTelephoneValidation/IsValid.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "Validate Telephone Number", + "description": "Checks to see if an inputted email address is valid to receive email", + "operationId": "IsValidTelephone", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "telephoneNumber": { + "type": "string", + "description": "The number you want to validate", + "title": "Telephone Number" + }, + "defaultCountry": { + "type": "string", + "description": "Formatted as numbers i.e. 44 for UK", + "title": "Default Country Code" }, - "required": [ - "sortCode" - ] + "options": { + "type": "object", + "properties": { + "UseLineValidation": { + "type": "boolean", + "description": "If set to true then the service will use Data8 LandlineValidation on any number it recognises as a UK landline number and InternationalTelephoneValidation on all other numbers. Any validation call will be debited either an InternationalTelephoneValidation credit or a LandlineValidation credit accordingly so please ensure you have LandlineValidation credits available before using this option. The option defaults to false.", + "title": "Use Line Validation" + }, + "UseMobileValidation": { + "type": "boolean", + "description": "If set to true then the service will use Data8 MobileValidation on any number it recognises as a mobile number and InternationalTelephoneValidation on all other numbers. Any validation call will be debited either an InternationalTelephoneValidation credit or a MobileValidation credit accordingly so please ensure you have MobileValidation credits available before using this option. The option defaults to false.", + "title": "Use Mobile Validation" + } + }, + "description": "options" + } }, - "required": true + "required": [ + "telephoneNumber", + "defaultCountry" + ] } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "Status" - }, - "Valid": { - "type": "string", - "title": "Valid", - "description": "Indicates if the incoming sort code and bank account number could be validated." - }, - "SortCode": { - "type": "string", - "description": "The sort code that has been validated.", - "title": "Sort Code" + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "AccountNumber": { - "type": "string", - "description": "The account number that has been validated.", - "title": "Account Number" + "description": "Status" + }, + "Result": { + "type": "object", + "properties": { + "TelephoneNumber": { + "type": "string", + "description": "The inputted telephone number formatted", + "title": "Telephone Number" + }, + "ValidationResult": { + "type": "string", + "description": "The simple result for the validation of the telephone number", + "title": "Validation Result" + }, + "ValidationLevel": { + "type": "string", + "description": "The level of validation found for the phone number.", + "title": "Validation Level" + }, + "NumberType": { + "type": "string", + "description": "Specifies the type of the number provided i.e. Landline or Mobile", + "title": "Number Type" + }, + "Location": { + "type": "string", + "description": "Current location of the telephone number if available", + "title": "Location" + }, + "Provider": { + "type": "string", + "description": "The network provider of the telephone number", + "title": "Provider" + }, + "CountryCode": { + "type": "string", + "description": "Country ISO2 code of the telephone number", + "title": "Country Code" + }, + "CountryName": { + "type": "string", + "description": "Country name of the telephone number", + "title": "Country Name" + } }, - "BICCode": { - "type": "string", - "description": "The BIC code of the bank branch indicated by the sort code.", - "title": "BIC Code" + "description": "Result" + } + } + } + } + } + } + }, + "/Postcoder/CleanAddress.json": { + "post": { + "consumes": [ + "application/json" + ], + "summary": "Clean Address", + "description": "Formats, verifies and corrects a given address into a full formatted address.", + "operationId": "CleanAddress", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "address": { + "type": "object", + "properties": { + "Lines": { + "type": "array", + "items": { + "type": "string", + "title": "Address Lines" + }, + "description": "Lines" + } }, - "IBAN": { - "type": "string", - "title": "IBAN", - "description": "The IBAN code of the bank account indicated by the sort code and account number." + "description": "address", + "required": [ + "Lines" + ] + }, + "options": { + "type": "object", + "properties": { + "DefaultCountryCode": { + "type": "string", + "description": "An ISO 2 character code for the country to assume the address is in unless otherwise specified. This defaults to GB.", + "title": "Default Country Code" + }, + "DetectCountry": { + "type": "boolean", + "description": "Set to true to attempt to automatically detect the country from the provided address information, possibly overriding the default country", + "title": "Auto Detect Country" + }, + "Country": { + "type": "string", + "description": "If DetectCountry is set to true, this is taken as additional user input alongside the address to influence the country detection function. The format of this is not enforced, so could be provided as \"US\", \"USA\" or \"United States\"", + "title": "Country" + }, + "IncludeCountry": { + "type": "boolean", + "description": "Includes the CountryName field in the main part of the result", + "title": "Include Country" + } }, - "BranchName": { - "type": "string", - "description": "The name of the bank branch indicated by the sort code.", - "title": "Branch Name" + "description": "options" + } + }, + "required": [ + "address" + ] + } + } + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" + }, + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "ShortBankName": { - "type": "string", - "description": "A short name for the bank indicated by the sort code.", - "title": "Short Bank Name" + "description": "Status" + }, + "Result": { + "type": "object", + "properties": { + "Address": { + "type": "object", + "properties": { + "Lines": { + "type": "array", + "items": { + "type": "string", + "title": "Address Lines" + }, + "description": "Lines" + } + }, + "description": "Address", + "title": "Address Lines" + } }, - "FullBankName": { - "type": "string", - "description": "The full name for the bank indicated by the sort code.", - "title": "Full Bank Name" + "description": "Result" + }, + "MatchLevel": { + "type": "string", + "description": "Contains a MatchLevel to indicate how well the address matched to PAF. Possible values are OK_Unchanged, OK_Corrected, NOK_Building, NOK_Street, NOK_Town, NOK_NoMatch", + "title": "Match Level" + }, + "CountryName": { + "type": "string", + "description": "Contains the name of the country the address is in.", + "title": "Country Name" + } + } + } + } + } + } + }, + "/AddressCapture/GetFullAddress.json": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Success" + }, + "ErrorMessage": { + "type": "string", + "description": "Error Message (if applicable)" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Credits Remaining" + } }, - "Address": { + "description": "Status" + }, + "ResultCount": { + "type": "integer", + "format": "int32", + "title": "Contains the number of addresses in the Results field. This field is only populated if the ReturnResultCount option is set to true" + }, + "Results": { + "type": "array", + "items": { "type": "object", "properties": { "Address": { @@ -365,815 +818,1137 @@ "Lines": { "type": "array", "items": { - "type": "string", - "title": "Address Lines" + "type": "string" + }, + "description": "Formatted Address Lines" + } + }, + "description": "Formatted Address" + }, + "RawAddress": { + "type": "object", + "properties": { + "Organisation": { + "type": "string", + "description": "Organisation" + }, + "Department": { + "type": "string", + "description": "Department" + }, + "AddressKey": { + "type": "integer", + "format": "int32", + "description": "Address Key" + }, + "OrganisationKey": { + "type": "integer", + "format": "int32", + "description": "Organisation Key" + }, + "PostcodeType": { + "type": "string", + "description": "Postcode Type" + }, + "BuildingNumber": { + "type": "integer", + "format": "int32", + "description": "Building Number" + }, + "SubBuildingName": { + "type": "string", + "description": "Sub Building Name" + }, + "BuildingName": { + "type": "string", + "description": "Building Name" + }, + "DependentThoroughfareName": { + "type": "string", + "description": "Dependent Thoroughfare Name" + }, + "DependentThoroughfareDesc": { + "type": "string", + "description": "Dependent Thoroughfare Desc" + }, + "ThoroughfareName": { + "type": "string", + "description": "Thoroughfare Name" + }, + "ThoroughfareDesc": { + "type": "string", + "description": "Thoroughfare Desc" + }, + "DoubleDependentLocality": { + "type": "string", + "description": "Double Dependent Locality" + }, + "DependentLocality": { + "type": "string", + "description": "Dependent Locality" + }, + "Locality": { + "type": "string", + "description": "Locality" + }, + "Postcode": { + "type": "string", + "description": "Postcode" + }, + "Dps": { + "type": "string", + "description": "DPS" + }, + "PoBox": { + "type": "string", + "description": "PO Box" + }, + "PostalCounty": { + "type": "string", + "description": "Postal County" + }, + "TraditionalCounty": { + "type": "string", + "description": "Traditional County" + }, + "AdministrativeCounty": { + "type": "string", + "description": "Administrative County" + }, + "CountryISO2": { + "type": "string", + "description": "Country ISO2" + }, + "UniqueReference": { + "type": "string", + "description": "Unique Reference" + }, + "Location": { + "type": "object", + "properties": { + "Easting": { + "type": "integer", + "format": "int32", + "description": "Easting" + }, + "Northing": { + "type": "integer", + "format": "int32", + "description": "Northing" + }, + "GridReference": { + "type": "string", + "description": "GridReference" + }, + "Longitude": { + "type": "number", + "format": "float", + "description": "Longitude" + }, + "Latitude": { + "type": "number", + "format": "float", + "description": "Latitude" + }, + "CountyCode": { + "type": "string", + "description": "CountyCode" + }, + "County": { + "type": "string", + "description": "County" + }, + "DistrictCode": { + "type": "string", + "description": "DistrictCode" + }, + "District": { + "type": "string", + "description": "District" + }, + "WardCode": { + "type": "string", + "description": "WardCode" + }, + "Ward": { + "type": "string", + "description": "Ward" + }, + "Country": { + "type": "string", + "description": "Country" + } }, - "description": "Lines" + "description": "Location" } }, - "title": "Address", - "description": "The address of the bank branch indicated by the sort code." + "description": "Raw Address" } - }, - "description": "Address" - }, - "AcceptsBACSPayments": { - "type": "boolean", - "description": "Indicates if the bank branch can accept payments made through the BACS system.", - "title": "Accepts BACS Payments" - }, - "AcceptsDirectDebitTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept direct debit payments.", - "title": "Accepts Direct Debit Transactions" - }, - "AcceptsDirectCreditTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept direct credit payments.", - "title": "Accepts Direct Credit Transactions" - }, - "AcceptsUnpaidChequeClaimTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept claims for unpaid cheques.", - "title": "Accepts Unpaid Cheque Claim Transactions" - }, - "AcceptsBuildingSocietyCreditTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept credits from building societies.", - "title": "Accepts Building Society Credit Transactions" - }, - "AcceptsDividendInterestPaymentTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept dividend interest payments.", - "title": "Accepts Dividend Interest Payment Transactions" - }, - "AcceptsDirectDebitInstructionTransactions": { - "type": "boolean", - "description": "Indicates if the bank branch can accept direct debit instructions.", - "title": "Accepts Direct Debit Instruction Transactions" - }, - "AcceptsCHAPSPayments": { - "type": "boolean", - "description": "Indicates if the bank branch can accept payments made through the CHAPS system.", - "title": "Accepts CHAPS Payments" - }, - "AcceptsCheques": { - "type": "boolean", - "description": "Indicates if the bank branch can accept payments made by cheque.", - "title": "Accepts Cheques" + } }, - "AcceptsFasterPayments": { - "type": "boolean", - "description": "", - "title": "Accepts Faster Payments" - } + "description": "Results" } } } } - } - }, - "/EmailValidation/IsValid.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "Validate Email Address", - "description": "Checks to see if an inputted email address is valid to receive email", - "operationId": "IsValidEmail", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "The email address you wish to validate", - "title": "Email Address" - }, - "level": { - "type": "string", - "description": "The level to which you wish to validate - please check https://www.data-8.co.uk/resources/support/service-documentation/email-validation/reference/isvalid for more information", - "title": "Validation Level", - "enum": [ - "Syntax", - "MX", - "Server", - "Address" - ] - } + }, + "summary": "Get Full Address", + "operationId": "GetFullAddress", + "description": "Searches for an addresses based on input data such as building number and postcode", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "licence": { + "type": "string", + "description": "As the Royal Mail PAF database can be licensed in multiple ways, this parameter indicates under which license you are accessing the data. This must match the variant you have a license or credits for - if you are unsure which option to choose, please contact your account manager", + "title": "License", + "enum": [ + "InternalUserFull", + "InternalUserFullArea", + "SmallUserFull", + "WebClickFull", + "WebServerFull", + "Lookup", + "InternalServerFull", + "FreeTrial" + ] }, - "required": [ - "email", - "level" - ] - } + "postcode": { + "type": "string", + "description": "The full postcode to get addresses for. Formatting of the postcode does not matter so \"ch24ne\", \"CH2 4NE\", \"ch02 4Ne\" are all accepted.", + "title": "Postcode" + }, + "building": { + "type": "string", + "description": "An optional value to filter the returned addresses by building name, number, sub-premise (e.g. flat number) or company name. If null or \"\" are supplied, all addresses on the postcode are included in the result.", + "title": "Building", + "x-ms-visibility": "advanced" + }, + "options": { + "type": "object", + "properties": { + "FixTownCounty": { + "type": "boolean", + "description": "true to ensure the town and county are returned in the last two address lines, or false if they should appear in the first available line.", + "title": "FixTownCounty", + "x-ms-visibility": "advanced" + }, + "MaxLines": { + "type": "integer", + "description": "The number of lines to format the address over. An additional line will be included in the result for the postcode.", + "title": "MaxLines", + "format": "int32", + "default": 6 + }, + "MaxLineLength": { + "type": "integer", + "description": "The maximum number of characters that can appear in each address line.", + "title": "MaxLineLength", + "format": "int32", + "x-ms-visibility": "advanced" + }, + "NormalizeCase": { + "type": "boolean", + "description": "Converts all text in the address except the town name to proper case.", + "title": "NormalizeCase", + "x-ms-visibility": "advanced" + }, + "NormalizeTownCase": { + "type": "boolean", + "description": "Converts the town name to proper case", + "title": "NormalizeTownCase", + "x-ms-visibility": "advanced" + }, + "ExcludeCounty": { + "type": "boolean", + "description": "Excludes the county, if any, from the formatted address", + "title": "ExcludeCounty", + "x-ms-visibility": "advanced" + }, + "UseAnyAvailableCounty": { + "type": "boolean", + "description": "Uses any available county to populate the formatted address, not just the postal county", + "title": "UseAnyAvailableCounty", + "x-ms-visibility": "advanced" + }, + "UnwantedPunctuation": { + "type": "boolean", + "description": "A string containing any punctuation characters to be removed from the formatted address", + "title": "UnwantedPunctuation", + "x-ms-visibility": "advanced" + }, + "FixBuilding": { + "type": "boolean", + "description": "Ensures the building name/number is always placed in the first line", + "title": "FixBuilding", + "x-ms-visibility": "advanced" + }, + "IncludeUDPRN": { + "type": "boolean", + "description": "Set to true to have the UniqueReference field of each returned address populated with the UDPRN", + "title": "IncludeUDPRN", + "x-ms-visibility": "advanced" + }, + "IncludeLocation": { + "type": "boolean", + "description": "Set to true to have the Location field of each returned address populated with the geocoding details for the address", + "title": "IncludeLocation", + "default": true + }, + "ReturnResultCount": { + "type": "boolean", + "description": "Indicates if the ResultCount field in the result should be populated with the total number of addresses returned.", + "title": "ReturnResultCount", + "x-ms-visibility": "advanced" + }, + "IncludeNYB": { + "type": "boolean", + "description": "Set to true to include addresses from the Not Yet Built database in the results (requires additional licensing)", + "title": "IncludeNYB", + "x-ms-visibility": "advanced" + }, + "IncludeMR": { + "type": "boolean", + "description": "Set to true to include addresses from the Multiple Residency database in the results (requires additional licensing)", + "title": "IncludeMR", + "x-ms-visibility": "advanced" + }, + "Formatter": { + "type": "string", + "description": "Pick from one of the available formatters to control how the raw address is converted into a human-readable address", + "title": "Formatter", + "enum": [ + "DefaultFormatter", + "PAFStandardFormatter", + "NoOrganisationFormatter" + ], + "x-ms-visibility": "advanced" + } + }, + "description": "options" + } + }, + "required": [ + "licence", + "postcode" + ] } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + ] + } + }, + "/Deceased/IsDeceased.json": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Success" + }, + "ErrorMessage": { + "type": "string", + "description": "Error Message (if applicable)" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Credits Remaining" } }, - "Result": { - "type": "string", - "description": "Contains a status code indicating if the email address could be validated. For more information on the possible status code, please read https://www.data-8.co.uk/resources/support/service-documentation/email-validation/reference/isvalid", - "title": "Result" - } + "description": "Status" + }, + "Result": { + "type": "boolean", + "description": "Indicates if the person is found to be deceased", + "title": "Is Deceased", + "enum": [ + true, + false + ] } } } } - } - }, - "/InternationalTelephoneValidation/IsValid.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "Validate Telephone Number", - "description": "Checks to see if an inputted email address is valid to receive email", - "operationId": "IsValidTelephone", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "telephoneNumber": { - "type": "string", - "description": "The number you want to validate", - "title": "Telephone Number" - }, - "defaultCountry": { - "type": "string", - "description": "Formatted as numbers i.e. 44 for UK", - "title": "Default Country Code" - }, - "options": { - "type": "object", - "properties": { - "UseLineValidation": { - "type": "boolean", - "description": "If set to true then the service will use Data8 LandlineValidation on any number it recognises as a UK landline number and InternationalTelephoneValidation on all other numbers. Any validation call will be debited either an InternationalTelephoneValidation credit or a LandlineValidation credit accordingly so please ensure you have LandlineValidation credits available before using this option. The option defaults to false.", - "title": "Use Line Validation" + }, + "summary": "Is Deceased", + "consumes": [ + "application/json" + ], + "description": "UK - Identify deceased individuals quickly and easily, using credible sources updated on a regular basis.", + "operationId": "IsDeceased", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "record": { + "type": "object", + "properties": { + "Name": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "description": "The title of the name to search", + "title": "Title" + }, + "Forename": { + "type": "string", + "description": "The firstname of the name to search", + "title": "Forename" + }, + "MiddleName": { + "type": "string", + "description": "The middle name of the name to search", + "title": "Middle Name" + }, + "Surname": { + "type": "string", + "description": "The surname of the name to search", + "title": "Surname" + } }, - "UseMobileValidation": { - "type": "boolean", - "description": "If set to true then the service will use Data8 MobileValidation on any number it recognises as a mobile number and InternationalTelephoneValidation on all other numbers. Any validation call will be debited either an InternationalTelephoneValidation credit or a MobileValidation credit accordingly so please ensure you have MobileValidation credits available before using this option. The option defaults to false.", - "title": "Use Mobile Validation" - } + "description": "Name", + "required": [ + "Surname" + ] }, - "description": "options" - } + "Address": { + "type": "object", + "properties": { + "Lines": { + "type": "array", + "items": { + "type": "string", + "description": "A string away of the address elements", + "title": "Address Lines" + }, + "description": "Lines" + } + }, + "description": "Address", + "required": [ + "Lines" + ] + } + }, + "description": "record", + "required": [ + "Address", + "Name" + ] }, - "required": [ - "telephoneNumber", - "defaultCountry" - ] - } + "marketing": { + "type": "boolean", + "description": "A boolean to determine if the search is being done for marketing reasons or not.", + "title": "Marketing", + "enum": [ + true, + false + ], + "default": true + }, + "options": { + "type": "object", + "properties": { + "MatchLevel": { + "type": "string", + "description": "The minimum match level between the name supplied in the input record and the name in our reference data files. S is Surname, I is Initial and F is Forename", + "title": "Match Level", + "enum": [ + "S", + "I", + "F" + ], + "default": "I" + } + }, + "description": "options" + } + }, + "required": [ + "marketing", + "record" + ] } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + ] + } + }, + "/PredictiveAddress/Search.json": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "Status" + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "Result": { + "description": "Status" + }, + "Results": { + "type": "array", + "items": { "type": "object", "properties": { - "TelephoneNumber": { - "type": "string", - "description": "The inputted telephone number formatted", - "title": "Telephone Number" - }, - "ValidationResult": { - "type": "string", - "description": "The simple result for the validation of the telephone number", - "title": "Validation Result" - }, - "ValidationLevel": { - "type": "string", - "description": "The level of validation found for the phone number.", - "title": "Validation Level" - }, - "NumberType": { - "type": "string", - "description": "Specifies the type of the number provided i.e. Landline or Mobile", - "title": "Number Type" - }, - "Location": { + "label": { "type": "string", - "description": "Current location of the telephone number if available", - "title": "Location" + "description": "The value to show to the user.", + "title": "Label" }, - "Provider": { + "value": { "type": "string", - "description": "The network provider of the telephone number", - "title": "Provider" + "description": "value" }, - "CountryCode": { - "type": "string", - "description": "Country ISO2 code of the telephone number", - "title": "Country Code" + "container": { + "type": "boolean", + "description": "Indicates if this match is a container for other addresses (e.g. a town, street etc.). If this is true, the value should be supplied to the DrillDown endpoint to get the details of the addresses in the container record. If it is false, the value should be supplied to the Retrieve endpoint to get the full details of the address.", + "title": "Container" }, - "CountryName": { - "type": "string", - "description": "Country name of the telephone number", - "title": "Country Name" + "items": { + "type": "integer", + "format": "int32", + "description": "A list of possible matches.", + "title": "Items" } - }, - "description": "Result" - } + } + }, + "description": "Results" + }, + "Count": { + "type": "integer", + "format": "int32", + "description": "Count" + }, + "SessionID": { + "type": "string", + "description": "A SessionID is also included in the response. This should be included in any subsequent calls to the Search endpoint.", + "title": "SessionID" } } } } - } - }, - "/Postcoder/CleanAddress.json": { - "post": { - "consumes" : [ - "application/json" - ], - "summary": "Clean Address", - "description": "Formats, verifies and corrects a given address into a full formatted address.", - "operationId": "CleanAddress", - "parameters": [ - { - "name": "body", - "in": "body", - "required": false, - "schema": { - "type": "object", - "properties": { - "address": { - "type": "object", - "properties": { - "Lines": { - "type": "array", - "items": { - "type": "string", - "description": "", - "title": "Address Lines" - }, - "description": "Lines" - } + }, + "summary": "PredictiveAddress (Search)", + "description": "Searching with the Data8 PredictiveAddress API - Search for a partial address in our many data sources", + "operationId": "SearchPredictiveAddress", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "The ISO-2 country code in which the address belongs.", + "title": "Country" + }, + "search": { + "type": "string", + "description": "The partial address entered by the user.", + "title": "Search" + }, + "telephoneNumber": { + "type": "string", + "description": "An optional parameter, the telephone number associated with the address can be supplied.", + "title": "TelephoneNumber" + }, + "session": { + "type": "string", + "description": "The session id that was received in the previous response. This improves efficiency and lookup speeds. This should be included in any subsequent calls to the Search endpoint.", + "title": "Session" + }, + "options": { + "type": "object", + "properties": { + "IncludeMR": { + "type": "boolean", + "description": "Includes addresses from the Multiple Residency database in the results (requires additional licensing).", + "title": "IncludeMR" + }, + "IncludeNYB": { + "type": "boolean", + "description": "Includes addresses from the Not Yet Built database in the results (requires additional licensing).", + "title": "IncludeNYB" + }, + "PreferredLanguage": { + "type": "string", + "description": "Set this to cy to retrieve addresses in Welsh where available, or en to prefer English. Addresses are returned in English when this option is not specified.", + "title": "PreferredLanguage", + "x-ms-visibility": "internal" + } + }, + "description": "options" + } + }, + "required": [ + "country", + "search" + ] + } + } + ] + } + }, + "/PredictiveAddress/DrillDown.json": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "address", - "required": [ - "Lines" - ] + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "options": { + "description": "Status" + }, + "Results": { + "type": "array", + "items": { "type": "object", "properties": { - "DefaultCountryCode": { + "label": { "type": "string", - "description": "An ISO 2 character code for the country to assume the address is in unless otherwise specified. This defaults to GB.", - "title": "Default Country Code" - }, - "DetectCountry": { - "type": "boolean", - "description": "Set to true to attempt to automatically detect the country from the provided address information, possibly overriding the default country", - "title": "Auto Detect Country" + "description": "The value to show to the user.", + "title": "Label" }, - "Country": { + "value": { "type": "string", - "description": "If DetectCountry is set to true, this is taken as additional user input alongside the address to influence the country detection function. The format of this is not enforced, so could be provided as \"US\", \"USA\" or \"United States\"", - "title": "Country" + "description": "A unique identifier for the match that can be supplied to the DrillDown or Retrieve endpoints.", + "title": "Value" }, - "IncludeCountry": { + "container": { "type": "boolean", - "description": "Includes the CountryName field in the main part of the result", - "title": "Include Country" + "description": "Indicates if this match is a container for other addresses (e.g. a town, street etc.). If this is true, the value should be supplied to the DrillDown endpoint to get the details of the addresses in the container record. If it is false, the value should be supplied to the Retrieve endpoint to get the full details of the address.", + "title": "Container" + }, + "items": { + "type": "integer", + "format": "int32", + "description": "A list of possible matches.", + "title": "Items" } - }, - "description": "options" - } + } + }, + "description": "Results" }, - "required": [ - "address" - ] + "Count": { + "type": "integer", + "format": "int32", + "description": "The number of matches found based on the information provided.", + "title": "Count" + }, + "SessionID": { + "type": "string", + "description": "A SessionID is also included in the response. This should be included in any subsequent calls to the Search endpoint.", + "title": "SessionID" + } } } - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Flag to determine if the request to Data8 succeeded, regardless of result", - "title": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Returned Error Message, if any", - "title": "Error Message" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Data8 Credits Remaining for the called service", - "title": "Credits Remaining" - } + } + }, + "summary": "PredictiveAddress (Drilldown)", + "description": "DrillDown with the Data8 PredictiveAddress API - Drill down further into search results", + "operationId": "DrilldownPredictiveAddress", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "The ISO 2-character country code of the search i.e. \"GB\"", + "title": "Country" + }, + "id": { + "type": "string", + "description": "The value property from the response of previous requests from either the Search or DrillDown methods should be supplied here.", + "title": "Id" + }, + "options": { + "type": "object", + "properties": { + "IncludeMR": { + "type": "boolean", + "description": "Includes addresses from the Multiple Residency database in the results (requires additional licensing).", + "title": "IncludeMR" }, - "description": "Status" - }, - "Result": { - "type": "object", - "properties": { - "Address": { - "type": "object", - "properties": { - "Lines": { - "type": "array", - "items": { - "type": "string", - "title": "Address Lines" - }, - "description": "Lines" - } - }, - "description": "Address", - "title": "Address Lines" - } + "IncludeNYB": { + "type": "boolean", + "description": "Includes addresses from the Not Yet Built database in the results (requires additional licensing).", + "title": "IncludeNYB" }, - "description": "Result" - }, - "MatchLevel": { - "type": "string", - "description": "Contains a MatchLevel to indicate how well the address matched to PAF. Possible values are OK_Unchanged, OK_Corrected, NOK_Building, NOK_Street, NOK_Town, NOK_NoMatch", - "title": "Match Level" + "PreferredLanguage": { + "type": "string", + "description": "Set this to cy to retrieve addresses in Welsh where available, or en to prefer English. Addresses are returned in English when this option is not specified.", + "title": "Preferred Language", + "x-ms-visibility": "internal" + } }, - "CountryName": { - "type": "string", - "description": "Contains the name of the country the address is in.", - "title": "Country Name" - } + "description": "options" } - } + }, + "required": [ + "country", + "id" + ] } } - } - }, - "/AddressCapture/GetFullAddress.json": { - "post": { - "consumes" : [ - "application/json" - ], - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "Status": { - "type": "object", - "properties": { - "Success": { - "type": "boolean", - "description": "Success" - }, - "ErrorMessage": { - "type": "string", - "description": "Error Message (if applicable)" - }, - "CreditsRemaining": { - "type": "number", - "format": "float", - "description": "Credits Remaining", - "title": "" - } + ] + } + }, + "/PredictiveAddress/Retrieve.json": { + "post": { + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "object", + "properties": { + "Success": { + "type": "boolean", + "description": "Flag to determine if the request to Data8 succeeded, regardless of result", + "title": "Success" }, - "description": "Status" - }, - "ResultCount": { - "type": "integer", - "format": "int32", - "description": "", - "title": "Contains the number of addresses in the Results field. This field is only populated if the ReturnResultCount option is set to true" + "ErrorMessage": { + "type": "string", + "description": "Returned Error Message, if any", + "title": "Error Message" + }, + "CreditsRemaining": { + "type": "number", + "format": "float", + "description": "Data8 Credits Remaining for the called service", + "title": "Credits Remaining" + } }, - "Results": { - "type": "array", - "items": { + "description": "Status" + }, + "Result": { + "type": "object", + "properties": { + "Address": { "type": "object", "properties": { - "Address": { - "type": "object", - "properties": { - "Lines": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Formatted Address Lines" - } + "Lines": { + "type": "array", + "items": { + "type": "string", + "description": "All lines of the resulting address", + "title": "Address Lines" }, - "description": "Formatted Address" + "description": "Lines" + } + }, + "description": "Address" + }, + "RawAddress": { + "type": "object", + "properties": { + "Organisation": { + "type": "string", + "description": "The name of the company at the address", + "title": "Organisation" + }, + "Department": { + "type": "string", + "description": "The department within the organisation at the address", + "title": "Department" + }, + "AddressKey": { + "type": "integer", + "format": "int32", + "description": "Combines with OrganisationKey and PostcodeType to provide a unique key for this address", + "title": "Address Key" + }, + "OrganisationKey": { + "type": "integer", + "format": "int32", + "description": "Combines with AddressKey and PostcodeType to provide a unique key for this address. Will be 0 for residential addresses", + "title": "OrganisationKey" + }, + "PostcodeType": { + "type": "string", + "description": "Indicates if the address is on a \"small user\" (\"S\") or \"large user\" (\"L\"). A large user postcode is one that is allocated to an individual organisation as a heavy mail user, e.g. DVLA", + "title": "PostcodeType" + }, + "BuildingNumber": { + "type": "integer", + "format": "int32", + "description": "The house number for the address. Note that this is an integer number only. Building numbers such as 12A will be shown in the BuildingName field", + "title": "BuildingNumber" + }, + "SubBuildingName": { + "type": "string", + "description": "The name of the sub-building for the address. This is typically a flat or apartment number", + "title": "SubBuildingName" + }, + "BuildingName": { + "type": "string", + "description": "The name of the building. May include number information where the number is not a simple integer", + "title": "BuildingName" + }, + "DependentThoroughfareName": { + "type": "string", + "description": "The name of the dependent thoroughfare, i.e. a smaller street off a larger street", + "title": "DependentThoroughfareName" + }, + "DependentThoroughfareDesc": { + "type": "string", + "description": "The descriptor (\"street\", \"road\" etc.) of the dependent thoroughfare", + "title": "DependentThoroughfareDesc" + }, + "ThoroughfareName": { + "type": "string", + "description": "The name of the main street", + "title": "ThoroughfareName" + }, + "ThoroughfareDesc": { + "type": "string", + "description": "The descriptor of the main street", + "title": "ThoroughfareDesc" + }, + "DoubleDependentLocality": { + "type": "string", + "description": "The name of the double-dependent locality - the third-level locality", + "title": "DoubleDependentLocality" + }, + "DependentLocality": { + "type": "string", + "description": "The name of the dependent locality - the second level locality", + "title": "DependentLocality" + }, + "Locality": { + "type": "string", + "description": "The name of the top-level postal town", + "title": "Locality" + }, + "Postcode": { + "type": "string", + "description": "The postcode in a fixed 7-character format", + "title": "Postcode" + }, + "Dps": { + "type": "string", + "description": "The 2-character delivery point suffix that uniquely identifies the address within the postcode", + "title": "DPS" + }, + "PoBox": { + "type": "string", + "description": "The details of the PO Box if the address is a PO Box address", + "title": "PoBox" + }, + "PostalCounty": { + "type": "string", + "description": "The county name that should appear in the address", + "title": "PostalCounty" + }, + "TraditionalCounty": { + "type": "string", + "description": "The county name that was traditionally associated with the address but is not now postally required", + "title": "TraditionalCounty" + }, + "AdministrativeCounty": { + "type": "string", + "description": "The county that the address is in for administrative purposes but is not postally required", + "title": "AdministrativeCounty" + }, + "CountryISO2": { + "type": "string", + "description": "The 2-character ISO country code related to the address. This is not populated by the AddressCapture service", + "title": "CountryISO2" + }, + "UniqueReference": { + "type": "string", + "description": "An alternative unique reference number for the address. This is set to the UDPRN number of the address by supplying the IncludeUDPRN option to the method", + "title": "UniqueReference" }, - "RawAddress": { + "Location": { "type": "object", "properties": { - "Organisation": { - "type": "string", - "description": "Organisation" - }, - "Department": { - "type": "string", - "description": "Department" - }, - "AddressKey": { - "type": "integer", - "format": "int32", - "description": "Address Key" - }, - "OrganisationKey": { + "Easting": { "type": "integer", "format": "int32", - "description": "Organisation Key" + "description": "The distance of the postcode east of the OS grid origin to the southwest of Scilly", + "title": "Easting" }, - "PostcodeType": { - "type": "string", - "description": "Postcode Type" - }, - "BuildingNumber": { + "Northing": { "type": "integer", "format": "int32", - "description": "Building Number" - }, - "SubBuildingName": { - "type": "string", - "description": "Sub Building Name" - }, - "BuildingName": { - "type": "string", - "description": "Building Name" - }, - "DependentThoroughfareName": { - "type": "string", - "description": "Dependent Thoroughfare Name" + "description": "The distance of the postcode north of the OS grid origin", + "title": "Northing" }, - "DependentThoroughfareDesc": { + "GridReference": { "type": "string", - "description": "Dependent Thoroughfare Desc" + "description": "The location of the postcode as a 6-digit OS grid reference", + "title": "GridReference" }, - "ThoroughfareName": { - "type": "string", - "description": "Thoroughfare Name" - }, - "ThoroughfareDesc": { - "type": "string", - "description": "Thoroughfare Desc" - }, - "DoubleDependentLocality": { - "type": "string", - "description": "Double Dependent Locality" - }, - "DependentLocality": { - "type": "string", - "description": "Dependent Locality" - }, - "Locality": { - "type": "string", - "description": "Locality" + "Longitude": { + "type": "number", + "format": "float", + "description": "The longitude of the postcode expressed in decimal degrees in the WGS84 datum", + "title": "Longitude" }, - "Postcode": { - "type": "string", - "description": "Postcode" + "Latitude": { + "type": "number", + "format": "float", + "description": "The latitude of the postcode expressed in decimal degrees in the WGS84 datum", + "title": "Latitude" }, - "Dps": { + "CountyCode": { "type": "string", - "description": "DPS" + "description": "The county code that should appear in the address", + "title": "CountyCode" }, - "PoBox": { + "County": { "type": "string", - "description": "PO Box" + "description": "The county name that should appear in the address", + "title": "County" }, - "PostalCounty": { + "DistrictCode": { "type": "string", - "description": "Postal County" + "description": "The district code that should appear in the address", + "title": "DistrictCode" }, - "TraditionalCounty": { + "District": { "type": "string", - "description": "Traditional County" + "description": "The district that should appear in the address", + "title": "District" }, - "AdministrativeCounty": { + "WardCode": { "type": "string", - "description": "Administrative County" + "description": "The reference code for the ward the postcode is in", + "title": "WardCode" }, - "CountryISO2": { + "Ward": { "type": "string", - "description": "Country ISO2" + "description": "The name of the electoral ward the postcode is in", + "title": "Ward" }, - "UniqueReference": { + "Country": { "type": "string", - "description": "Unique Reference" - }, - "Location": { - "type": "object", - "properties": { - "Easting": { - "type": "integer", - "format": "int32", - "description": "Easting" - }, - "Northing": { - "type": "integer", - "format": "int32", - "description": "Northing" - }, - "GridReference": { - "type": "string", - "description": "GridReference" - }, - "Longitude": { - "type": "number", - "format": "float", - "description": "Longitude" - }, - "Latitude": { - "type": "number", - "format": "float", - "description": "Latitude" - }, - "CountyCode": { - "type": "string", - "description": "CountyCode" - }, - "County": { - "type": "string", - "description": "County" - }, - "DistrictCode": { - "type": "string", - "description": "DistrictCode" - }, - "District": { - "type": "string", - "description": "District" - }, - "WardCode": { - "type": "string", - "description": "WardCode" - }, - "Ward": { - "type": "string", - "description": "Ward" - }, - "Country": { - "type": "string", - "description": "Country" - } - }, - "description": "Location" + "description": "The 2-character ISO country code related to the address.", + "title": "Country" } }, - "description": "Raw Address" + "description": "Location" + }, + "AdditionalData": { + "type": "string", + "description": "Any additional data returned", + "title": "Additional Data" } - } - }, - "description": "Results" - } + }, + "description": "RawAddress" + } + }, + "description": "Result" } } } - }, - "summary": "Get Full Address", - "operationId": "GetFullAddress", - "description": "Searches for an addresses based on input data such as building number and postcode", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "licence": { - "type": "string", - "description": "As the Royal Mail PAF database can be licensed in multiple ways, this parameter indicates under which license you are accessing the data. This must match the variant you have a license or credits for - if you are unsure which option to choose, please contact your account manager", - "title": "License", - "enum": [ - "InternalUserFull", - "InternalUserFullArea", - "SmallUserFull", - "WebClickFull", - "WebServerFull", - "Lookup", - "InternalServerFull", - "FreeTrial" - ] - }, - "postcode": { - "type": "string", - "description": "The full postcode to get addresses for. Formatting of the postcode does not matter so \"ch24ne\", \"CH2 4NE\", \"ch02 4Ne\" are all accepted.", - "title": "Postcode" - }, - "building": { - "type": "string", - "description": "An optional value to filter the returned addresses by building name, number, sub-premise (e.g. flat number) or company name. If null or \"\" are supplied, all addresses on the postcode are included in the result.", - "title": "Building", - "x-ms-visibility": "advanced" - }, - "options": { - "type": "object", - "properties": { - "FixTownCounty": { - "type": "boolean", - "description": "true to ensure the town and county are returned in the last two address lines, or false if they should appear in the first available line.", - "title": "FixTownCounty", - "x-ms-visibility": "advanced" - }, - "MaxLines": { - "type": "integer", - "description": "The number of lines to format the address over. An additional line will be included in the result for the postcode.", - "title": "MaxLines", - "format": "int32", - "default": 6 - }, - "MaxLineLength": { - "type": "integer", - "description": "The maximum number of characters that can appear in each address line.", - "title": "MaxLineLength", - "format": "int32", - "x-ms-visibility": "advanced" - }, - "NormalizeCase": { - "type": "boolean", - "description": "Converts all text in the address except the town name to proper case.", - "title": "NormalizeCase", - "x-ms-visibility": "advanced" - }, - "NormalizeTownCase": { - "type": "boolean", - "description": "Converts the town name to proper case", - "title": "NormalizeTownCase", - "x-ms-visibility": "advanced" - }, - "ExcludeCounty": { - "type": "boolean", - "description": "Excludes the county, if any, from the formatted address", - "title": "ExcludeCounty", - "x-ms-visibility": "advanced" - }, - "UseAnyAvailableCounty": { - "type": "boolean", - "description": "Uses any available county to populate the formatted address, not just the postal county", - "title": "UseAnyAvailableCounty", - "x-ms-visibility": "advanced" - }, - "UnwantedPunctuation": { - "type": "boolean", - "description": "A string containing any punctuation characters to be removed from the formatted address", - "title": "UnwantedPunctuation", - "x-ms-visibility": "advanced" - }, - "FixBuilding": { - "type": "boolean", - "description": "Ensures the building name/number is always placed in the first line", - "title": "FixBuilding", - "x-ms-visibility": "advanced" - }, - "IncludeUDPRN": { - "type": "boolean", - "description": "Set to true to have the UniqueReference field of each returned address populated with the UDPRN", - "title": "IncludeUDPRN", - "x-ms-visibility": "advanced" - }, - "IncludeLocation": { - "type": "boolean", - "description": "Set to true to have the Location field of each returned address populated with the geocoding details for the address", - "title": "IncludeLocation", - "default": true - }, - "ReturnResultCount": { - "type": "boolean", - "description": "Indicates if the ResultCount field in the result should be populated with the total number of addresses returned.", - "title": "ReturnResultCount", - "x-ms-visibility": "advanced" - }, - "IncludeNYB": { - "type": "boolean", - "description": "Set to true to include addresses from the Not Yet Built database in the results (requires additional licensing)", - "title": "IncludeNYB", - "x-ms-visibility": "advanced" - }, - "IncludeMR": { - "type": "boolean", - "description": "Set to true to include addresses from the Multiple Residency database in the results (requires additional licensing)", - "title": "IncludeMR", - "x-ms-visibility": "advanced" - }, - "Formatter": { - "type": "string", - "description": "Pick from one of the available formatters to control how the raw address is converted into a human-readable address", - "title": "Formatter", - "enum": [ - "DefaultFormatter", - "PAFStandardFormatter", - "NoOrganisationFormatter" - ], - "x-ms-visibility": "advanced" - } - }, - "description": "options" - } + } + }, + "summary": "PredictiveAddress (Retrieve)", + "description": "Retrieve with the Data8 PredictiveAddress API - Retrieve the full address", + "operationId": "RetrievePredictiveAddress", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "country": { + "type": "string", + "description": "The ISO-2 country code in which the address belongs.", + "title": "Country" }, - "required": [ - "licence", - "postcode" - ] - } + "id": { + "type": "string", + "description": "The value property from the response of previous requests from either the Search or DrillDown methods, when the container property was false, should be supplied here.", + "title": "Id" + }, + "options": { + "type": "object", + "properties": { + "MaxLineLength": { + "type": "integer", + "format": "int32", + "description": "MaxLineLength", + "title": "MaxLineLength", + "default": 100 + }, + "MaxLines": { + "type": "integer", + "format": "int32", + "description": "MaxLines", + "title": "MaxLines", + "default": 5 + }, + "FixTownCounty": { + "type": "boolean", + "description": "FixTownCounty", + "title": "FixTownCounty", + "default": false + }, + "FixPostcode": { + "type": "boolean", + "description": "FixPostcode", + "title": "FixPostcode", + "default": false + }, + "FixBuilding": { + "type": "boolean", + "description": "FixBuilding", + "title": "Fix Building", + "default": false + }, + "UnwantedPunctuation": { + "type": "string", + "description": "UnwantedPunctuation", + "title": "UnwantedPunctuation" + }, + "Formatter": { + "type": "string", + "description": "Formatter", + "title": "Formatter", + "default": "DefaultFormatter", + "enum": [ + "DefaultFormatter", + "PAFStandardFormatter", + "NoOrganisationFormatter" + ] + }, + "IncludeUDPRN": { + "type": "boolean", + "description": "IncludeUDPRN", + "title": "IncludeUDPRN", + "default": false + }, + "IncludeUPRN": { + "type": "boolean", + "description": "IncludeUPRN", + "title": "IncludeUPRN", + "default": false + }, + "PreferredLanguage": { + "type": "boolean", + "description": "PreferredLanguage", + "title": "PreferredLanguage", + "x-ms-visibility": "internal" + } + }, + "description": "options" + } + }, + "required": [ + "country", + "id" + ] } - ] - } + } + ] } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "key" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.data-8.co.uk" }, - "x-ms-connector-metadata" : [ - { - "propertyName" : "Website", - "propertyValue" : "https://www.data-8.co.uk" - }, - { - "propertyName" : "Privacy Policy", - "propertyValue" : "https://www.data-8.co.uk/privacy-policy/" - }, - { - "propertyName" : "Categories", - "propertyValue" : "AI;Website" - } - ], - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": { - "API Key": { - "type": "apiKey", - "in": "query", - "name": "key" - } + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.data-8.co.uk/privacy-policy/" }, - "security": [ - { - "API Key": [] - } - ], - "tags": [] - } \ No newline at end of file + { + "propertyName": "Categories", + "propertyValue": "AI;Website" + } + ] +} \ No newline at end of file diff --git a/certified-connectors/Data8/apiProperties.json b/certified-connectors/Data8/apiProperties.json index c0631eacb0..c9be35809f 100644 --- a/certified-connectors/Data8/apiProperties.json +++ b/certified-connectors/Data8/apiProperties.json @@ -18,6 +18,6 @@ "iconBrandColor": "#1973AE", "capabilities": [], "publisher": "Data8 Ltd", - "stackOwner": "Data8 Ltd" + "stackOwner": "Data8 Ltd" } } \ No newline at end of file diff --git a/certified-connectors/Data8/script.csx b/certified-connectors/Data8/script.csx new file mode 100644 index 0000000000..ecb02a1a65 --- /dev/null +++ b/certified-connectors/Data8/script.csx @@ -0,0 +1,38 @@ +using System.Threading.Tasks; +using System.Net.Http; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json; +using System.Collections.Generic; +using System; + +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + // Manipulate the request data as applicable before setting it back + var requestContentAsString = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var requestContentAsJson = JObject.Parse(requestContentAsString); + if (requestContentAsJson.ContainsKey("options")) + { + ((JObject)requestContentAsJson["options"])["ApplicationName"] = "Power Automate"; + } + else + { + requestContentAsJson["options"] = new JObject + { + ["ApplicationName"] = "Power Automate" + }; + } + this.Context.Request.Content = CreateJsonContent(requestContentAsJson.ToString()); + + // Make the actual API request + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // Manipulate the response data as applicable before returning it + var responseContentAsString = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + var responseContentAsJson = JObject.Parse(responseContentAsString); + response.Content = CreateJsonContent(responseContentAsJson.ToString()); + + return response; + } +} From f95f9183fede261b4251c41e742bcbd516c29740 Mon Sep 17 00:00:00 2001 From: airmeet-ci <80478449+airmeet-ci@users.noreply.github.com> Date: Wed, 3 Nov 2021 22:08:29 +0530 Subject: [PATCH 110/219] Airmeet Icon Brand Color change (#1239) * [Airmeet] connector * [Airmeet] brandcolor change * [Airmeet] validation request fix * [Airmeet] validation request fix * [Airmeet] schema definition added and descriptions corrected * [Airmeet] iconBrandColor color updated Co-authored-by: Airmeet Co-authored-by: Amit Kumar --- certified-connectors/Airmeet/apiProperties.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Airmeet/apiProperties.json b/certified-connectors/Airmeet/apiProperties.json index a44587e4dd..205904b99c 100644 --- a/certified-connectors/Airmeet/apiProperties.json +++ b/certified-connectors/Airmeet/apiProperties.json @@ -28,7 +28,7 @@ } } }, - "iconBrandColor": "#4DC3FF", + "iconBrandColor": "#0A090B", "scriptOperations": [ "CreateAirmeet", "CreateSession", From 7474cf9b5762685235f5df46536ef3afd14f8540 Mon Sep 17 00:00:00 2001 From: Rambatla Venkat Rao <68921481+RamboV@users.noreply.github.com> Date: Wed, 3 Nov 2021 22:08:37 +0530 Subject: [PATCH 111/219] Updated Stack and Publisher Information (#1240) * Added HYAS Insight in Certified Connectors Folder * Readded HYAS Insight * Added HYAS Insight to Dev Branch * Added HYAS Insight to Dev Branch * Add files via upload * Add files via upload * Delete icon.png * Delete settings.json * Delete apiDefinition.swagger.json * Delete apiProperties.json * Add files via upload * Delete apiDefinition.swagger.json * Delete apiProperties.json * Delete icon.png * Delete settings.json * Added HYAS Insight to Certified Connectors Folder * Update apiProperties.json * Delete apiDefinition.swagger.json * Delete apiProperties.json * Delete icon.png * Delete settings.json * Added new set of files * Update apiProperties.json * Delete icon.png * Delete settings.json * Create readme.md * Update readme.md * Update readme.md * IPQualityScore Custom Connector Open Source Submission for Review * Added "active_status" output parameter Added "active_status" output parameter to "Retrieve Phone Number reputation data" and added a description to the connector actions. * typo in active_status * Farsight DNSDB Open Source Submission * Updated DNSDB Host * Fixed Issues of Copyright and special characters * Fixed Unicode Characters Issue * removed Copyright * Added C2 Attribution Actions in Readme * Added C2 Attribution Actions * Update apiProperties.json * removed empty property values * removed all empty operations * Update Publisher and stackOwner * updated Publisher and stackOwner Information Co-authored-by: Rambatza Venkat Rao --- certified-connectors/HYAS Insight/apiProperties.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/certified-connectors/HYAS Insight/apiProperties.json b/certified-connectors/HYAS Insight/apiProperties.json index f43e368ed1..bb166e7cf3 100644 --- a/certified-connectors/HYAS Insight/apiProperties.json +++ b/certified-connectors/HYAS Insight/apiProperties.json @@ -89,6 +89,7 @@ } } ], - "publisher": "Shubham Mishra" + "publisher": "HYAS Infosec", + "stackOwner": "HYAS Infosec" } } From 43a0daff6244974bf8e047a60e4fd553c20196c8 Mon Sep 17 00:00:00 2001 From: Aaryan Arora Date: Thu, 4 Nov 2021 02:18:54 +0530 Subject: [PATCH 112/219] ORB Intelligence (Independent Publisher) (Student) (#1136) * Added ORB Intelligence Connector * Changed background color * Update apiDefinition.swagger.json * Corrected the indentation and Connector version * Updated Indentation * Indentation update * updated Stack owner * Shortened description for look-alike method * Updated indentation to 2 spaces * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Changed Indentation to 2 spaces * Changed indentation to 2 spaces for Swagger file * update_indentation * update_intendation1 * Changed title to ORB Intelligence Co-authored-by: Ankita_Singh <85924533+AnkitaSinghIE@users.noreply.github.com> --- .../ORB Intelligence/README.md | 43 + .../apiDefinition.swagger.json | 4732 +++++++++++++++++ .../ORB Intelligence/apiProperties.json | 25 + 3 files changed, 4800 insertions(+) create mode 100644 independent-publisher-connectors/ORB Intelligence/README.md create mode 100644 independent-publisher-connectors/ORB Intelligence/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/ORB Intelligence/apiProperties.json diff --git a/independent-publisher-connectors/ORB Intelligence/README.md b/independent-publisher-connectors/ORB Intelligence/README.md new file mode 100644 index 0000000000..1f9ca694a8 --- /dev/null +++ b/independent-publisher-connectors/ORB Intelligence/README.md @@ -0,0 +1,43 @@ +# ORB Intelligence +Orb Intelligence provides clients with a framework of API calls to use the Orb database for their various use cases. The framework comprises five rings, Match, Fetch, Search, Lookalike, and Corporate Tree. The clients can access the various company details from the Orb Database using these commands. + +## Publisher +### Aaryan Arora | Ankita Singh + +## Prerequisites +You need to get the API key from [ORB API Schema](https://api.orb-intelligence.com/docs/#/) or [ORB Intelligence](http://orb-intelligence.com). +The API Key is available publicly. + +## Supported Operations +The connector supports the following operations: +* `Match`: The Match call is used to match a customer record to an Orb profile. +* `Fetch`: The Fetch call retrieves the complete company profile from the Orb database based on the Orb Number. +* `Search`: The Search call is used to retrieve a list of companies from the Orb database for given search criteria. +* `Lookalike`: The Lookalike call identifies a list of companies from the Orb database with similar profiles to a target company +* `Corporate Tree`: Corporate Tree call is used to retrieve the information about a parent and all subsidiaries of a company. +### The Match API +>GET /3/match/ +- The Match API call performs a candidate retrieval process, the process by which Orb records are identified as potential matches to the query. The candidate retrieval process can be thought of as throwing a large net out over all of the Orb reference database and pulling it back in to return all the records that could be considered a match based on the input fields provided. +### The Fetch API +>GET /3/fetch/{orb_number} +- The input to the Fetch call is an Orb Number. The Orb Number for a company record is obtained from choosing a candidate from the Match call or a previously identified matched record. +- The Fetch API call will return all the standard fields in the Orb database for a single company record corresponding to the Orb Number. + +### Search API +>GET /3/search/ +- The Search API lets users build out a list of companies for use cases, such as building out a list of companies in a specific territory or segment. +- In the Search call, if a user specifies that they want to retrieve the complete Orb profiles, the list will include all the Orb attributes associated with the companies in the list. By default, they will receive a summary profile of the companies and select the companies they wish to retrieve the complete profile using the Orb Number and the Fetch call. +### Lookalike API +>GET /3/lookalike/ +- Lookalike API Call enables users to expand their total addressable market or evaluate leads by identifying companies that look like existing customers. +- If a user specifies that they want to retrieve the full Orb profiles, then the list will include all the Orb attributes associated with the companies in the list. By default, they will receive a summary profile of the companies, and can select the companies they wish to retrieve the full profile for using the Orb Number and the Fetch call. +### Corporate Tree +>GET /3/corporate_tree/{orb_num}/ +- The Corporate Tree API call allows a user to retrieve the full corporate tree of subsidiaries for a given company, starting from its ultimate parent company. The input to the Corporate Tree call is the Orb Number of the target company (mandatory field). +*** + +## API Documentation +Visit [ORB Intelligence APIs reference](https://api.orb-intelligence.com/docs/#/) page for further details. +*** +## Known Issues and Limitations +Not all operations provided by ORB Intelligence are part of the first IP connector submission. We will keep adding/updating/supporting this connector based on your feedback/requests :) diff --git a/independent-publisher-connectors/ORB Intelligence/apiDefinition.swagger.json b/independent-publisher-connectors/ORB Intelligence/apiDefinition.swagger.json new file mode 100644 index 0000000000..7920f05c47 --- /dev/null +++ b/independent-publisher-connectors/ORB Intelligence/apiDefinition.swagger.json @@ -0,0 +1,4732 @@ +{ + "swagger":"2.0", + "info":{ + "title":"ORB Intelligence", + "version":"1.0", + "description":"Orb provides with a framework of API calls to use the Orb database for various use cases. The framework comprises five calls, Match, Fetch, Search, Lookalike and Corporate Tree.", + "contact":{ + "name":"Aaryan Arora, Ankita Singh", + "email":"aaryan2134@gmail.com" + } + }, + "host":"api.orb-intelligence.com", + "basePath":"/", + "schemes":[ + "https" + ], + "consumes":[ + + ], + "produces":[ + + ], + "paths":{ + "/3/match/":{ + "get":{ + "parameters":[ + { + "in":"query", + "name":"api_key", + "required":false, + "type":"string", + "description":"API Access Key.", + "x-ms-summary":"API Key" + }, + { + "in":"query", + "name":"name", + "required":false, + "type":"string", + "maxLength":255, + "description":"Company's name.", + "x-ms-summary":"Company's name" + }, + { + "in":"query", + "name":"address1", + "required":false, + "type":"string", + "description":"First line of the company's address.", + "x-ms-summary":"First line of the company's address." + }, + { + "in":"query", + "name":"city", + "required":false, + "type":"string", + "description":"City", + "x-ms-summary":"City" + }, + { + "in":"query", + "name":"state", + "required":false, + "type":"string", + "description":"State.", + "x-ms-summary":"State" + }, + { + "in":"query", + "name":"zip", + "required":false, + "type":"string", + "description":"Zip code", + "x-ms-summary":"Zip Code" + }, + { + "in":"query", + "name":"country", + "required":false, + "type":"string", + "description":"Country", + "x-ms-summary":"Country" + }, + { + "in":"query", + "name":"website", + "required":false, + "type":"string", + "description":"Company's website.", + "x-ms-summary":"Company's website" + }, + { + "in":"query", + "name":"email", + "required":false, + "type":"string", + "description":"Any email based on a company's domain.", + "x-ms-summary":"Any email based on a company's domain." + }, + { + "in":"query", + "name":"phone", + "required":false, + "type":"string", + "description":"Company's phone number.", + "x-ms-summary":"Company's phone number." + }, + { + "in":"query", + "name":"ein", + "required":false, + "type":"string", + "description":"Employer Tax ID (EIN)", + "x-ms-summary":"U.S. Federal Enployeer Tax ID (EIN) of the company, for example, \"204971292\"." + }, + { + "in":"query", + "name":"npi", + "required":false, + "type":"string", + "description":"National Provider Identifier, a unique 10-digit identification number issued to health care providers in the United States.", + "x-ms-summary":"National Provider Identifier (NPI)" + }, + { + "in":"query", + "name":"lei", + "required":false, + "type":"string", + "description":"Legal Entity Identifier, 20-character, alpha-numeric code based on the ISO 17442.", + "x-ms-summary":"Legal Entity Identifier (LEI)" + }, + { + "in":"query", + "name":"request_id", + "required":false, + "type":"string", + "description":"Optional customer's request ID", + "x-ms-summary":"Optional customer's request ID" + }, + { + "in":"query", + "name":"orb_num", + "required":false, + "type":"string", + "description":"Orb Number to match input data with particular company", + "x-ms-summary":"Orb Number to match input data with particular company" + } + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "request_fields":{ + "type":"object", + "description":"Input data to match", + "x-ms-summary":"Input data to match" + }, + "results_count":{ + "type":"integer", + "format":"int32", + "example":2 + }, + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "result_number":{ + "type":"integer", + "format":"int32" + }, + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the candidate profile.", + "x-ms-summary":"Orb Number of the candidate profile.", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers of the candidate profile. Hidden by default, use `include` option to show.", + "x-ms-summary":"Secondary Orb Numbers of the candidate profile. Hidden by default, use `include` option to show.", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company's name.", + "example":"Orb Intelligence, Inc." + }, + "entity_type":{ + "type":"string", + "enum":[ + "company", + "branch" + ], + "description":"\"company\" or \"branch\".", + "example":"company" + }, + "company_status":{ + "type":"string", + "enum":[ + "active", + "inactive" + ], + "description":"\"active\" or \"inactive\".", + "example":"active" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"ORB" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"ORB" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "is_standalone_company":{ + "type":"boolean", + "description":"Company is considered as standalone if it does not have parent and subsidiaries.", + "example":true + }, + "address1":{ + "type":"string", + "x-nullable":true, + "description":"First line of the company's address.", + "example":"1900 CAMDEN AVE" + }, + "city":{ + "type":"string", + "x-nullable":true, + "description":"City.", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "x-nullable":true, + "description":"State.", + "example":"CA" + }, + "zip":{ + "type":"string", + "x-nullable":true, + "description":"Zip code.", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country.", + "example":"United States" + }, + "iso_country_code":{ + "type":"string", + "description":"ISO country code.", + "example":"US" + }, + "fetch_url":{ + "type":"string", + "description":"'Fetch' API call to retrieve the full company profile for this Orb Number.", + "example":"https://api.orb-intelligence.com/3/fetch/23248971/" + }, + "full_profile":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company name", + "example":"Orb Intelligence" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"null" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"null" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "names":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Company's other names - tradestyles, DBA names, former names, abbreviations", + "example":[ + "Orb Intelligence", + "Orb Intelligence, Inc." + ] + }, + "website":{ + "type":"string", + "description":"Company's website", + "example":"https://orb-intelligence.com" + }, + "webdomain":{ + "type":"string", + "description":"Company's web domain", + "example":"orb-intelligence.com" + }, + "webdomains":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"All company's web domains", + "example":[ + "orb-intelligence.com", + "orbintelligence.com" + ] + }, + "webdomains_info":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_web_rank":{ + "type":"integer", + "format":"int32", + "example":200000, + "description":"is a normalized Alexa rank. The normalization handles two cases: 1. Alexa service does not have this web domain in their database, so there is no Alexa rank for this web domain, then we set it to the maximum - 39999999; 2. For third and higher -level domains, like for example, dolls.stores.shop.ebay.com Alexa service returns alexa rank for ebay.com, which is not good in our use case, as it is a small online shop, not Ebay website. We set this to 39999999." + }, + "domain_has_website":{ + "type":"integer", + "format":"int32", + "example":1 + }, + "domain_is_email_hosting":{ + "type":"integer", + "format":"int32", + "example":0, + "description":"1 if this domain is a popular email service provider, such as, for example, gmail.com, yahoo.com, outlook.com and others. 1 - the domain is an email service provider; 0 - we are not aware of any popular email service provider with this domain. This flag is useful when the domain you want to get company information for was extracted from a person's contact email. So, for example, when it is 'yahoo.com', it does not mean that the person works at Yahoo!" + }, + "webdomain":{ + "type":"string", + "example":"orb-intelligence.com" + }, + "domain_has_email":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"All company's web domains with additional info: domain_has_email; domain_has_website; domain_is_email_hosting - such as gmail.com, hotmail.com; orb_web_rank - normalized Alexa rank", + "example":[ + { + "webdomain":"orb-intelligence.com", + "domain_has_email":1, + "domain_has_website":1, + "domain_is_email_hosting":0, + "orb_web_rank":2000000 + } + ] + }, + "address":{ + "type":"object", + "properties":{ + "address1":{ + "type":"string", + "description":"Address Line 1", + "example":"1900 CAMDEN AVE" + }, + "address2":{ + "type":"string", + "description":"Address Line 2", + "example":"Unit 1" + }, + "city":{ + "type":"string", + "description":"Address Line 2", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "description":"Address Line 2", + "example":"CA" + }, + "zip":{ + "type":"string", + "description":"Zip Code", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country", + "example":"United States" + } + } + }, + "industry":{ + "type":"string", + "description":"Orb proprietary industry class", + "example":"Computer Software" + }, + "naics_code":{ + "type":"string", + "description":"Primary NAICS code according to 2012 Census.gov standard", + "example":"511210" + }, + "naics_description":{ + "type":"string", + "description":"Primary NAICS code description", + "example":"Software Publishers" + }, + "naics_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary NAICS codes", + "example":[ + { + "code":"5112", + "description":"Software Publishers" + }, + { + "code":"511210", + "description":"Software Publishers" + }, + { + "code":"54151", + "description":"Computer Systems Design and Related Services" + } + ] + }, + "sic_code":{ + "type":"string", + "description":"Primary SIC code according to 1987 standard", + "example":"7372" + }, + "sic_description":{ + "type":"string", + "description":"Primary SIC description", + "example":"Prepackaged software" + }, + "sic_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary SIC codes", + "example":[ + { + "code":"737", + "description":"Computer Programming, Data Processing, And Other Computerrelated" + }, + { + "code":"7372", + "description":"Prepackaged software" + } + ] + }, + "categories":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"Category Name", + "example":"software publisher" + }, + "weight":{ + "type":"integer", + "format":"int32", + "description":"Category Weight", + "example":33.33 + } + } + }, + "description":"Array of Orb proprietary business categories with weights", + "example":[ + { + "name":"software publisher", + "weight":33.33 + }, + { + "name":"business information", + "weight":53.33 + }, + { + "name":"application programming interface", + "weight":23.33 + }, + { + "name":"data processing", + "weight":10 + }, + { + "name":"data collection", + "weight":26.67 + }, + { + "name":"master data management", + "weight":40 + }, + { + "name":"customer relationship management", + "weight":33.33 + }, + { + "name":"sales", + "weight":3.33 + }, + { + "name":"marketing automation", + "weight":53.33 + }, + { + "name":"marketing", + "weight":13.33 + }, + { + "name":"b2b sales", + "weight":36.67 + }, + { + "name":"b2b marketing", + "weight":90 + }, + { + "name":"internet search", + "weight":33.33 + }, + { + "name":"big data", + "weight":26.67 + }, + { + "name":"prepackaged software", + "weight":16.67 + } + ] + }, + "employees_range":{ + "type":"string", + "description":"Number of employees range", + "example":"10 - 50" + }, + "employees":{ + "type":"integer", + "format":"int32", + "description":"Number of employees", + "example":14 + }, + "revenue_range":{ + "type":"string", + "description":"Revenue range", + "example":"1M - 10M" + }, + "revenue":{ + "type":"integer", + "format":"int32", + "description":"Revenue", + "example":"8283540" + }, + "year_founded":{ + "type":"integer", + "format":"int32", + "description":"Year company was founded", + "example":2014 + }, + "description":{ + "type":"string", + "description":"Textual description of the company", + "example":"Company information database for B2B marketing and sales." + }, + "linkedin_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's LinkedIn page", + "example":{ + "url":"https://www.linkedin.com/company/orb-intelligence" + } + }, + "facebook_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Facebook page", + "example":"null" + }, + "twitter_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Twitter account", + "example":{ + "url":"https://twitter.com/OrbIntelligence" + } + }, + "googleplus_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Google plus page", + "example":"null" + }, + "youtube_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Youtube page", + "example":"null" + }, + "technologies":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + } + } + }, + "description":"List of frontend technologies installed on the company's website", + "example":[ + { + "name":"Gravatar" + }, + { + "name":"WordPress" + } + ] + }, + "rankings":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com", + "example":"null" + }, + "ranking_positions":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ranking":{ + "type":"string", + "example":"Forbes Global 500" + }, + "position":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com (with positions)" + }, + "eins":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"U.S. Federal Employer Identification Number" + }, + "npis":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"National Provider Identifier (NPI), a unique 10-digit identification number issued to health care providers in the United States." + }, + "favicon":{ + "type":"string", + "description":"URL to the company's favicon", + "example":"https://orb-intelligence.com/wp-content/themes/orb/assets/img/favicon.png" + }, + "total_funding":{ + "type":"integer", + "format":"int32", + "description":"Total funding amount raised by the company", + "example":"null" + }, + "last_funding_round_amount":{ + "type":"integer", + "format":"int32", + "description":"Last funding round amount", + "example":"null" + }, + "last_funding_round_year":{ + "type":"integer", + "format":"int32", + "description":"Last funding round year", + "example":"null" + }, + "phone":{ + "type":"string", + "description":"General phone number of the company", + "example":"(650) 382-2672" + }, + "fax":{ + "type":"string", + "description":"Company's fax number", + "example":"null" + }, + "email":{ + "type":"string", + "description":"General email of the company", + "example":"info@orb-intelligence.com" + }, + "importance_score":{ + "type":"string", + "description":"Importance score: A, B or C. See documentation for more details", + "example":"A" + }, + "tickers":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "exchange":{ + "type":"string", + "example":"NSQ" + }, + "ticker":{ + "type":"string", + "example":"GOOG" + } + } + }, + "description":"Stock exchange tickers if the company is publicly listed.Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges." + }, + "market_cap":{ + "type":"integer", + "format":"int32", + "example":1000000 + }, + "cik":{ + "type":"string", + "example":"812067" + }, + "cusip":{ + "type":"string", + "example":"780283102" + }, + "fiscal_year_end":{ + "type":"string", + "example":"1231" + }, + "cidrs_count":{ + "type":"integer", + "format":"int32", + "example":18 + }, + "liveramp_idl_count":{ + "type":"integer", + "format":"int32", + "example":7 + }, + "liveramp_device_count":{ + "type":"integer", + "format":"int32", + "example":432 + }, + "latitude":{ + "type":"string" + }, + "longitude":{ + "type":"string" + } + } + }, + "confidence_score":{ + "type":"number", + "format":"float", + "description":"Confidence Score of this match.", + "example":100 + }, + "match_mask":{ + "type":"object", + "properties":{ + "main_name":{ + "type":"string", + "description":"match | similar: x% | relaxed match | no match | missing input | no data", + "example":"similar: 97%" + }, + "corp_elem":{ + "type":"string", + "description":"match | no match", + "example":"match" + }, + "other_names":{ + "type":"string", + "description":"match | similar: x% | relaxed match | no match | missing input | no data", + "example":"similar: 97%" + }, + "webdomain":{ + "type":"string", + "description":"match | no match | redirect match | email match | missing input | no data", + "example":"email match" + }, + "address1":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"missing input" + }, + "city":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"missing input" + }, + "state":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"match" + }, + "zip":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"missing input" + }, + "country":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"match" + }, + "phone":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"missing input" + }, + "ein":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"no data" + }, + "npi":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"no data" + }, + "lei":{ + "type":"string", + "description":"match | no match | missing input | no data", + "example":"no data" + } + } + }, + "matched_fields":{ + "type":"object", + "description":"Orb company fields which matched input data.", + "example":{ + "other_name":"ORB" + } + } + }, + "required":[ + "country", + "iso_country_code", + "name", + "orb_num" + ] + }, + "example":[ + { + "result_number":1, + "orb_num":23248971, + "name":"Orb Intelligence", + "entity_type":"company", + "company_status":"active", + "parent_orb_num":"null", + "parent_name":"null", + "ultimate_parent_orb_num":"null", + "ultimate_parent_name":"null", + "subsidiaries_count":0, + "branches_count":1, + "is_standalone_company":true, + "address1":"1900 CAMDEN AVE", + "city":"San Jose", + "state":"CA", + "zip":"95124", + "country":"United States", + "iso_country_code":"US", + "fetch_url":"http://api.orb-intelligence.com/3/fetch/23248971/?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a", + "confidence_score":66, + "match_mask":{ + "ein":"missing input", + "main_name":"match", + "corp_elem":"missing input", + "other_names":"match", + "address1":"missing input", + "city":"missing input", + "state":"missing input", + "zip":"missing input", + "country":"match", + "webdomain":"missing input", + "phone":"missing input" + }, + "matched_fields":{ + "name":"Orb Intelligence", + "country":"United States" + } + }, + { + "result_number":3, + "orb_num":5061292, + "name":"ORB LLC", + "entity_type":"company", + "company_status":"active", + "parent_orb_num":"null", + "parent_name":"null", + "ultimate_parent_orb_num":"null", + "ultimate_parent_name":"null", + "subsidiaries_count":0, + "branches_count":0, + "is_standalone_company":true, + "address1":"288 BERRY ST", + "city":"BROOKLYN", + "state":"NY", + "zip":"11211", + "country":"United States", + "iso_country_code":"US", + "fetch_url":"http://api.orb-intelligence.com/3/fetch/5061292/?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a", + "confidence_score":52, + "match_mask":{ + "ein":"missing input", + "main_name":"similar: 82%", + "corp_elem":"missing input", + "other_names":"similar: 82%", + "address1":"missing input", + "city":"missing input", + "state":"missing input", + "zip":"missing input", + "country":"match", + "webdomain":"missing input", + "phone":"missing input" + }, + "matched_fields":{ + "name":"ORB LLC", + "country":"United States" + } + } + ] + } + } + }, + "description":"List of matched companies." + } + }, + "tags":[ + "Match and Fetch API" + ], + "summary":"The Match API call performs a candidate retrieval process", + "description":"The Match API call performs a candidate retrieval process; the process by which Orb records are identified as potential matches to the query. The input fields must either include the name and country, or the website/email, or the EIN of the company record. All other fields are optional. Users can review the candidates to choose their preferred match based on the candidate with the highest Confidence Score, algorithmically, based on the match mask (for example, take those that match by website, even though the name didn't match) or manually.", + "produces":[ + "application/json" + ], + "operationId":"Match" + } + }, + "/3/fetch/{orb_num}/":{ + "get":{ + "parameters":[ + { + "in":"query", + "name":"api_key", + "required":false, + "type":"string", + "description":"API Access Key.", + "x-ms-summary":"API Access Key." + }, + { + "in":"path", + "name":"orb_num", + "required":true, + "type":"string", + "x-ms-url-encoding":"single", + "description":"Orb Number", + "x-ms-summary":"Orb Number" + } + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number", + "x-ms-summary":"Orb Number", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company name", + "example":"Orb Intelligence" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"null" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"null" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "names":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Company's other names - tradestyles, DBA names, former names, abbreviations", + "example":[ + "Orb Intelligence", + "Orb Intelligence, Inc." + ] + }, + "website":{ + "type":"string", + "description":"Company's website", + "example":"https://orb-intelligence.com" + }, + "webdomain":{ + "type":"string", + "description":"Company's web domain", + "example":"orb-intelligence.com" + }, + "webdomains":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"All company's web domains", + "example":[ + "orb-intelligence.com", + "orbintelligence.com" + ] + }, + "webdomains_info":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_web_rank":{ + "type":"integer", + "format":"int32", + "example":200000, + "description":"is a normalized Alexa rank. The normalization handles two cases: 1. Alexa service does not have this web domain in their database, so there is no Alexa rank for this web domain, then we set it to the maximum - 39999999; 2. For third and higher -level domains, like for example, dolls.stores.shop.ebay.com Alexa service returns alexa rank for ebay.com, which is not good in our use case, as it is a small online shop, not Ebay website. We set this to 39999999." + }, + "domain_has_website":{ + "type":"integer", + "format":"int32", + "example":1 + }, + "domain_is_email_hosting":{ + "type":"integer", + "format":"int32", + "example":0, + "description":"1 if this domain is a popular email service provider, such as, for example, gmail.com, yahoo.com, outlook.com and others. 1 - the domain is an email service provider; 0 - we are not aware of any popular email service provider with this domain. This flag is useful when the domain you want to get company information for was extracted from a person's contact email. So, for example, when it is 'yahoo.com', it does not mean that the person works at Yahoo!" + }, + "webdomain":{ + "type":"string", + "example":"orb-intelligence.com" + }, + "domain_has_email":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"All company's web domains with additional info: domain_has_email; domain_has_website; domain_is_email_hosting - such as gmail.com, hotmail.com; orb_web_rank - normalized Alexa rank", + "example":[ + { + "webdomain":"orb-intelligence.com", + "domain_has_email":1, + "domain_has_website":1, + "domain_is_email_hosting":0, + "orb_web_rank":2000000 + } + ] + }, + "address":{ + "type":"object", + "properties":{ + "address1":{ + "type":"string", + "description":"Address Line 1", + "example":"1900 CAMDEN AVE" + }, + "address2":{ + "type":"string", + "description":"Address Line 2", + "example":"Unit 1" + }, + "city":{ + "type":"string", + "description":"Address Line 2", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "description":"Address Line 2", + "example":"CA" + }, + "zip":{ + "type":"string", + "description":"Zip Code", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country", + "example":"United States" + } + } + }, + "industry":{ + "type":"string", + "description":"Orb proprietary industry class", + "example":"Computer Software" + }, + "naics_code":{ + "type":"string", + "description":"Primary NAICS code according to 2012 Census.gov standard", + "example":"511210" + }, + "naics_description":{ + "type":"string", + "description":"Primary NAICS code description", + "example":"Software Publishers" + }, + "naics_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary NAICS codes", + "example":[ + { + "code":"5112", + "description":"Software Publishers" + }, + { + "code":"511210", + "description":"Software Publishers" + }, + { + "code":"54151", + "description":"Computer Systems Design and Related Services" + } + ] + }, + "sic_code":{ + "type":"string", + "description":"Primary SIC code according to 1987 standard", + "example":"7372" + }, + "sic_description":{ + "type":"string", + "description":"Primary SIC description", + "example":"Prepackaged software" + }, + "sic_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary SIC codes", + "example":[ + { + "code":"737", + "description":"Computer Programming, Data Processing, And Other Computerrelated" + }, + { + "code":"7372", + "description":"Prepackaged software" + } + ] + }, + "categories":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"Category Name", + "example":"software publisher" + }, + "weight":{ + "type":"number", + "format":"float", + "description":"Category Weight", + "example":33.33 + } + } + }, + "description":"Array of Orb proprietary business categories with weights", + "example":[ + { + "name":"software publisher", + "weight":33.33 + }, + { + "name":"business information", + "weight":53.33 + }, + { + "name":"application programming interface", + "weight":23.33 + }, + { + "name":"data processing", + "weight":10 + }, + { + "name":"data collection", + "weight":26.67 + }, + { + "name":"master data management", + "weight":40 + }, + { + "name":"customer relationship management", + "weight":33.33 + }, + { + "name":"sales", + "weight":3.33 + }, + { + "name":"marketing automation", + "weight":53.33 + }, + { + "name":"marketing", + "weight":13.33 + }, + { + "name":"b2b sales", + "weight":36.67 + }, + { + "name":"b2b marketing", + "weight":90 + }, + { + "name":"internet search", + "weight":33.33 + }, + { + "name":"big data", + "weight":26.67 + }, + { + "name":"prepackaged software", + "weight":16.67 + } + ] + }, + "employees_range":{ + "type":"string", + "description":"Number of employees range", + "example":"10 - 50" + }, + "employees":{ + "type":"integer", + "format":"int32", + "description":"Number of employees", + "example":14 + }, + "revenue_range":{ + "type":"string", + "description":"Revenue range", + "example":"1M - 10M" + }, + "revenue":{ + "type":"integer", + "format":"int32", + "description":"Revenue", + "example":"8283540" + }, + "year_founded":{ + "type":"integer", + "format":"int32", + "description":"Year company was founded", + "example":2014 + }, + "description":{ + "type":"string", + "description":"Textual description of the company", + "example":"Company information database for B2B marketing and sales." + }, + "linkedin_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's LinkedIn page", + "example":{ + "url":"https://www.linkedin.com/company/orb-intelligence" + } + }, + "facebook_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Facebook page", + "example":"null" + }, + "twitter_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Twitter account", + "example":{ + "url":"https://twitter.com/OrbIntelligence" + } + }, + "googleplus_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Google plus page", + "example":"null" + }, + "youtube_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Youtube page", + "example":"null" + }, + "technologies":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + } + } + }, + "description":"List of frontend technologies installed on the company's website", + "example":[ + { + "name":"Gravatar" + }, + { + "name":"WordPress" + } + ] + }, + "rankings":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com", + "example":"null" + }, + "ranking_positions":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ranking":{ + "type":"string", + "example":"Forbes Global 500" + }, + "position":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com (with positions)" + }, + "eins":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"U.S. Federal Employer Identification Number" + }, + "npis":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"National Provider Identifier (NPI), a unique 10-digit identification number issued to health care providers in the United States." + }, + "favicon":{ + "type":"string", + "description":"URL to the company's favicon", + "example":"https://orb-intelligence.com/wp-content/themes/orb/assets/img/favicon.png" + }, + "total_funding":{ + "type":"integer", + "format":"int32", + "description":"Total funding amount raised by the company", + "example":"null" + }, + "last_funding_round_amount":{ + "type":"integer", + "format":"int32", + "description":"Last funding round amount", + "example":"null" + }, + "last_funding_round_year":{ + "type":"integer", + "format":"int32", + "description":"Last funding round year", + "example":"null" + }, + "phone":{ + "type":"string", + "description":"General phone number of the company", + "example":"(650) 382-2672" + }, + "fax":{ + "type":"string", + "description":"Company's fax number", + "example":"null" + }, + "email":{ + "type":"string", + "description":"General email of the company", + "example":"info@orb-intelligence.com" + }, + "importance_score":{ + "type":"string", + "description":"Importance score: A, B or C. See documentation for more details", + "example":"A" + }, + "tickers":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "exchange":{ + "type":"string", + "example":"NSQ" + }, + "ticker":{ + "type":"string", + "example":"GOOG" + } + } + }, + "description":"Stock exchange tickers if the company is publicly listed.Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges." + }, + "market_cap":{ + "type":"integer", + "format":"int32", + "example":1000000 + }, + "cik":{ + "type":"string", + "example":"812067" + }, + "cusip":{ + "type":"string", + "example":"780283102" + }, + "fiscal_year_end":{ + "type":"string", + "example":"1231" + }, + "cidrs_count":{ + "type":"integer", + "format":"int32", + "example":18 + }, + "liveramp_idl_count":{ + "type":"integer", + "format":"int32", + "example":7 + }, + "liveramp_device_count":{ + "type":"integer", + "format":"int32", + "example":432 + }, + "latitude":{ + "type":"string" + }, + "longitude":{ + "type":"string" + } + } + }, + "description":"Full company profile." + } + }, + "tags":[ + "Match and Fetch API" + ], + "summary":"Obtain a full company profile from the Orb database", + "description":"The Fetch API call allows a user to obtain a full company profile from the Orb database, based on an Orb Number. The Orb Number for a company record can be obtained from a choosing a candidate from the Match call or from a previously identified matched record. The Fetch API call will return back all the standard fields in the Orb database for a single company record that corresponds to the Orb Number.", + "produces":[ + "application/json" + ], + "operationId":"Fetch", + "x-ms-visibility":"important" + } + }, + "/3/search/":{ + "get":{ + "parameters":[ + { + "in":"query", + "name":"api_key", + "required":false, + "type":"string", + "description":"API Access Key.", + "x-ms-summary":"API Access Key." + }, + { + "in":"query", + "name":"limit", + "required":false, + "type":"integer", + "format":"int32", + "default":10, + "description":"Number of results in response (in a page).", + "x-ms-summary":"Number of results in response (in a page)." + }, + { + "in":"query", + "name":"offset", + "required":false, + "type":"integer", + "format":"int32", + "default":0, + "description":"Number of results to skip (to get a particular page).", + "x-ms-summary":"Number of results to skip (to get a particular page)." + }, + { + "in":"query", + "name":"entity_type", + "required":false, + "type":"string", + "enum":[ + "company", + "branch" + ], + "description":"Entity Type(company or branch)", + "x-ms-summary":"Entity Type(company or branch)" + }, + { + "in":"query", + "name":"parent_orb_num", + "required":false, + "type":"string", + "description":"Parent Orb Number", + "x-ms-summary":"Parent Orb Number" + }, + { + "in":"query", + "name":"ultimate_parent_orb_num", + "required":false, + "type":"integer", + "format":"int32", + "description":"Ultimate Parent Orb Number", + "x-ms-summary":"Ultimate Parent Orb Number" + }, + { + "in":"query", + "name":"industry", + "required":false, + "type":"string", + "description":"Company's industry. Use GET /dictionaries/industries to get a list of all industry names", + "x-ms-summary":"Company's industry." + }, + { + "in":"query", + "name":"address1", + "required":false, + "type":"string", + "description":"Filter by address line 1", + "x-ms-summary":"Filter by address line 1" + }, + { + "in":"query", + "name":"city", + "required":false, + "type":"string", + "description":"Filter by city", + "x-ms-summary":"Filter by city" + }, + { + "in":"query", + "name":"state", + "required":false, + "type":"string", + "description":"Filter by state", + "x-ms-summary":"Filter by state" + }, + { + "in":"query", + "name":"zip", + "required":false, + "type":"string", + "description":"Filter by zip code", + "x-ms-summary":"Filter by zip code" + }, + { + "in":"query", + "name":"country", + "required":false, + "type":"string", + "description":"Filter by country", + "x-ms-summary":"Filter by country" + }, + { + "in":"query", + "name":"employees", + "required":false, + "type":"array", + "items":{ + "type":"string", + "enum":[ + "any", + "1-10", + "10-50", + "50-200", + "200-500", + "500-1k", + "1k-5k", + "5k-10k", + "10k" + ] + }, + "description":"Number of employees", + "x-ms-summary":"Number of employees" + }, + { + "in":"query", + "name":"revenue", + "required":false, + "type":"array", + "items":{ + "type":"string", + "enum":[ + "any", + "0-1m", + "1m-10m", + "10m-50m", + "50m-100m", + "100m-200m", + "200m-1b", + "1b" + ] + }, + "description":"Revenue", + "x-ms-summary":"Revenue" + }, + { + "in":"query", + "name":"techs", + "required":false, + "type":"string", + "description":"Filter by techonologies installed. Use GET /dictionaries/technologies to get a list of all technologies names that we track", + "x-ms-summary":"Filter by techonologies installed." + }, + { + "in":"query", + "name":"tech_categories", + "required":false, + "type":"string", + "description":"Filter by techonologies classes. Use GET /dictionaries/technologies/categories to get a list of all technologies classes", + "x-ms-summary":"Filter by techonologies classes" + }, + { + "in":"query", + "name":"naics_codes", + "required":false, + "type":"string", + "description":"Filter by NAICS code", + "x-ms-summary":"Filter by NAICS code" + }, + { + "in":"query", + "name":"sic_codes", + "required":false, + "type":"string", + "description":"Filter by SIC code", + "x-ms-summary":"Filter by SIC code" + }, + { + "in":"query", + "name":"rankings", + "required":false, + "type":"string", + "description":"Get companies from companies ranked lists, such as Forbes, Fortune or Inc.5000. Get the full list of rankings using GET /dictionaries/rankings", + "x-ms-summary":"Get companies from companies ranked lists" + }, + { + "in":"query", + "name":"importance_score", + "required":false, + "type":"string", + "description":"Filter companies by importances classes A, B or C. See description of our importance classes in internal documentation", + "x-ms-summary":"Filter companies by importances classes A, B or C" + }, + { + "in":"query", + "name":"cik", + "required":false, + "type":"string", + "description":"Filter by CIK (The Central Index Key from SEC).", + "x-ms-summary":"Filter by CIK (The Central Index Key from SEC)." + }, + { + "in":"query", + "name":"cusip", + "required":false, + "type":"string", + "description":"Filter by CUSIP (https://en.wikipedia.org/wiki/CUSIP).", + "x-ms-summary":"Filter by CUSIP (https://en.wikipedia.org/wiki/CUSIP)." + }, + { + "in":"query", + "name":"ticker", + "required":false, + "type":"string", + "description":"Filter by stock exchange ticker.", + "x-ms-summary":"Filter by stock exchange ticker." + }, + { + "in":"query", + "name":"exchange", + "required":false, + "type":"string", + "description":"Filter by stock exchange. Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges.", + "x-ms-summary":"Filter by stock exchange" + }, + { + "in":"query", + "name":"show_full_profile", + "required":false, + "type":"boolean", + "description":"Embed full company profile", + "x-ms-summary":"Embed full company profile" + }, + { + "in":"query", + "name":"include", + "required":false, + "type":"string", + "description":"Extra output fields to include in response, for example optional `orb_nums` field.", + "x-ms-summary":"Extra output fields to include in response" + }, + { + "in":"query", + "name":"orb_num", + "required":false, + "type":"integer", + "format":"int32", + "description":"Orb Number of the company.", + "x-ms-summary":"Orb Number of the company." + }, + { + "in":"query", + "name":"categories", + "required":false, + "type":"array", + "items":{ + "type":"string" + }, + "description":"Categories", + "x-ms-summary":"Categories" + } + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "request_fields":{ + "type":"object", + "description":"Input data to search" + }, + "facets":{ + "type":"object" + }, + "results_count":{ + "type":"integer", + "format":"int32", + "example":2 + }, + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the candidate profile.", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers of the candidate profile. Hidden by default, use `include` option to show.", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company's name.", + "example":"Orb Intelligence, Inc." + }, + "entity_type":{ + "type":"string", + "enum":[ + "company", + "branch" + ], + "description":"\"company\" or \"branch\".", + "example":"company" + }, + "company_status":{ + "type":"string", + "enum":[ + "active", + "inactive" + ], + "description":"\"active\" or \"inactive\".", + "example":"active" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"ORB" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"ORB" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "is_standalone_company":{ + "type":"boolean", + "description":"Company is considered as standalone if it does not have parent and subsidiaries.", + "example":true + }, + "address1":{ + "type":"string", + "x-nullable":true, + "description":"First line of the company's address.", + "example":"1900 CAMDEN AVE" + }, + "city":{ + "type":"string", + "x-nullable":true, + "description":"City.", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "x-nullable":true, + "description":"State.", + "example":"CA" + }, + "zip":{ + "type":"string", + "x-nullable":true, + "description":"Zip code.", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country.", + "example":"United States" + }, + "iso_country_code":{ + "type":"string", + "description":"ISO country code.", + "example":"US" + }, + "fetch_url":{ + "type":"string", + "description":"'Fetch' API call to retrieve the full company profile for this Orb Number.", + "example":"https://api.orb-intelligence.com/3/fetch/23248971/" + }, + "full_profile":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company name", + "example":"Orb Intelligence" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"null" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"null" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "names":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Company's other names - tradestyles, DBA names, former names, abbreviations", + "example":[ + "Orb Intelligence", + "Orb Intelligence, Inc." + ] + }, + "website":{ + "type":"string", + "description":"Company's website", + "example":"https://orb-intelligence.com" + }, + "webdomain":{ + "type":"string", + "description":"Company's web domain", + "example":"orb-intelligence.com" + }, + "webdomains":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"All company's web domains", + "example":[ + "orb-intelligence.com", + "orbintelligence.com" + ] + }, + "webdomains_info":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_web_rank":{ + "type":"integer", + "format":"int32", + "example":200000, + "description":"is a normalized Alexa rank. The normalization handles two cases: 1. Alexa service does not have this web domain in their database, so there is no Alexa rank for this web domain, then we set it to the maximum - 39999999; 2. For third and higher -level domains, like for example, dolls.stores.shop.ebay.com Alexa service returns alexa rank for ebay.com, which is not good in our use case, as it is a small online shop, not Ebay website. We set this to 39999999." + }, + "domain_has_website":{ + "type":"integer", + "format":"int32", + "example":1 + }, + "domain_is_email_hosting":{ + "type":"integer", + "format":"int32", + "example":0, + "description":"1 if this domain is a popular email service provider, such as, for example, gmail.com, yahoo.com, outlook.com and others. 1 - the domain is an email service provider; 0 - we are not aware of any popular email service provider with this domain. This flag is useful when the domain you want to get company information for was extracted from a person's contact email. So, for example, when it is 'yahoo.com', it does not mean that the person works at Yahoo!" + }, + "webdomain":{ + "type":"string", + "example":"orb-intelligence.com" + }, + "domain_has_email":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"All company's web domains with additional info: domain_has_email; domain_has_website; domain_is_email_hosting - such as gmail.com, hotmail.com; orb_web_rank - normalized Alexa rank", + "example":[ + { + "webdomain":"orb-intelligence.com", + "domain_has_email":1, + "domain_has_website":1, + "domain_is_email_hosting":0, + "orb_web_rank":2000000 + } + ] + }, + "address":{ + "type":"object", + "properties":{ + "address1":{ + "type":"string", + "description":"Address Line 1", + "example":"1900 CAMDEN AVE" + }, + "address2":{ + "type":"string", + "description":"Address Line 2", + "example":"Unit 1" + }, + "city":{ + "type":"string", + "description":"Address Line 2", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "description":"Address Line 2", + "example":"CA" + }, + "zip":{ + "type":"string", + "description":"Zip Code", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country", + "example":"United States" + } + } + }, + "industry":{ + "type":"string", + "description":"Orb proprietary industry class", + "example":"Computer Software" + }, + "naics_code":{ + "type":"string", + "description":"Primary NAICS code according to 2012 Census.gov standard", + "example":"511210" + }, + "naics_description":{ + "type":"string", + "description":"Primary NAICS code description", + "example":"Software Publishers" + }, + "naics_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary NAICS codes", + "example":[ + { + "code":"5112", + "description":"Software Publishers" + }, + { + "code":"511210", + "description":"Software Publishers" + }, + { + "code":"54151", + "description":"Computer Systems Design and Related Services" + } + ] + }, + "sic_code":{ + "type":"string", + "description":"Primary SIC code according to 1987 standard", + "example":"7372" + }, + "sic_description":{ + "type":"string", + "description":"Primary SIC description", + "example":"Prepackaged software" + }, + "sic_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary SIC codes", + "example":[ + { + "code":"737", + "description":"Computer Programming, Data Processing, And Other Computerrelated" + }, + { + "code":"7372", + "description":"Prepackaged software" + } + ] + }, + "categories":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"Category Name", + "example":"software publisher" + }, + "weight":{ + "type":"integer", + "format":"int32", + "description":"Category Weight", + "example":33.33 + } + } + }, + "description":"Array of Orb proprietary business categories with weights", + "example":[ + { + "name":"software publisher", + "weight":33.33 + }, + { + "name":"business information", + "weight":53.33 + }, + { + "name":"application programming interface", + "weight":23.33 + }, + { + "name":"data processing", + "weight":10 + }, + { + "name":"data collection", + "weight":26.67 + }, + { + "name":"master data management", + "weight":40 + }, + { + "name":"customer relationship management", + "weight":33.33 + }, + { + "name":"sales", + "weight":3.33 + }, + { + "name":"marketing automation", + "weight":53.33 + }, + { + "name":"marketing", + "weight":13.33 + }, + { + "name":"b2b sales", + "weight":36.67 + }, + { + "name":"b2b marketing", + "weight":90 + }, + { + "name":"internet search", + "weight":33.33 + }, + { + "name":"big data", + "weight":26.67 + }, + { + "name":"prepackaged software", + "weight":16.67 + } + ] + }, + "employees_range":{ + "type":"string", + "description":"Number of employees range", + "example":"10 - 50" + }, + "employees":{ + "type":"integer", + "format":"int32", + "description":"Number of employees", + "example":14 + }, + "revenue_range":{ + "type":"string", + "description":"Revenue range", + "example":"1M - 10M" + }, + "revenue":{ + "type":"integer", + "format":"int32", + "description":"Revenue", + "example":"8283540" + }, + "year_founded":{ + "type":"integer", + "format":"int32", + "description":"Year company was founded", + "example":2014 + }, + "description":{ + "type":"string", + "description":"Textual description of the company", + "example":"Company information database for B2B marketing and sales." + }, + "linkedin_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's LinkedIn page", + "example":{ + "url":"https://www.linkedin.com/company/orb-intelligence" + } + }, + "facebook_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Facebook page", + "example":"null" + }, + "twitter_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Twitter account", + "example":{ + "url":"https://twitter.com/OrbIntelligence" + } + }, + "googleplus_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Google plus page", + "example":"null" + }, + "youtube_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Youtube page", + "example":"null" + }, + "technologies":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + } + } + }, + "description":"List of frontend technologies installed on the company's website", + "example":[ + { + "name":"Gravatar" + }, + { + "name":"WordPress" + } + ] + }, + "rankings":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com", + "example":"null" + }, + "ranking_positions":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ranking":{ + "type":"string", + "example":"Forbes Global 500" + }, + "position":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com (with positions)" + }, + "eins":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"U.S. Federal Employer Identification Number" + }, + "npis":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"National Provider Identifier (NPI), a unique 10-digit identification number issued to health care providers in the United States." + }, + "favicon":{ + "type":"string", + "description":"URL to the company's favicon", + "example":"https://orb-intelligence.com/wp-content/themes/orb/assets/img/favicon.png" + }, + "total_funding":{ + "type":"integer", + "format":"int32", + "description":"Total funding amount raised by the company", + "example":"null" + }, + "last_funding_round_amount":{ + "type":"integer", + "format":"int32", + "description":"Last funding round amount", + "example":"null" + }, + "last_funding_round_year":{ + "type":"integer", + "format":"int32", + "description":"Last funding round year", + "example":"null" + }, + "phone":{ + "type":"string", + "description":"General phone number of the company", + "example":"(650) 382-2672" + }, + "fax":{ + "type":"string", + "description":"Company's fax number", + "example":"null" + }, + "email":{ + "type":"string", + "description":"General email of the company", + "example":"info@orb-intelligence.com" + }, + "importance_score":{ + "type":"string", + "description":"Importance score: A, B or C. See documentation for more details", + "example":"A" + }, + "tickers":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "exchange":{ + "type":"string", + "example":"NSQ" + }, + "ticker":{ + "type":"string", + "example":"GOOG" + } + } + }, + "description":"Stock exchange tickers if the company is publicly listed.Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges." + }, + "market_cap":{ + "type":"integer", + "format":"int32", + "example":1000000 + }, + "cik":{ + "type":"string", + "example":"812067" + }, + "cusip":{ + "type":"string", + "example":"780283102" + }, + "fiscal_year_end":{ + "type":"string", + "example":"1231" + }, + "cidrs_count":{ + "type":"integer", + "format":"int32", + "example":18 + }, + "liveramp_idl_count":{ + "type":"integer", + "format":"int32", + "example":7 + }, + "liveramp_device_count":{ + "type":"integer", + "format":"int32", + "example":432 + }, + "latitude":{ + "type":"string" + }, + "longitude":{ + "type":"string" + } + } + } + }, + "required":[ + "country", + "iso_country_code", + "name", + "orb_num" + ] + } + } + } + }, + "description":"List of found companies." + } + }, + "tags":[ + "Search and Look-alike" + ], + "summary":"Retrieves a list of companies for the given search criteria", + "description":"The Search API call allows a user to retrieve a list of companies for the given search criteria. This enables a user to build out a list of companies for use cases such as building out a list of companies in a specific territory or segment. The input to the Search call are a list of filtering attributes that define the companies in the list. These filters can include the geographic location of the companies (at a city, state or country level), revenue, number of employees and their industry profile (e.g., SIC, NAICS, or Orb's proprietary categories classification).", + "produces":[ + "application/json" + ], + "operationId":"Search", + "x-ms-visibility":"important" + } + }, + "/3/lookalike/":{ + "get":{ + "parameters":[ + { + "in":"query", + "name":"api_key", + "required":false, + "type":"string", + "description":"API Access Key.", + "x-ms-summary":"API Access Key" + }, + { + "in":"query", + "name":"limit", + "required":false, + "type":"integer", + "format":"int32", + "default":10, + "description":"Number of results in response (in a page).", + "x-ms-summary":"Number of results in response (in a page)." + }, + { + "in":"query", + "name":"offset", + "required":false, + "type":"integer", + "format":"int32", + "default":0, + "description":"Number of results to skip (to get a particular page).", + "x-ms-summary":"Number of results to skip (to get a particular page)." + }, + { + "in":"query", + "name":"industry", + "required":false, + "type":"string", + "description":"Company's industry. Use GET /dictionaries/industries to get a list of all industry names", + "x-ms-summary":"Company's industry" + }, + { + "in":"query", + "name":"address1", + "required":false, + "type":"string", + "description":"Filter by address line 1", + "x-ms-summary":"Filter by address line 1" + }, + { + "in":"query", + "name":"city", + "required":false, + "type":"string", + "description":"Filter by city", + "x-ms-summary":"Filter by city" + }, + { + "in":"query", + "name":"state", + "required":false, + "type":"string", + "description":"Filter by state", + "x-ms-summary":"Filter by state" + }, + { + "in":"query", + "name":"zip", + "required":false, + "type":"string", + "description":"Filter by zip code", + "x-ms-summary":"Filter by zip code" + }, + { + "in":"query", + "name":"country", + "required":false, + "type":"string", + "description":"Filter by country", + "x-ms-summary":"Filter by country" + }, + { + "in":"query", + "name":"employees", + "required":false, + "type":"array", + "items":{ + "type":"string", + "enum":[ + "any", + "1-10", + "10-50", + "50-200", + "200-500", + "500-1k", + "1k-5k", + "5k-10k", + "10k" + ] + }, + "description":"Number of Employees", + "x-ms-summary":"Number of Employees" + }, + { + "in":"query", + "name":"revenue", + "required":false, + "type":"array", + "items":{ + "type":"string", + "enum":[ + "any", + "0-1m", + "1m-10m", + "10m-50m", + "50m-100m", + "100m-200m", + "200m-1b", + "1b" + ] + }, + "description":"Revenue", + "x-ms-summary":"Revenue" + }, + { + "in":"query", + "name":"techs", + "required":false, + "type":"string", + "description":"Filter by techonologies installed. Use GET /dictionaries/technologies to get a list of all technologies names that we track", + "x-ms-summary":"Filter by techonologies installed" + }, + { + "in":"query", + "name":"tech_categories", + "required":false, + "type":"string", + "description":"Filter by techonologies classes. Use GET /dictionaries/technologies/categories to get a list of all technologies classes", + "x-ms-summary":"Filter by techonologies classes" + }, + { + "in":"query", + "name":"naics_codes", + "required":false, + "type":"string", + "description":"Filter by NAICS code", + "x-ms-summary":"Filter by NAICS code" + }, + { + "in":"query", + "name":"sic_codes", + "required":false, + "type":"string", + "description":"Filter by SIC code", + "x-ms-summary":"Filter by SIC code" + }, + { + "in":"query", + "name":"rankings", + "required":false, + "type":"string", + "description":"Get companies from companies ranked lists, such as Forbes, Fortune or Inc.5000. Get the full list of rankings using GET /dictionaries/rankings", + "x-ms-summary":"Get companies from companies ranked lists" + }, + { + "in":"query", + "name":"cik", + "required":false, + "type":"string", + "description":"Filter by CIK (The Central Index Key from SEC).", + "x-ms-summary":"Filter by CIK (The Central Index Key from SEC)." + }, + { + "in":"query", + "name":"cusip", + "required":false, + "type":"string", + "description":"Filter by CUSIP (https://en.wikipedia.org/wiki/CUSIP).", + "x-ms-summary":"Filter by CUSIP (https://en.wikipedia.org/wiki/CUSIP)." + }, + { + "in":"query", + "name":"ticker", + "required":false, + "type":"string", + "description":"Filter by stock exchange ticker.", + "x-ms-summary":"Filter by stock exchange ticker." + }, + { + "in":"query", + "name":"exchange", + "required":false, + "type":"string", + "description":"Filter by stock exchange. Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges.", + "x-ms-summary":"Filter by stock exchange" + }, + { + "in":"query", + "name":"show_full_profile", + "required":false, + "type":"boolean", + "description":"Embed full company profile", + "x-ms-summary":"Embed full company profile" + }, + { + "in":"query", + "name":"include", + "required":false, + "type":"string", + "description":"Extra output fields to include in response, for example optional `orb_nums` field.", + "x-ms-summary":"Extra output fields to include in response" + }, + { + "in":"query", + "name":"orb_num", + "required":true, + "type":"integer", + "format":"int32", + "description":"Orb Number of the company to get a list of look-alikes for.", + "x-ms-summary":"Orb Number of the company to get a list of look-alikes for." + } + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "request_fields":{ + "type":"object", + "description":"Input data to search" + }, + "facets":{ + "type":"object" + }, + "results_count":{ + "type":"integer", + "format":"int32", + "example":2 + }, + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the candidate profile.", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers of the candidate profile. Hidden by default, use `include` option to show.", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company's name.", + "example":"Orb Intelligence, Inc." + }, + "entity_type":{ + "type":"string", + "enum":[ + "company", + "branch" + ], + "description":"\"company\" or \"branch\".", + "example":"company" + }, + "company_status":{ + "type":"string", + "enum":[ + "active", + "inactive" + ], + "description":"\"active\" or \"inactive\".", + "example":"active" + }, + "parent_orb_num":{ + "type":"string", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"ORB" + }, + "ultimate_parent_orb_num":{ + "type":"string", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"ORB" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "is_standalone_company":{ + "type":"boolean", + "description":"Company is considered as standalone if it does not have parent and subsidiaries.", + "example":true + }, + "address1":{ + "type":"string", + "x-nullable":true, + "description":"First line of the company's address.", + "example":"1900 CAMDEN AVE" + }, + "city":{ + "type":"string", + "x-nullable":true, + "description":"City.", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "x-nullable":true, + "description":"State.", + "example":"CA" + }, + "zip":{ + "type":"string", + "x-nullable":true, + "description":"Zip code.", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country.", + "example":"United States" + }, + "iso_country_code":{ + "type":"string", + "description":"ISO country code.", + "example":"US" + }, + "fetch_url":{ + "type":"string", + "description":"'Fetch' API call to retrieve the full company profile for this Orb Number.", + "example":"https://api.orb-intelligence.com/3/fetch/23248971/" + }, + "full_profile":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company name", + "example":"Orb Intelligence" + }, + "parent_orb_num":{ + "type":"string", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"null" + }, + "ultimate_parent_orb_num":{ + "type":"string", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"null" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "names":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Company's other names - tradestyles, DBA names, former names, abbreviations", + "example":[ + "Orb Intelligence", + "Orb Intelligence, Inc." + ] + }, + "website":{ + "type":"string", + "description":"Company's website", + "example":"https://orb-intelligence.com" + }, + "webdomain":{ + "type":"string", + "description":"Company's web domain", + "example":"orb-intelligence.com" + }, + "webdomains":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"All company's web domains", + "example":[ + "orb-intelligence.com", + "orbintelligence.com" + ] + }, + "webdomains_info":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_web_rank":{ + "type":"integer", + "format":"int32", + "example":200000, + "description":"is a normalized Alexa rank. The normalization handles two cases: 1. Alexa service does not have this web domain in their database, so there is no Alexa rank for this web domain, then we set it to the maximum - 39999999; 2. For third and higher -level domains, like for example, dolls.stores.shop.ebay.com Alexa service returns alexa rank for ebay.com, which is not good in our use case, as it is a small online shop, not Ebay website. We set this to 39999999." + }, + "domain_has_website":{ + "type":"integer", + "format":"int32", + "example":1 + }, + "domain_is_email_hosting":{ + "type":"integer", + "format":"int32", + "example":0, + "description":"1 if this domain is a popular email service provider, such as, for example, gmail.com, yahoo.com, outlook.com and others. 1 - the domain is an email service provider; 0 - we are not aware of any popular email service provider with this domain. This flag is useful when the domain you want to get company information for was extracted from a person's contact email. So, for example, when it is 'yahoo.com', it does not mean that the person works at Yahoo!" + }, + "webdomain":{ + "type":"string", + "example":"orb-intelligence.com" + }, + "domain_has_email":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"All company's web domains with additional info: domain_has_email; domain_has_website; domain_is_email_hosting - such as gmail.com, hotmail.com; orb_web_rank - normalized Alexa rank", + "example":[ + { + "webdomain":"orb-intelligence.com", + "domain_has_email":1, + "domain_has_website":1, + "domain_is_email_hosting":0, + "orb_web_rank":2000000 + } + ] + }, + "address":{ + "type":"object", + "properties":{ + "address1":{ + "type":"string", + "description":"Address Line 1", + "example":"1900 CAMDEN AVE" + }, + "address2":{ + "type":"string", + "description":"Address Line 2", + "example":"Unit 1" + }, + "city":{ + "type":"string", + "description":"Address Line 2", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "description":"Address Line 2", + "example":"CA" + }, + "zip":{ + "type":"string", + "description":"Zip Code", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country", + "example":"United States" + } + } + }, + "industry":{ + "type":"string", + "description":"Orb proprietary industry class", + "example":"Computer Software" + }, + "naics_code":{ + "type":"string", + "description":"Primary NAICS code according to 2012 Census.gov standard", + "example":"511210" + }, + "naics_description":{ + "type":"string", + "description":"Primary NAICS code description", + "example":"Software Publishers" + }, + "naics_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary NAICS codes", + "example":[ + { + "code":"5112", + "description":"Software Publishers" + }, + { + "code":"511210", + "description":"Software Publishers" + }, + { + "code":"54151", + "description":"Computer Systems Design and Related Services" + } + ] + }, + "sic_code":{ + "type":"string", + "description":"Primary SIC code according to 1987 standard", + "example":"7372" + }, + "sic_description":{ + "type":"string", + "description":"Primary SIC description", + "example":"Prepackaged software" + }, + "sic_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary SIC codes", + "example":[ + { + "code":"737", + "description":"Computer Programming, Data Processing, And Other Computerrelated" + }, + { + "code":"7372", + "description":"Prepackaged software" + } + ] + }, + "categories":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"Category Name", + "example":"software publisher" + }, + "weight":{ + "type":"number", + "format":"float", + "description":"Category Weight", + "example":33.33 + } + } + }, + "description":"Array of Orb proprietary business categories with weights", + "example":[ + { + "name":"software publisher", + "weight":33.33 + }, + { + "name":"business information", + "weight":53.33 + }, + { + "name":"application programming interface", + "weight":23.33 + }, + { + "name":"data processing", + "weight":10 + }, + { + "name":"data collection", + "weight":26.67 + }, + { + "name":"master data management", + "weight":40 + }, + { + "name":"customer relationship management", + "weight":33.33 + }, + { + "name":"sales", + "weight":3.33 + }, + { + "name":"marketing automation", + "weight":53.33 + }, + { + "name":"marketing", + "weight":13.33 + }, + { + "name":"b2b sales", + "weight":36.67 + }, + { + "name":"b2b marketing", + "weight":90 + }, + { + "name":"internet search", + "weight":33.33 + }, + { + "name":"big data", + "weight":26.67 + }, + { + "name":"prepackaged software", + "weight":16.67 + } + ] + }, + "employees_range":{ + "type":"string", + "description":"Number of employees range", + "example":"10 - 50" + }, + "employees":{ + "type":"integer", + "format":"int32", + "description":"Number of employees", + "example":14 + }, + "revenue_range":{ + "type":"string", + "description":"Revenue range", + "example":"1M - 10M" + }, + "revenue":{ + "type":"integer", + "format":"int32", + "description":"Revenue", + "example":"8283540" + }, + "year_founded":{ + "type":"integer", + "format":"int32", + "description":"Year company was founded", + "example":2014 + }, + "description":{ + "type":"string", + "description":"Textual description of the company", + "example":"Company information database for B2B marketing and sales." + }, + "linkedin_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's LinkedIn page", + "example":{ + "url":"https://www.linkedin.com/company/orb-intelligence" + } + }, + "facebook_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Facebook page", + "example":"null" + }, + "twitter_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Twitter account", + "example":{ + "url":"https://twitter.com/OrbIntelligence" + } + }, + "googleplus_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Google plus page", + "example":"null" + }, + "youtube_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Youtube page", + "example":"null" + }, + "technologies":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + } + } + }, + "description":"List of frontend technologies installed on the company's website", + "example":[ + { + "name":"Gravatar" + }, + { + "name":"WordPress" + } + ] + }, + "rankings":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com", + "example":"null" + }, + "ranking_positions":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ranking":{ + "type":"string", + "example":"Forbes Global 500" + }, + "position":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com (with positions)" + }, + "eins":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"U.S. Federal Employer Identification Number" + }, + "npis":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"National Provider Identifier (NPI), a unique 10-digit identification number issued to health care providers in the United States." + }, + "favicon":{ + "type":"string", + "description":"URL to the company's favicon", + "example":"https://orb-intelligence.com/wp-content/themes/orb/assets/img/favicon.png" + }, + "total_funding":{ + "type":"integer", + "format":"int32", + "description":"Total funding amount raised by the company", + "example":"null" + }, + "last_funding_round_amount":{ + "type":"integer", + "format":"int32", + "description":"Last funding round amount", + "example":"null" + }, + "last_funding_round_year":{ + "type":"integer", + "format":"int32", + "description":"Last funding round year", + "example":"null" + }, + "phone":{ + "type":"string", + "description":"General phone number of the company", + "example":"(650) 382-2672" + }, + "fax":{ + "type":"string", + "description":"Company's fax number", + "example":"null" + }, + "email":{ + "type":"string", + "description":"General email of the company", + "example":"info@orb-intelligence.com" + }, + "importance_score":{ + "type":"string", + "description":"Importance score: A, B or C. See documentation for more details", + "example":"A" + }, + "tickers":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "exchange":{ + "type":"string", + "example":"NSQ" + }, + "ticker":{ + "type":"string", + "example":"GOOG" + } + } + }, + "description":"Stock exchange tickers if the company is publicly listed.Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges." + }, + "market_cap":{ + "type":"integer", + "format":"int32", + "example":1000000 + }, + "cik":{ + "type":"string", + "example":"812067" + }, + "cusip":{ + "type":"string", + "example":"780283102" + }, + "fiscal_year_end":{ + "type":"string", + "example":"1231" + }, + "cidrs_count":{ + "type":"integer", + "format":"int32", + "example":18 + }, + "liveramp_idl_count":{ + "type":"integer", + "format":"int32", + "example":7 + }, + "liveramp_device_count":{ + "type":"integer", + "format":"int32", + "example":432 + }, + "latitude":{ + "type":"string" + }, + "longitude":{ + "type":"string" + } + } + } + }, + "required":[ + "country", + "iso_country_code", + "name", + "orb_num" + ] + } + } + } + }, + "description":"List of found companies." + } + }, + "tags":[ + "Search and Look-alike" + ], + "summary":"Retrieves a list of companies similar to a target company", + "description":"The Lookalike API call allows a user to retrieve a list of companies similar to a target company. The input to the Lookalike call are the Orb Number of the target company.", + "produces":[ + "application/json" + ], + "operationId":"Look-alike" + } + }, + "/3/corporate_tree/{orb_num}/":{ + "get":{ + "parameters":[ + { + "in":"query", + "name":"api_key", + "required":false, + "type":"string", + "description":"API Access Key.", + "x-ms-summary":"API Access Key." + }, + { + "in":"query", + "name":"show_full_profile", + "required":false, + "type":"boolean", + "description":"Embed full company profile", + "x-ms-summary":"Embed full company profile" + }, + { + "in":"query", + "name":"include", + "required":false, + "type":"string", + "description":"Extra output fields to include in response, for example optional `orb_nums` field.", + "x-ms-summary":"Extra output fields to include in response" + }, + { + "in":"path", + "name":"orb_num", + "required":true, + "type":"string", + "x-ms-url-encoding":"single", + "description":"Orb Number", + "x-ms-summary":"Orb Number" + } + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "request_fields":{ + "type":"object", + "description":"Input data to search" + }, + "facets":{ + "type":"object" + }, + "results_count":{ + "type":"integer", + "format":"int32", + "example":2 + }, + "results":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the candidate profile.", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers of the candidate profile. Hidden by default, use `include` option to show.", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company's name.", + "example":"Orb Intelligence, Inc." + }, + "entity_type":{ + "type":"string", + "enum":[ + "company", + "branch" + ], + "description":"\"company\" or \"branch\".", + "example":"company" + }, + "company_status":{ + "type":"string", + "enum":[ + "active", + "inactive" + ], + "description":"\"active\" or \"inactive\".", + "example":"active" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"ORB" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"ORB" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "is_standalone_company":{ + "type":"boolean", + "description":"Company is considered as standalone if it does not have parent and subsidiaries.", + "example":true + }, + "address1":{ + "type":"string", + "x-nullable":true, + "description":"First line of the company's address.", + "example":"1900 CAMDEN AVE" + }, + "city":{ + "type":"string", + "x-nullable":true, + "description":"City.", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "x-nullable":true, + "description":"State.", + "example":"CA" + }, + "zip":{ + "type":"string", + "x-nullable":true, + "description":"Zip code.", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country.", + "example":"United States" + }, + "iso_country_code":{ + "type":"string", + "description":"ISO country code.", + "example":"US" + }, + "fetch_url":{ + "type":"string", + "description":"'Fetch' API call to retrieve the full company profile for this Orb Number.", + "example":"https://api.orb-intelligence.com/3/fetch/23248971/" + }, + "full_profile":{ + "type":"object", + "properties":{ + "orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number", + "example":"23248971" + }, + "orb_nums":{ + "type":"array", + "items":{ + "type":"integer", + "format":"int32" + }, + "description":"Secondary Orb Numbers", + "example":[ + "23248971" + ] + }, + "name":{ + "type":"string", + "description":"Company name", + "example":"Orb Intelligence" + }, + "parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of a parent company, if this company is a subsidiary", + "example":"null" + }, + "parent_name":{ + "type":"string", + "description":"Name of a parent company.", + "example":"null" + }, + "ultimate_parent_orb_num":{ + "type":"integer", + "format":"int32", + "description":"Orb Number of the ultimate parent company.", + "example":"23248971" + }, + "ultimate_parent_name":{ + "type":"string", + "description":"Name of the ultimate parent company.", + "example":"null" + }, + "subsidiaries_count":{ + "type":"integer", + "format":"int32", + "description":"Number of subsidiaries" + }, + "branches_count":{ + "type":"integer", + "format":"int32", + "description":"Number of company branches/locations" + }, + "names":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Company's other names - tradestyles, DBA names, former names, abbreviations", + "example":[ + "Orb Intelligence", + "Orb Intelligence, Inc." + ] + }, + "website":{ + "type":"string", + "description":"Company's website", + "example":"https://orb-intelligence.com" + }, + "webdomain":{ + "type":"string", + "description":"Company's web domain", + "example":"orb-intelligence.com" + }, + "webdomains":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"All company's web domains", + "example":[ + "orb-intelligence.com", + "orbintelligence.com" + ] + }, + "webdomains_info":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "orb_web_rank":{ + "type":"integer", + "format":"int32", + "example":200000, + "description":"is a normalized Alexa rank. The normalization handles two cases: 1. Alexa service does not have this web domain in their database, so there is no Alexa rank for this web domain, then we set it to the maximum - 39999999; 2. For third and higher -level domains, like for example, dolls.stores.shop.ebay.com Alexa service returns alexa rank for ebay.com, which is not good in our use case, as it is a small online shop, not Ebay website. We set this to 39999999." + }, + "domain_has_website":{ + "type":"integer", + "format":"int32", + "example":1 + }, + "domain_is_email_hosting":{ + "type":"integer", + "format":"int32", + "example":0, + "description":"1 if this domain is a popular email service provider, such as, for example, gmail.com, yahoo.com, outlook.com and others. 1 - the domain is an email service provider; 0 - we are not aware of any popular email service provider with this domain. This flag is useful when the domain you want to get company information for was extracted from a person's contact email. So, for example, when it is 'yahoo.com', it does not mean that the person works at Yahoo!" + }, + "webdomain":{ + "type":"string", + "example":"orb-intelligence.com" + }, + "domain_has_email":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"All company's web domains with additional info: domain_has_email; domain_has_website; domain_is_email_hosting - such as gmail.com, hotmail.com; orb_web_rank - normalized Alexa rank", + "example":[ + { + "webdomain":"orb-intelligence.com", + "domain_has_email":1, + "domain_has_website":1, + "domain_is_email_hosting":0, + "orb_web_rank":2000000 + } + ] + }, + "address":{ + "type":"object", + "properties":{ + "address1":{ + "type":"string", + "description":"Address Line 1", + "example":"1900 CAMDEN AVE" + }, + "address2":{ + "type":"string", + "description":"Address Line 2", + "example":"Unit 1" + }, + "city":{ + "type":"string", + "description":"Address Line 2", + "example":"SAN JOSE" + }, + "state":{ + "type":"string", + "description":"Address Line 2", + "example":"CA" + }, + "zip":{ + "type":"string", + "description":"Zip Code", + "example":"95124" + }, + "country":{ + "type":"string", + "description":"Country", + "example":"United States" + } + } + }, + "industry":{ + "type":"string", + "description":"Orb proprietary industry class", + "example":"Computer Software" + }, + "naics_code":{ + "type":"string", + "description":"Primary NAICS code according to 2012 Census.gov standard", + "example":"511210" + }, + "naics_description":{ + "type":"string", + "description":"Primary NAICS code description", + "example":"Software Publishers" + }, + "naics_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary NAICS codes", + "example":[ + { + "code":"5112", + "description":"Software Publishers" + }, + { + "code":"511210", + "description":"Software Publishers" + }, + { + "code":"54151", + "description":"Computer Systems Design and Related Services" + } + ] + }, + "sic_code":{ + "type":"string", + "description":"Primary SIC code according to 1987 standard", + "example":"7372" + }, + "sic_description":{ + "type":"string", + "description":"Primary SIC description", + "example":"Prepackaged software" + }, + "sic_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"Industry Code", + "example":"511210" + }, + "description":{ + "type":"string", + "description":"Industry Description", + "example":"Software Publishers" + } + } + }, + "description":"Array of secondary SIC codes", + "example":[ + { + "code":"737", + "description":"Computer Programming, Data Processing, And Other Computerrelated" + }, + { + "code":"7372", + "description":"Prepackaged software" + } + ] + }, + "categories":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"Category Name", + "example":"software publisher" + }, + "weight":{ + "type":"integer", + "format":"int32", + "description":"Category Weight", + "example":33.33 + } + } + }, + "description":"Array of Orb proprietary business categories with weights", + "example":[ + { + "name":"software publisher", + "weight":33.33 + }, + { + "name":"business information", + "weight":53.33 + }, + { + "name":"application programming interface", + "weight":23.33 + }, + { + "name":"data processing", + "weight":10 + }, + { + "name":"data collection", + "weight":26.67 + }, + { + "name":"master data management", + "weight":40 + }, + { + "name":"customer relationship management", + "weight":33.33 + }, + { + "name":"sales", + "weight":3.33 + }, + { + "name":"marketing automation", + "weight":53.33 + }, + { + "name":"marketing", + "weight":13.33 + }, + { + "name":"b2b sales", + "weight":36.67 + }, + { + "name":"b2b marketing", + "weight":90 + }, + { + "name":"internet search", + "weight":33.33 + }, + { + "name":"big data", + "weight":26.67 + }, + { + "name":"prepackaged software", + "weight":16.67 + } + ] + }, + "employees_range":{ + "type":"string", + "description":"Number of employees range", + "example":"10 - 50" + }, + "employees":{ + "type":"integer", + "format":"int32", + "description":"Number of employees", + "example":14 + }, + "revenue_range":{ + "type":"string", + "description":"Revenue range", + "example":"1M - 10M" + }, + "revenue":{ + "type":"integer", + "format":"int32", + "description":"Revenue", + "example":"8283540" + }, + "year_founded":{ + "type":"integer", + "format":"int32", + "description":"Year company was founded", + "example":2014 + }, + "description":{ + "type":"string", + "description":"Textual description of the company", + "example":"Company information database for B2B marketing and sales." + }, + "linkedin_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's LinkedIn page", + "example":{ + "url":"https://www.linkedin.com/company/orb-intelligence" + } + }, + "facebook_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Facebook page", + "example":"null" + }, + "twitter_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Twitter account", + "example":{ + "url":"https://twitter.com/OrbIntelligence" + } + }, + "googleplus_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Google plus page", + "example":"null" + }, + "youtube_account":{ + "type":"object", + "properties":{ + "url":{ + "type":"string" + }, + "likes":{ + "type":"integer", + "format":"int32" + }, + "followers":{ + "type":"integer", + "format":"int32" + } + }, + "description":"URL to the company's Youtube page", + "example":"null" + }, + "technologies":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "name":{ + "type":"string" + } + } + }, + "description":"List of frontend technologies installed on the company's website", + "example":[ + { + "name":"Gravatar" + }, + { + "name":"WordPress" + } + ] + }, + "rankings":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com", + "example":"null" + }, + "ranking_positions":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ranking":{ + "type":"string", + "example":"Forbes Global 500" + }, + "position":{ + "type":"integer", + "format":"int32", + "example":1 + } + } + }, + "description":"Popular list the company may be included, such as Fortune, Forbes, Inc.com (with positions)" + }, + "eins":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"U.S. Federal Employer Identification Number" + }, + "npis":{ + "type":"array", + "items":{ + "type":"string" + }, + "description":"National Provider Identifier (NPI), a unique 10-digit identification number issued to health care providers in the United States." + }, + "favicon":{ + "type":"string", + "description":"URL to the company's favicon", + "example":"https://orb-intelligence.com/wp-content/themes/orb/assets/img/favicon.png" + }, + "total_funding":{ + "type":"integer", + "format":"int32", + "description":"Total funding amount raised by the company", + "example":"null" + }, + "last_funding_round_amount":{ + "type":"integer", + "format":"int32", + "description":"Last funding round amount", + "example":"null" + }, + "last_funding_round_year":{ + "type":"integer", + "format":"int32", + "description":"Last funding round year", + "example":"null" + }, + "phone":{ + "type":"string", + "description":"General phone number of the company", + "example":"(650) 382-2672" + }, + "fax":{ + "type":"string", + "description":"Company's fax number", + "example":"null" + }, + "email":{ + "type":"string", + "description":"General email of the company", + "example":"info@orb-intelligence.com" + }, + "importance_score":{ + "type":"string", + "description":"Importance score: A, B or C. See documentation for more details", + "example":"A" + }, + "tickers":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "exchange":{ + "type":"string", + "example":"NSQ" + }, + "ticker":{ + "type":"string", + "example":"GOOG" + } + } + }, + "description":"Stock exchange tickers if the company is publicly listed.Use GET /3/dictionaries/stock_exchanges to get a list of all stock exchanges." + }, + "market_cap":{ + "type":"integer", + "format":"int32", + "example":1000000 + }, + "cik":{ + "type":"string", + "example":"812067" + }, + "cusip":{ + "type":"string", + "example":"780283102" + }, + "fiscal_year_end":{ + "type":"string", + "example":"1231" + }, + "cidrs_count":{ + "type":"integer", + "format":"int32", + "example":18 + }, + "liveramp_idl_count":{ + "type":"integer", + "format":"int32", + "example":7 + }, + "liveramp_device_count":{ + "type":"integer", + "format":"int32", + "example":432 + }, + "latitude":{ + "type":"string" + }, + "longitude":{ + "type":"string" + } + } + } + }, + "required":[ + "country", + "iso_country_code", + "name", + "orb_num" + ] + } + } + } + }, + "description":"List of found companies." + } + }, + "tags":[ + "Corporate Tree" + ], + "summary":"Retrieves full corporate tree of subsidiaries", + "description":"The Corporate Tree API call allows a user to retrieve full corporate tree of subsidiaries for a given company, starting from its ultimate parent company. The input to the Corporate Tree call is the Orb Number of the target company (mandatory field).", + "produces":[ + "application/json" + ], + "operationId":"CorporateTree", + "x-ms-visibility":"important" + } + }, + "/3/dictionaries/":{ + "get":{ + "parameters":[ + + ], + "responses":{ + "200":{ + "schema":{ + "type":"object", + "properties":{ + "dictionaries":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "description":{ + "type":"string" + }, + "name":{ + "type":"string" + } + } + } + } + } + }, + "description":"List of all dictionaries" + } + }, + "tags":[ + "Dictionaries" + ], + "summary":"List Of All Dictionaries", + "description":"ORB provides dictionaries for various type of fields:\n\n- [industries](http://api.orb-intelligence.com/3/dictionaries/industries?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all industries.\n\n- [naics_codes](http://api.orb-intelligence.com/3/dictionaries/naics_codes?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all NAICS codes and their descriptions. The codes are based on the NAICS standard, which is the latest version of the standard. For more information on NAICS 2012 and mappings to the previous versions see US Census NAICS page (mappings).\n\n- [sic_codes](http://api.orb-intelligence.com/3/dictionaries/sic_codes?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all SIC codes and their descriptions.\n\n- [rankings](http://api.orb-intelligence.com/3/dictionaries/rankings?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all company rankings.\n\n- [technologies](http://api.orb-intelligence.com/3/dictionaries/technologies?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all technologies.\n\n- [technologies/categories](http://api.orb-intelligence.com/3/dictionaries/technologies/categories?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all technology categories and related technologies.\n\n- [categories](http://api.orb-intelligence.com/3/dictionaries/categories?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all categories.\n\n- [stock_exchanges](http://api.orb-intelligence.com/3/dictionaries/stock_exchanges?api_key=c66c5dad-395c-4ec6-afdf-7b78eb94166a) - Returns a list of all stock exchanges.\n", + "produces":[ + "application/json" + ], + "operationId":"ListOfAllDictionaries", + "x-ms-visibility":"internal" + } + } + }, + "definitions":{ + + }, + "parameters":{ + + }, + "responses":{ + + }, + "securityDefinitions":{ + "API Key":{ + "type":"apiKey", + "in":"header", + "name":"apiKey" + } + }, + "security":[ + { + "API Key":[ + + ] + } + ], + "tags":[ + + ], + "x-ms-connector-metadata":[ + { + "propertyName":"Website", + "propertyValue":"http://orb-intelligence.com" + }, + { + "propertyName":"Privacy policy", + "propertyValue":"https://www.dnb.com/utility-pages/privacy-policy.html" + }, + { + "propertyName":"Categories", + "propertyValue":"Business Intelligence; Sales and CRM" + } + ] +} diff --git a/independent-publisher-connectors/ORB Intelligence/apiProperties.json b/independent-publisher-connectors/ORB Intelligence/apiProperties.json new file mode 100644 index 0000000000..22fc3f1133 --- /dev/null +++ b/independent-publisher-connectors/ORB Intelligence/apiProperties.json @@ -0,0 +1,25 @@ +{ + "properties":{ + "connectionParameters":{ + "api_key":{ + "type":"securestring", + "uiDefinition":{ + "displayName":"apiKey_auth", + "description":"The apiKey_auth for this api", + "tooltip":"Provide your apiKey_auth", + "constraints":{ + "tabIndex":2, + "clearText":false, + "required":"true" + } + } + } + }, + "iconBrandColor":"#da3b01", + "capabilities":[ + + ], + "publisher":"Aaryan Arora, Ankita Singh", + "stackOwner":"Dun & Bradstreet, Inc." + } +} From b77f3e0b6dee8628b7c04cc3f6d5b334cd4a89c5 Mon Sep 17 00:00:00 2001 From: mingji1994 <89219897+mingji1994@users.noreply.github.com> Date: Fri, 5 Nov 2021 11:35:15 -0700 Subject: [PATCH 113/219] Move hostUrl from connection parameter to operation parameter (#1242) --- .../apiDefinition.swagger.json | 140 ++++++++++++++++-- .../apiProperties.json | 11 -- 2 files changed, 126 insertions(+), 25 deletions(-) diff --git a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json index a1c260a604..eae3950bbb 100644 --- a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json +++ b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json @@ -28,7 +28,7 @@ } ], "paths": { - "/v1.0/action/account/create": { + "/host/{hostUrl}/v1.0/action/account/create/": { "post": { "tags": [ "AccountProtection_v1" @@ -43,6 +43,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -213,7 +221,7 @@ } } }, - "/v1.0/observe/account/create/status": { + "/host/{hostUrl}/v1.0/observe/account/create/status/": { "post": { "tags": [ "AccountProtection_v1" @@ -228,6 +236,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -320,7 +336,7 @@ } } }, - "/v1.0/action/account/login": { + "/host/{hostUrl}/v1.0/action/account/login/": { "post": { "tags": [ "AccountProtection_v1" @@ -335,6 +351,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -501,7 +525,7 @@ } } }, - "/v1.0/observe/account/login/status": { + "/host/{hostUrl}/v1.0/observe/account/login/status/": { "post": { "tags": [ "AccountProtection_v1" @@ -516,6 +540,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -608,7 +640,7 @@ } } }, - "/v1.0/observe/account/update/{UserId}": { + "/host/{hostUrl}/v1.0/observe/account/update/{UserId}": { "post": { "tags": [ "AccountProtection_v1" @@ -623,6 +655,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "UserId", @@ -723,7 +763,7 @@ } } }, - "/v1.0/label/account/create/{UserId}": { + "/host/{hostUrl}/v1.0/label/account/create/{UserId}": { "post": { "tags": [ "AccountProtection_v1" @@ -738,6 +778,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "UserId", @@ -838,7 +886,7 @@ } } }, - "/v1.0/action/assessment/{assessment-api-name}": { + "/host/{hostUrl}/v1.0/action/assessment/{assessment-api-name}": { "post": { "tags": [ "Assessment_v1" @@ -853,6 +901,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "assessment-api-name", @@ -981,7 +1037,7 @@ } } }, - "/v1.0/merchantservices/events/BankEvent": { + "/host/{hostUrl}/v1.0/merchantservices/events/BankEvent": { "post": { "tags": [ "PurchaseProtection_v1" @@ -996,6 +1052,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1085,7 +1149,7 @@ } } }, - "/v1.0/merchantservices/events/Chargeback": { + "/host/{hostUrl}/v1.0/merchantservices/events/Chargeback": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1100,6 +1164,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1189,7 +1261,7 @@ } } }, - "/v1.0/merchantservices/events/Label": { + "/host/{hostUrl}/v1.0/merchantservices/events/Label": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1204,6 +1276,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1293,7 +1373,7 @@ } } }, - "/v1.0/merchantservices/events/Purchase": { + "/host/{hostUrl}/v1.0/merchantservices/events/Purchase": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1308,6 +1388,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1438,7 +1526,7 @@ } } }, - "/v1.0/merchantservices/events/PurchaseStatus": { + "/host/{hostUrl}/v1.0/merchantservices/events/PurchaseStatus": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1453,6 +1541,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1542,7 +1638,7 @@ } } }, - "/v1.0/merchantservices/events/Refund": { + "/host/{hostUrl}/v1.0/merchantservices/events/Refund": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1557,6 +1653,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1646,7 +1750,7 @@ } } }, - "/v1.0/merchantservices/events/UpdateAccount": { + "/host/{hostUrl}/v1.0/merchantservices/events/UpdateAccount": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1661,6 +1765,14 @@ "application/json" ], "parameters": [ + { + "in": "path", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", diff --git a/certified-connectors/Dynamics365FraudProtection/apiProperties.json b/certified-connectors/Dynamics365FraudProtection/apiProperties.json index aaa7892847..3e020f8da7 100644 --- a/certified-connectors/Dynamics365FraudProtection/apiProperties.json +++ b/certified-connectors/Dynamics365FraudProtection/apiProperties.json @@ -1,17 +1,6 @@ { "properties": { "connectionParameters": { - "hostUrl": { - "type": "string", - "uiDefinition": { - "constraints": { - "required": "true" - }, - "displayName": "Dynamics 365 Fraud Protection API endpoint Url", - "description": "API endpoint URL can be found in https://dfp.microsoft.com/", - "tooltip": "Provide Dynamics 365 Fraud Protection API endpoint Url" - } - }, "token": { "type": "oauthSetting", "oAuthSettings": { From 4b0b92cf650f2865f6ef3f058d5b4ec34c0032a1 Mon Sep 17 00:00:00 2001 From: Srihari Padmanabhan <90345666+sriharip-docusign@users.noreply.github.com> Date: Fri, 5 Nov 2021 11:44:51 -0700 Subject: [PATCH 114/219] DocuSign Demo Connector (Certified Connector) - Add documents to envelope (#1237) * FLOW-44 feature to create a net new envelope (while still supporting create envelope using template) * New action to add documents to envelope * add schema to parse add documents response as dynamic fields * backport the script changes made in prod connector to demo connector --- .../DocuSignDemo/apiDefinition.swagger.json | 100 ++ certified-connectors/DocuSignDemo/script.csx | 929 +++++++++--------- 2 files changed, 578 insertions(+), 451 deletions(-) diff --git a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json index 04c9e05cc0..41e2747c0e 100644 --- a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json +++ b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json @@ -1005,6 +1005,89 @@ }, "deprecated": false, "x-ms-visibility": "internal" + }, + "put": { + "tags": [ + "DocuSign" + ], + "summary": "Add documents", + "description": "Add documents.", + "operationId": "AddDocumentsToEnvelope", + "parameters": [ + { + "name": "accountId", + "in": "path", + "description": "Account id", + "required": true, + "x-ms-summary": "Account", + "x-ms-test-value": "insert account id", + "x-ms-dynamic-values": { + "operationId": "GetLoginAccounts", + "value-collection": "loginAccounts", + "value-path": "accountIdGuid", + "value-title": "name" + }, + "type": "string" + }, + { + "name": "envelopeId", + "in": "path", + "required": true, + "type": "string", + "description": "Envelope id", + "x-ms-summary": "Envelope", + "x-ms-test-value": "insert envelope id" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "documentBase64": { + "type": "string", + "description": "documentBase64" + }, + "documentId": { + "type": "string", + "description": "documentId" + }, + "fileExtension": { + "type": "string", + "description": "fileExtension" + }, + "name": { + "type": "string", + "description": "name" + }, + "order": { + "type": "string", + "description": "order" + } + } + }, + "description": "documents" + } + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AddDocumentsResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important" } }, "/signers/accounts/{accountId}/templates/{templateId}/recipients": { @@ -1632,6 +1715,23 @@ } } }, + "AddDocumentsResponse": { + "type": "object", + "properties": { + "envelopeId": { + "type": "string" + }, + "envelopeDocuments": { + "description": "The documents attached to the envelope.", + "type": "array", + "items": { + "$ref": "#/definitions/EnvelopeDocument" + }, + "x-ms-summary": "Envelope documents", + "x-ms-visibility": "advanced" + } + } + }, "EnvelopeDocument": { "type": "object", "properties": { diff --git a/certified-connectors/DocuSignDemo/script.csx b/certified-connectors/DocuSignDemo/script.csx index 46e52951c9..d9820ee7cd 100644 --- a/certified-connectors/DocuSignDemo/script.csx +++ b/certified-connectors/DocuSignDemo/script.csx @@ -1,534 +1,561 @@ public class Script : ScriptBase { - public override async Task ExecuteAsync() + public override async Task ExecuteAsync() + { + try { - try - { - if ("WebhookResponse".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - await this.RedirectWebhookNotification().ConfigureAwait(false); - return new HttpResponseMessage(HttpStatusCode.OK); - } - - await this.UpdateRequest().ConfigureAwait(false); - var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); - if (response.IsSuccessStatusCode) - { - await this.UpdateResponse(response).ConfigureAwait(false); - } - - return response; - } - catch (ConnectorException ex) - { - var response = new HttpResponseMessage(ex.StatusCode); - response.Content = CreateJsonContent(ex.Message); - return response; - } + if ("WebhookResponse".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.RedirectWebhookNotification().ConfigureAwait(false); + return new HttpResponseMessage(HttpStatusCode.OK); + } + + await this.UpdateRequest().ConfigureAwait(false); + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + if (response.IsSuccessStatusCode) + { + await this.UpdateResponse(response).ConfigureAwait(false); + } + + return response; } - - private static JObject ParseContentAsJObject(string content, bool isRequest) + catch (ConnectorException ex) { - JObject body; - try - { - body = JObject.Parse(content); - } - catch (JsonReaderException ex) - { - if (isRequest) - { - throw new ConnectorException(HttpStatusCode.BadRequest, "Unable to parse the request body", ex); - } - else - { - throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse the response body", ex); - } - } - - if (body == null) - { - if (isRequest) - { - throw new ConnectorException(HttpStatusCode.BadRequest, "The request body is empty"); - } - else - { - throw new ConnectorException(HttpStatusCode.BadGateway, "The response body is empty"); - } - } - - return body; + var response = new HttpResponseMessage(ex.StatusCode); + response.Content = CreateJsonContent(ex.Message); + return response; } + } - private static string TransformWebhookNotificationBody(string content) + private static JObject ParseContentAsJObject(string content, bool isRequest) + { + JObject body; + try { - JObject body = ParseContentAsJObject(content, true); - - // customfield code - if (body["DocuSignEnvelopeInformation"] is JObject && body["DocuSignEnvelopeInformation"]["EnvelopeStatus"] is JObject) - { - var envelopeStatus = body["DocuSignEnvelopeInformation"]["EnvelopeStatus"]; - var customFields = envelopeStatus["CustomFields"]; - var newCustomFields = new JObject(); + body = JObject.Parse(content); + } + catch (JsonReaderException ex) + { + if (isRequest) + { + throw new ConnectorException(HttpStatusCode.BadRequest, "Unable to parse the request body", ex); + } + else + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse the response body", ex); + } + } - if (customFields is JObject) - { - var customFieldsArray = customFields["CustomField"]; - customFieldsArray = customFieldsArray is JObject ? new JArray(customFieldsArray) : customFieldsArray; - customFields["CustomField"] = customFieldsArray; + if (body == null) + { + if (isRequest) + { + throw new ConnectorException(HttpStatusCode.BadRequest, "The request body is empty"); + } + else + { + throw new ConnectorException(HttpStatusCode.BadGateway, "The response body is empty"); + } + } - foreach (var field in customFieldsArray as JArray ?? new JArray()) - { - var fieldName = field.Type == JTokenType.Object ? (string)field["Name"] : null; - if (!string.IsNullOrWhiteSpace(fieldName) && newCustomFields[fieldName] == null) - { - newCustomFields.Add(fieldName, field["Value"]); - } - } - } + return body; + } - body["customFields"] = newCustomFields; + private static string TransformWebhookNotificationBody(string content) + { + JObject body = ParseContentAsJObject(content, true); - // tab code - var recipientStatuses = envelopeStatus["RecipientStatuses"]; - if (recipientStatuses is JObject) + // customfield code + if (body["DocuSignEnvelopeInformation"] is JObject && body["DocuSignEnvelopeInformation"]["EnvelopeStatus"] is JObject) + { + var envelopeStatus = body["DocuSignEnvelopeInformation"]["EnvelopeStatus"]; + var customFields = envelopeStatus["CustomFields"]; + var newCustomFields = new JObject(); + + if (customFields is JObject) + { + var customFieldsArray = customFields["CustomField"]; + customFieldsArray = customFieldsArray is JObject ? new JArray(customFieldsArray) : customFieldsArray; + customFields["CustomField"] = customFieldsArray; + + foreach (var field in customFieldsArray as JArray ?? new JArray()) + { + var fieldName = field.Type == JTokenType.Object ? (string)field["Name"] : null; + if (!string.IsNullOrWhiteSpace(fieldName) && newCustomFields[fieldName] == null) + { + newCustomFields.Add(fieldName, field["Value"]); + } + } + } + + body["customFields"] = newCustomFields; + + // tab code + var recipientStatuses = envelopeStatus["RecipientStatuses"]; + if (recipientStatuses is JObject) + { + var statusArray = recipientStatuses["RecipientStatus"]; + statusArray = statusArray is JObject ? new JArray(statusArray) : statusArray; + recipientStatuses["RecipientStatus"] = statusArray; + + // RecipientStatus is an array at this point so now check TabStatus + foreach (var recipient in recipientStatuses["RecipientStatus"] ?? new JArray()) + { + var tabStatuses = recipient["TabStatuses"]; + if (tabStatuses is JObject) + { + var tabStatusArray = tabStatuses["TabStatus"]; + tabStatusArray = tabStatusArray is JObject ? new JArray(tabStatusArray) : tabStatusArray; + tabStatuses["TabStatus"] = tabStatusArray; + + // TabStatus is an array at this point + var newTabStatuses = new JObject(); + foreach (var tab in tabStatusArray as JArray ?? new JArray()) { - var statusArray = recipientStatuses["RecipientStatus"]; - statusArray = statusArray is JObject ? new JArray(statusArray) : statusArray; - recipientStatuses["RecipientStatus"] = statusArray; - - // RecipientStatus is an array at this point so now check TabStatus - foreach (var recipient in recipientStatuses["RecipientStatus"] ?? new JArray()) + if (tab is JObject) + { + var tabLabel = (string)tab["TabLabel"]; + var tabValue = (string)tab["TabValue"]; + var customTabType = (string)tab["CustomTabType"]; + + // skip Radio and List tabs that are not selected + if (!string.IsNullOrWhiteSpace(tabLabel) && !string.IsNullOrWhiteSpace(tabValue) && customTabType != "Radio" && customTabType != "List") { - var tabStatuses = recipient["TabStatuses"]; - if (tabStatuses is JObject) - { - var tabStatusArray = tabStatuses["TabStatus"]; - tabStatusArray = tabStatusArray is JObject ? new JArray(tabStatusArray) : tabStatusArray; - tabStatuses["TabStatus"] = tabStatusArray; - - // TabStatus is an array at this point - var newTabStatuses = new JObject(); - foreach (var tab in tabStatusArray as JArray ?? new JArray()) - { - if (tab is JObject) - { - var tabLabel = (string)tab["TabLabel"]; - var tabValue = (string)tab["TabValue"]; - var customTabType = (string)tab["CustomTabType"]; - - // skip Radio and List tabs that are not selected - if (!string.IsNullOrWhiteSpace(tabLabel) && !string.IsNullOrWhiteSpace(tabValue) && customTabType != "Radio" && customTabType != "List") - { - if (newTabStatuses[tabLabel] == null) - { - newTabStatuses.Add(tabLabel, tabValue); - } - } - } - } - - recipient["tabs"] = newTabStatuses; - } + if (newTabStatuses[tabLabel] == null) + { + newTabStatuses.Add(tabLabel, tabValue); + } } + } } - } - - return body.ToString(); - } - private async Task RedirectWebhookNotification() - { - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - var logicAppsUri = query.Get("logicAppsUri"); - - if (string.IsNullOrEmpty(logicAppsUri)) - { - return new HttpResponseMessage(HttpStatusCode.BadRequest) - { - Content = new StringContent("Required 'logicAppsUri' parameter is empty"), - }; + recipient["tabs"] = newTabStatuses; + } } + } + } - try - { - logicAppsUri = Encoding.UTF8.GetString(Convert.FromBase64String(logicAppsUri)); - } - catch (FormatException) - { - return new HttpResponseMessage(HttpStatusCode.BadRequest) - { - Content = new StringContent("'logicAppsUri' value is not a correct base64-encoded string"), - }; - } - - var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); - var doc = new XmlDocument(); - doc.LoadXml(content); - - var jsonContent = JsonConvert.SerializeXmlNode(doc); - var notificationContent = TransformWebhookNotificationBody(jsonContent); + return body.ToString(); + } - using var logicAppsRequest = new HttpRequestMessage(HttpMethod.Post, logicAppsUri); - logicAppsRequest.Content = CreateJsonContent(notificationContent); + private async Task RedirectWebhookNotification() + { + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var logicAppsUri = query.Get("logicAppsUri"); - return await this.Context.SendAsync(logicAppsRequest, this.CancellationToken).ConfigureAwait(false); + if (string.IsNullOrEmpty(logicAppsUri)) + { + return new HttpResponseMessage(HttpStatusCode.BadRequest) + { + Content = new StringContent("Required 'logicAppsUri' parameter is empty"), + }; } - private JObject CreateHookEnvelopeBodyTransformation(JObject original) + try { - var body = new JObject(); - - var uriLogicApps = original["urlToPublishTo"]?.ToString(); - var uriLogicAppsBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(uriLogicApps ?? string.Empty)); - var notificationProxyUri = this.Context.CreateNotificationUri($"/webhook_response?logicAppsUri={uriLogicAppsBase64}"); - - body["allUsers"] = "true"; - body["allowEnvelopePublish"] = "true"; - body["includeDocumentFields"] = "true"; - body["includeEnvelopeVoidReason"] = "true"; - body["includeTimeZoneInformation"] = "true"; - body["requiresAcknowledgement"] = "true"; - body["urlToPublishTo"] = notificationProxyUri.AbsoluteUri; - body["name"] = original["name"]?.ToString(); - body["envelopeEvents"] = original["envelopeEvents"]?.ToString(); - body["includeSenderAccountasCustomField"] = "true"; - return body; + logicAppsUri = Encoding.UTF8.GetString(Convert.FromBase64String(logicAppsUri)); + } + catch (FormatException) + { + return new HttpResponseMessage(HttpStatusCode.BadRequest) + { + Content = new StringContent("'logicAppsUri' value is not a correct base64-encoded string"), + }; } - private JObject SendEnvelopeBodyTransformation(JObject body) + var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var doc = new XmlDocument(); + doc.LoadXml(content); + + var jsonContent = JsonConvert.SerializeXmlNode(doc); + var notificationContent = TransformWebhookNotificationBody(jsonContent); + + using var logicAppsRequest = new HttpRequestMessage(HttpMethod.Post, logicAppsUri); + logicAppsRequest.Content = CreateJsonContent(notificationContent); + + return await this.Context.SendAsync(logicAppsRequest, this.CancellationToken).ConfigureAwait(false); + } + + private JObject CreateHookEnvelopeBodyTransformation(JObject original) + { + var body = new JObject(); + + var uriLogicApps = original["urlToPublishTo"]?.ToString(); + var uriLogicAppsBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(uriLogicApps ?? string.Empty)); + var notificationProxyUri = this.Context.CreateNotificationUri($"/webhook_response?logicAppsUri={uriLogicAppsBase64}"); + + body["allUsers"] = "true"; + body["allowEnvelopePublish"] = "true"; + body["includeDocumentFields"] = "true"; + body["includeEnvelopeVoidReason"] = "true"; + body["includeTimeZoneInformation"] = "true"; + body["requiresAcknowledgement"] = "true"; + body["urlToPublishTo"] = notificationProxyUri.AbsoluteUri; + body["name"] = original["name"]?.ToString(); + body["envelopeEvents"] = original["envelopeEvents"]?.ToString(); + body["includeSenderAccountasCustomField"] = "true"; + return body; + } + + private JObject CreateEnvelopeFromTemplateBodyTransformation(JObject body) + { + var templateRoles = new JArray(); + var signer = new JObject(); + var count = 0; + + foreach (var property in body) { - var templateRoles = new JArray(); - var signer = new JObject(); - var count = 0; + var value = (string)property.Value; + var key = (string)property.Key; + + if (key.Contains(" Name")) + { + signer["roleName"] = key.Substring(0, key.Length - 5); + signer["name"] = value; + } + + if (key.Contains(" Email")) + { + signer["email"] = value; + } + + if (count % 2 != 0) + { + templateRoles.Add(signer); + signer = new JObject(); + } + + count++; + } - foreach (var property in body) - { - var value = (string)property.Value; - var key = (string)property.Key; + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var newBody = new JObject() + { + ["templateRoles"] = templateRoles, + ["templateId"] = query.Get("templateId") + }; - if (key.Contains(" Name")) - { - // Take substring key variable to set the roleName. - signer["roleName"] = key.Substring(0, key.Length - 5); - signer["name"] = value; - } + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("envelopes/createFromTemplate", "/envelopes"); + this.Context.Request.RequestUri = uriBuilder.Uri; - if (key.Contains(" Email")) - { - signer["email"] = value; - } + return newBody; + } - // Include every other signer into templateRoles JArray. - if (count % 2 != 0) - { - templateRoles.Add(signer); - signer = new JObject(); - } + private JObject CreateBlankEnvelopeBodyTransformation(JObject body) + { + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + body["emailSubject"] = query.Get("emailSubject"); - count++; - } + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("/envelopes/createBlankEnvelope", "/envelopes"); + this.Context.Request.RequestUri = uriBuilder.Uri; - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - var newBody = new JObject() - { - ["templateRoles"] = templateRoles, - ["templateId"] = query.Get("templateId"), - ["status"] = query.Get("status"), - }; - return newBody; - } + return body; + } - private JObject AddRecipientToEnvelopeBodyTransformation(JObject body) + private JObject AddRecipientToEnvelopeBodyTransformation(JObject body) + { + var signers = body["signers"] as JArray; + if (signers == null || signers.Count == 0) { - var signers = body["signers"] as JArray; - if (signers == null || signers.Count == 0) - { - signers = new JArray + signers = new JArray { new JObject(), }; - } - - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - // Unescapes the URI's query parameters, and then converts any plus characters ("+") into spaces. - // Many Web browsers escape spaces inside of URIs into plus ("+") characters - signers[0]["name"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeName")).Replace("+", " "); - signers[0]["email"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeEmail")).Replace("+", " "); - if (string.IsNullOrWhiteSpace((string)signers[0]["recipientId"])) - { - signers[0]["recipientId"] = Guid.NewGuid(); - } - - body["signers"] = signers; - return body; } - private async Task UpdateApiEndpoint() + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + signers[0]["name"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeName")).Replace("+", " "); + signers[0]["email"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeEmail")).Replace("+", " "); + if (string.IsNullOrWhiteSpace((string)signers[0]["recipientId"])) { - string content = string.Empty; - using var userInfoRequest = new HttpRequestMessage(HttpMethod.Get, "https://account-d.docusign.com/oauth/userinfo"); + signers[0]["recipientId"] = Guid.NewGuid(); + } - // Access token is in the authorization header already - userInfoRequest.Headers.Authorization = this.Context.Request.Headers.Authorization; + body["signers"] = signers; + return body; + } - try - { - using var userInfoResponse = await this.Context.SendAsync(userInfoRequest, this.CancellationToken).ConfigureAwait(false); - content = await userInfoResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + private async Task UpdateApiEndpoint() + { + string content = string.Empty; + using var userInfoRequest = new HttpRequestMessage(HttpMethod.Get, "https://account-d.docusign.com/oauth/userinfo"); - if (userInfoResponse.IsSuccessStatusCode) - { - var jsonContent = JObject.Parse(content); - var baseUri = jsonContent["accounts"]?[0]?["base_uri"]?.ToString(); - if (!string.IsNullOrEmpty(baseUri)) - { - this.Context.Request.RequestUri = new Uri(new Uri(baseUri), this.Context.Request.RequestUri.PathAndQuery); - } - else - { - throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User's API endpoint from the response: " + content); - } - } - else - { - throw new ConnectorException(userInfoResponse.StatusCode, content); - } - } - catch (HttpRequestException ex) - { - throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User Info: " + ex.Message, ex); - } - catch (JsonReaderException ex) + // Access token is in the authorization header already + userInfoRequest.Headers.Authorization = this.Context.Request.Headers.Authorization; + + try + { + using var userInfoResponse = await this.Context.SendAsync(userInfoRequest, this.CancellationToken).ConfigureAwait(false); + content = await userInfoResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + + if (userInfoResponse.IsSuccessStatusCode) + { + var jsonContent = JObject.Parse(content); + var baseUri = jsonContent["accounts"]?[0]?["base_uri"]?.ToString(); + if (!string.IsNullOrEmpty(baseUri)) { - throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse User Info response: " + content, ex); + this.Context.Request.RequestUri = new Uri(new Uri(baseUri), this.Context.Request.RequestUri.PathAndQuery); } - catch (UriFormatException ex) + else { - throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to construct User's API endpoint from the response: " + content, ex); + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User's API endpoint from the response: " + content); } + } + else + { + throw new ConnectorException(userInfoResponse.StatusCode, content); + } } - - private async Task TransformRequestJsonBody(Func transformationFunction) + catch (HttpRequestException ex) { - var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); - var newBody = transformationFunction(ParseContentAsJObject(content, true)); - this.Context.Request.Content = CreateJsonContent(newBody.ToString()); + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to get User Info: " + ex.Message, ex); } - - private async Task UpdateRequest() + catch (JsonReaderException ex) { - await this.UpdateApiEndpoint().ConfigureAwait(false); - - if ("SendDraftEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - this.Context.Request.Content = new StringContent("{ \"status\": \"sent\" }", Encoding.UTF8, "application/json"); - } - - if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - await this.TransformRequestJsonBody(this.CreateHookEnvelopeBodyTransformation).ConfigureAwait(false); - } - - if ("SendEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - await this.TransformRequestJsonBody(this.SendEnvelopeBodyTransformation).ConfigureAwait(false); - } - - if ("AddRecipientToEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - await this.TransformRequestJsonBody(this.AddRecipientToEnvelopeBodyTransformation).ConfigureAwait(false); - } - - if ("RemoveRecipientFromEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var newBody = new JObject(); - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - newBody["signers"] = new JArray - { - new JObject - { - ["recipientId"] = Uri.UnescapeDataString(query.Get("RemoveRecipientFromEnvelopeRecipientId")).Replace("+", " "), - }, - }; - - this.Context.Request.Content = CreateJsonContent(newBody.ToString()); - } + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to parse User Info response: " + content, ex); + } + catch (UriFormatException ex) + { + throw new ConnectorException(HttpStatusCode.BadGateway, "Unable to construct User's API endpoint from the response: " + content, ex); + } + } - if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - uriBuilder.Path = uriBuilder.Path.Replace("/trigger/accounts/", "/accounts/"); - var filterValue = query.Get("triggerState"); - if (string.IsNullOrEmpty(filterValue)) - { - // initial trigger state to get existing items - filterValue = DateTimeOffset.UtcNow.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); - } - else - { - // remove triggerState - query.Remove("triggerState"); - } + private async Task TransformRequestJsonBody(Func transformationFunction) + { + var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); - query["from_date"] = filterValue; - uriBuilder.Query = query.ToString(); - this.Context.Request.RequestUri = uriBuilder.Uri; - } + var body = new JObject(); + if (!String.IsNullOrWhiteSpace(content)) + { + body = transformationFunction(ParseContentAsJObject(content, true)); + } + else + { + body = transformationFunction(body); + } - if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); - uriBuilder.Path = uriBuilder.Path.Replace("/signers/accounts/", "/accounts/"); - this.Context.Request.RequestUri = uriBuilder.Uri; - } + this.Context.Request.Content = CreateJsonContent(body.ToString()); + } - if ("GetLoginAccounts".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); - var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - query["include_account_id_guid"] = "true"; - uriBuilder.Query = query.ToString(); - this.Context.Request.RequestUri = uriBuilder.Uri; - } + private async Task UpdateRequest() + { + await this.UpdateApiEndpoint().ConfigureAwait(false); - // update Accept Header - this.Context.Request.Headers.Accept.Clear(); - var acceptHeaderValue = "application/json"; - if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - acceptHeaderValue = "application/pdf"; - } + if ("SendDraftEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + this.Context.Request.Content = new StringContent("{ \"status\": \"sent\" }", Encoding.UTF8, "application/json"); + } - this.Context.Request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeaderValue)); + if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.CreateHookEnvelopeBodyTransformation).ConfigureAwait(false); } - private async Task UpdateResponse(HttpResponseMessage response) + if ("CreateBlankEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) { - if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) - && response.Headers?.Location != null) - { - var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - var body = ParseContentAsJObject(content, false); - response.Headers.Location = new Uri(string.Format( - "{0}/{1}", - this.Context.OriginalRequestUri.ToString(), - body.GetValue("connectId").ToString())); - } + await this.TransformRequestJsonBody(this.CreateBlankEnvelopeBodyTransformation).ConfigureAwait(false); + } - if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); - var itemProperties = new JObject(); - var basePropertyDefinition = new JObject - { - ["type"] = "string", - ["x-ms-keyOrder"] = 0, - ["x-ms-keyType"] = "none", - ["x-ms-sort"] = "none", - }; + if ("CreateEnvelopeFromTemplate".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.CreateEnvelopeFromTemplateBodyTransformation).ConfigureAwait(false); + } - foreach (var signer in (body["signers"] as JArray) ?? new JArray()) - { - var roleName = signer["roleName"]; - itemProperties[roleName + " Name"] = basePropertyDefinition.DeepClone(); - itemProperties[roleName + " Email"] = basePropertyDefinition.DeepClone(); - } + if ("AddRecipientToEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.AddRecipientToEnvelopeBodyTransformation).ConfigureAwait(false); + } - var newBody = new JObject + if ("RemoveRecipientFromEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var newBody = new JObject(); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + newBody["signers"] = new JArray { - ["name"] = "dynamicSchema", - ["title"] = "dynamicSchema", - ["x-ms-permission"] = "read-write", - ["schema"] = new JObject + new JObject { - ["type"] = "array", - ["items"] = new JObject - { - ["type"] = "object", - ["properties"] = itemProperties, - }, + ["recipientId"] = Uri.UnescapeDataString(query.Get("RemoveRecipientFromEnvelopeRecipientId")).Replace("+", " "), }, }; - response.Content = new StringContent(newBody.ToString(), Encoding.UTF8, "application/json"); - } + this.Context.Request.Content = CreateJsonContent(newBody.ToString()); + } - if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - var originalQuery = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - var triggerState = originalQuery.Get("triggerState"); - var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); - var items = body.SelectToken("envelopes") as JArray; + if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + uriBuilder.Path = uriBuilder.Path.Replace("/trigger/accounts/", "/accounts/"); + var filterValue = query.Get("triggerState"); + if (string.IsNullOrEmpty(filterValue)) + { + // initial trigger state to get existing items + filterValue = DateTimeOffset.UtcNow.AddDays(-1).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + else + { + // remove triggerState + query.Remove("triggerState"); + } + + query["from_date"] = filterValue; + uriBuilder.Query = query.ToString(); + this.Context.Request.RequestUri = uriBuilder.Uri; + } - if (string.IsNullOrEmpty(triggerState) || items == null || items.Count == 0) - { - response.Content = null; - response.StatusCode = HttpStatusCode.Accepted; - } + if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + uriBuilder.Path = uriBuilder.Path.Replace("/signers/accounts/", "/accounts/"); + this.Context.Request.RequestUri = uriBuilder.Uri; + } - if (string.IsNullOrEmpty(triggerState)) - { - // initial trigger call - triggerState = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); - } + if ("GetLoginAccounts".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + query["include_account_id_guid"] = "true"; + uriBuilder.Query = query.ToString(); + this.Context.Request.RequestUri = uriBuilder.Uri; + } - if (items?.Count > 0) - { - triggerState = items.Max(x => DateTimeOffset.Parse(x["statusChangedDateTime"].ToString())).AddMilliseconds(10).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); - } + // update Accept Header + this.Context.Request.Headers.Accept.Clear(); + var acceptHeaderValue = "application/json"; + if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + acceptHeaderValue = "application/pdf"; + } - var locationUriBuilder = new UriBuilder(this.Context.OriginalRequestUri); - originalQuery["triggerState"] = triggerState; - locationUriBuilder.Query = originalQuery.ToString(); - response.Headers.Location = locationUriBuilder.Uri; - response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(120)); - } + this.Context.Request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(acceptHeaderValue)); + } - if (response.Content?.Headers?.ContentType != null) - { - if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) - { - response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); - } - else - { - response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); - } - } + private async Task UpdateResponse(HttpResponseMessage response) + { + if ("CreateHookEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) + && response.Headers?.Location != null) + { + var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + var body = ParseContentAsJObject(content, false); + response.Headers.Location = new Uri(string.Format( + "{0}/{1}", + this.Context.OriginalRequestUri.ToString(), + body.GetValue("connectId").ToString())); } - public class ConnectorException : Exception + if ("GetDynamicSigners".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) { - public ConnectorException( - HttpStatusCode statusCode, - string message, - Exception innerException = null) - : base( - message, - innerException) - { - this.StatusCode = statusCode; - } + var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); + var itemProperties = new JObject(); + var basePropertyDefinition = new JObject + { + ["type"] = "string", + ["x-ms-keyOrder"] = 0, + ["x-ms-keyType"] = "none", + ["x-ms-sort"] = "none", + }; + + foreach (var signer in (body["signers"] as JArray) ?? new JArray()) + { + var roleName = signer["roleName"]; + itemProperties[roleName + " Name"] = basePropertyDefinition.DeepClone(); + itemProperties[roleName + " Email"] = basePropertyDefinition.DeepClone(); + } + + var newBody = new JObject + { + ["name"] = "dynamicSchema", + ["title"] = "dynamicSchema", + ["x-ms-permission"] = "read-write", + ["schema"] = new JObject + { + ["type"] = "array", + ["items"] = new JObject + { + ["type"] = "object", + ["properties"] = itemProperties, + }, + }, + }; + + response.Content = new StringContent(newBody.ToString(), Encoding.UTF8, "application/json"); + } - public HttpStatusCode StatusCode { get; } + if ("OnEnvelopeStatusChanges".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var originalQuery = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var triggerState = originalQuery.Get("triggerState"); + var body = ParseContentAsJObject(await response.Content.ReadAsStringAsync().ConfigureAwait(false), false); + var items = body.SelectToken("envelopes") as JArray; + + if (string.IsNullOrEmpty(triggerState) || items == null || items.Count == 0) + { + response.Content = null; + response.StatusCode = HttpStatusCode.Accepted; + } + + if (string.IsNullOrEmpty(triggerState)) + { + // initial trigger call + triggerState = DateTimeOffset.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + + if (items?.Count > 0) + { + triggerState = items.Max(x => DateTimeOffset.Parse(x["statusChangedDateTime"].ToString())).AddMilliseconds(10).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + + var locationUriBuilder = new UriBuilder(this.Context.OriginalRequestUri); + originalQuery["triggerState"] = triggerState; + locationUriBuilder.Query = originalQuery.ToString(); + response.Headers.Location = locationUriBuilder.Uri; + response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(120)); + } - public override string ToString() - { - var error = new StringBuilder($"ConnectorException: Status code={this.StatusCode}, Message='{this.Message}'"); - var inner = this.InnerException; - var level = 0; - while (inner != null && level < 10) - { - level += 1; - error.AppendLine($"Inner exception {level}: {inner.Message}"); - inner = inner.InnerException; - } + if (response.Content?.Headers?.ContentType != null) + { + if ("GetDocuments".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); + } + else + { + response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); + } + } + } + + public class ConnectorException : Exception + { + public ConnectorException( + HttpStatusCode statusCode, + string message, + Exception innerException = null) + : base( + message, + innerException) + { + this.StatusCode = statusCode; + } - error.AppendLine($"Stack trace: {this.StackTrace}"); - return error.ToString(); - } + public HttpStatusCode StatusCode { get; } + + public override string ToString() + { + var error = new StringBuilder($"ConnectorException: Status code={this.StatusCode}, Message='{this.Message}'"); + var inner = this.InnerException; + var level = 0; + while (inner != null && level < 10) + { + level += 1; + error.AppendLine($"Inner exception {level}: {inner.Message}"); + inner = inner.InnerException; + } + + error.AppendLine($"Stack trace: {this.StackTrace}"); + return error.ToString(); } + } } \ No newline at end of file From 60e5b50098bc796cf18837159e603f7c668017c4 Mon Sep 17 00:00:00 2001 From: Tom Dutton Date: Fri, 5 Nov 2021 21:08:04 +0000 Subject: [PATCH 115/219] Softools connector (#1236) * Add softools connector * Add publisher and stackOwner * Add descriptions * Add description * Fix examples and remove ones that are for dynamic responses. * Remove dynamic examples * nl * nl * Remove tenant from securityDefinitions --- .../Softools/apiDefinition.swagger.json | 691 ++++++++++++++++++ .../Softools/apiProperties.json | 23 + certified-connectors/Softools/readme.MD | 47 ++ 3 files changed, 761 insertions(+) create mode 100644 certified-connectors/Softools/apiDefinition.swagger.json create mode 100644 certified-connectors/Softools/apiProperties.json create mode 100644 certified-connectors/Softools/readme.MD diff --git a/certified-connectors/Softools/apiDefinition.swagger.json b/certified-connectors/Softools/apiDefinition.swagger.json new file mode 100644 index 0000000000..471f92ded8 --- /dev/null +++ b/certified-connectors/Softools/apiDefinition.swagger.json @@ -0,0 +1,691 @@ +{ + "swagger": "2.0", + "info": { + "title": "Softools", + "version": "1.0", + "description": "Softools is a web-based application platform where off-the-shelf and custom apps can be designed, built and deployed in hours.", + "contact": { + "name": "Softools Support", + "url": "https://support.softools.net", + "email": "support@softools.net" + } + }, + "host": "api-gateway.softools.net", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/Api/Apps/{AppIdentifier}/Data/{RecordID}": { + "get": { + "description": "Gets a record", + "operationId": "Get-record", + "summary": "Get a Record", + "tags": [ + "Data" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "RecordID", + "in": "path", + "description": "Identifier of the record", + "required": true, + "type": "string", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response also includes all record data with field identifier as key", + "schema": { + "$ref": "#/definitions/Record-Response" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + }, + "delete": { + "description": "Archive a record. Call this before delete.", + "operationId": "Archive-record", + "summary": "Archive a record", + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "RecordID", + "in": "path", + "description": "Identifier of the record", + "required": true, + "type": "string", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response also includes all record data with field identifier as key", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + }, + "patch": { + "description": "The Softools Api caters for Delta updates, meaning you can send only the changes which are relevant and not the entire document per PATCH request.\n", + "operationId": "Patch-a-record", + "summary": "Patch a Record", + "tags": [ + "Data" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App. Can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "RecordID", + "in": "path", + "description": "Id of the record", + "required": true, + "type": "string", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + }, + { + "name": "update-record", + "in": "body", + "schema": { + "$ref": "#/definitions/Update-record" + }, + "description": "Payload of this request is a JSON object containing all the updated field values with their key being the field identifier." + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response contains the record object", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Data/Report/{ReportID}": { + "get": { + "description": "Gets a list of records from report, limited to 250 records per request.\nOnly returns report field data.\nCan iterate using $top and $skip", + "operationId": "Get-report-records", + "summary": "Get report records", + "tags": [ + "Data", + "Report" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "ReportID", + "in": "path", + "description": "Id of report\n\n", + "required": true, + "type": "number", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "$skip", + "in": "query", + "description": "Skips records, setting to 1 will return the second record", + "type": "number", + "x-ms-summary": "Number or records to skip", + "required": true + }, + { + "name": "$top", + "in": "query", + "description": "The number of records to return, max = 250", + "type": "number", + "x-ms-summary": "Number or records to take", + "required": true + }, + { + "name": "$orderby", + "in": "query", + "description": "Field to order by\n[fieldIdentifier] asc/desc", + "type": "string", + "x-ms-summary": "The field indentifier to order by in braces [FieldIdentifier]" + }, + { + "name": "$filter", + "in": "query", + "description": "Provide an oData filter string to filter records by.\nIn the form\n[fieldIdentifier] operation filterValue\nExample\n[textField] eq 'Text'\n\nOperators allowed \nEq\t Equal\t /Suppliers?$filter=[City] eq 'Redmond'\nNe\t Not equal\t /Suppliers?$filter=[City] ne 'London'\nGt\t Greater than\t /Products?$filter=[Price] gt 20\nGe\t Greater than or equal\t/Products?$filter=[Price] ge 10\nLt\t Less than\t /Products?$filter=[Price] lt 20\nLe\t Less than or equal\t /Products?$filter=[Price] le 100\nAnd\t Logical and\t /Products?$filter=[Price] le 200 and Price gt 3.5\n", + "type": "string", + "x-ms-summary": "Odata filter example [TextField1] eq 'My record'", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response containing an array of records from a report", + "schema": { + "$ref": "#/definitions/List-record-response" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Data": { + "post": { + "description": "Send all field values including defaults when adding a new record to an App", + "operationId": "Post-a-record", + "summary": "Create a record", + "tags": [ + "Data" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + }, + { + "name": "records", + "in": "body", + "schema": { + "$ref": "#/definitions/Records" + }, + "x-ms-summary": "An array of Softools records" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response contains the record object", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Fields": { + "get": { + "description": "Get basic field data for an app", + "operationId": "Get-basic-field-info", + "summary": "Get basic field info", + "tags": [ + "Apps" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "Tenant is usually in the site url {tenant}.off.softools.net, however sometimes this is an alias. \nContact systems administrator to confirm it.", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response containing fields that are part of the app", + "schema": { + "$ref": "#/definitions/basic-fields-response" + }, + "examples": { + "application/json": "{\n \"identifier\": \"FieldIdentifier\",\n \"Type\": 1\n}" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Data/": { + "get": { + "description": "Gets a list of all records from app.\nCan iterate using $top and $skip", + "operationId": "Get-all-records", + "summary": "Get all records", + "tags": [ + "Data" + ], + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "$skip", + "in": "query", + "description": "Skips records, setting to 1 will return the second record", + "type": "number", + "x-ms-summary": "Number or records to skip", + "required": true + }, + { + "name": "$top", + "in": "query", + "description": "The number of records to return, max = 250", + "type": "number", + "x-ms-summary": "Number or records to take", + "required": true + }, + { + "name": "$orderby", + "in": "query", + "description": "Field to order by\n[fieldIdentifier] asc/desc", + "type": "string", + "x-ms-summary": "The field indentifier to order by in braces [FieldIdentifier]" + }, + { + "name": "$filter", + "in": "query", + "description": "Provide an oData filter string to filter records by.\nIn the form\n[fieldIdentifier] operation filterValue\nExample\n[textField] eq 'Text'\n\nOperators allowed \nEq\t Equal\t /Suppliers?$filter=[City] eq 'Redmond'\nNe\t Not equal\t /Suppliers?$filter=[City] ne 'London'\nGt\t Greater than\t /Products?$filter=[Price] gt 20\nGe\t Greater than or equal\t/Products?$filter=[Price] ge 10\nLt\t Less than\t /Products?$filter=[Price] lt 20\nLe\t Less than or equal\t /Products?$filter=[Price] le 100\nAnd\t Logical and\t /Products?$filter=[Price] le 200 and Price gt 3.5\n", + "type": "string", + "x-ms-summary": "Odata filter example [TextField1] eq 'My record'" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response containing a list of records", + "schema": { + "$ref": "#/definitions/List-record-response" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Data/{RecordID}/Archived": { + "delete": { + "description": "Delete a record. To delete a record you need to archive first.", + "operationId": "Delete-record", + "summary": "Delete a record", + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "RecordID", + "in": "path", + "description": "Identifier of the record", + "required": true, + "type": "string", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response also includes all record data with field identifier as key", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + }, + "/Api/Apps/{AppIdentifier}/Data/{RecordID}/Unarchive": { + "post": { + "description": "Unarchive a record.", + "operationId": "Unarchived-record", + "summary": "Unarchive a record", + "parameters": [ + { + "name": "AppIdentifier", + "in": "path", + "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", + "required": true, + "type": "string", + "x-ms-summary": "Identifier for the App", + "x-ms-url-encoding": "single" + }, + { + "name": "RecordID", + "in": "path", + "description": "Identifier of the record", + "required": true, + "type": "string", + "x-ms-summary": "Identifier of the record", + "x-ms-url-encoding": "single" + }, + { + "name": "tenant", + "in": "header", + "description": "The tenant can be obtained from your system administrator", + "required": true, + "type": "string", + "x-ms-summary": "The tenant you want to connect too", + "x-ms-url-encoding": "single" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Response also includes all record data with field identifier as key", + "schema": { + "$ref": "#/definitions/Message" + } + }, + "401": { + "description": "Unauthorized", + "examples": { + "application/json": "{\n \"Message\": \"Authorization has been denied for this request.\"\n}" + } + } + } + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.softools.net" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.softools.net/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Intelligence;Data" + } + ], + "definitions": { + "Message": { + "type": "object", + "properties": { + "Message": { + "type": "string" + } + }, + "example": { + "Message": "string" + } + }, + "Records": { + "type": "object" + }, + "basic-fields-response": { + "type": "object", + "properties": { + "identifier": { + "type": "string" + }, + "Type": { + "type": "integer" + } + } + }, + "List-record-response": { + "type": "array", + "items": {} + }, + "Record-Response": { + "type": "object", + "properties": { + "_id": { + "type": "string" + }, + "AppIdentifier": { + "type": "string" + }, + "CreatedByUserId": { + "type": "string" + }, + "CreatedByUser": { + "type": "string" + }, + "CreatedDate": { + "type": "object", + "properties": { + "$date": { + "type": "integer" + } + } + }, + "UpdatedByUserId": { + "type": "string" + }, + "UpdatedByUser": { + "type": "string" + }, + "UpdatedDate": { + "type": "object", + "properties": { + "$date": { + "type": "integer" + } + } + }, + "Identifier": { + "type": "string" + }, + "QuickFilterSearchText": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "EditableAccessForUser": { + "type": "boolean" + } + } + }, + "Report-Field": { + "type": "array", + "items": {} + }, + "Update-record": { + "type": "object" + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "apikey" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [] +} diff --git a/certified-connectors/Softools/apiProperties.json b/certified-connectors/Softools/apiProperties.json new file mode 100644 index 0000000000..d7fcc46f23 --- /dev/null +++ b/certified-connectors/Softools/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "capabilities": [], + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "constraints": { + "clearText": false, + "required": "true", + "tabIndex": 2 + }, + "description": "The KEY for this API", + "displayName": "KEY", + "tooltip": "Provide your KEY" + } + } + }, + "iconBrandColor": "#ee8426", + "publisher": "Softools Limited", + "stackOwner": "Softools Limited" + } +} diff --git a/certified-connectors/Softools/readme.MD b/certified-connectors/Softools/readme.MD new file mode 100644 index 0000000000..82570f7b6c --- /dev/null +++ b/certified-connectors/Softools/readme.MD @@ -0,0 +1,47 @@ +# Softools Connector + +[Softools](https://www.softools.net) is a leading NoCode platform for building business process applications. + +# Pre-requisites +Users require an Enterprise License or have a Softools site to use our apis. + +An API Key is required to call the API, this can be found under ```My Profile``` on your Softools Site. + +An ```App Identifier``` is required from most API calls. + +# Supported API Calls +```Get a record``` +Use to get an app from a Softools App. + +```Patch a record``` +Use to update a record. + +```Post a record``` +Use to create a new record. + +```Archive a record``` +Use to archive a record. + +```Unarchive a record``` +Use to unarchive a record. + +```Delete a record``` +You must call archive first. +Use to delete a record + +```Get report records``` +Returns all records and properties that are defined in a report. +Filter using odata ```[TextField] eq "test"``` or ```[NumberField] eq 1``` +Order by ```[TextField] desc``` or ```[NumberField] asc``` +Skip and Top should be used to limit the data returned. + +```Get records``` +This will return all properties on a record, we recommend using get report records over this. + +```Get app fields``` +Returns the apps defined in the app + +# Support Site +Rate limits can be found [here](https://developer.softools.net/Rate-limits) + +More support documentation can be found [here](https://support.softools.net) From 0c106e14f00384e2fd59a2747806e4a5b777e055 Mon Sep 17 00:00:00 2001 From: johannesh-recordedfuture <58779625+johannesh-recordedfuture@users.noreply.github.com> Date: Tue, 9 Nov 2021 01:43:21 +0100 Subject: [PATCH 116/219] Fix swagger issues discovered during preview testing (#1244) --- .../apiDefinition.swagger.json | 106 ++++++++++++++---- 1 file changed, 83 insertions(+), 23 deletions(-) diff --git a/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json index 92b7bdbf40..7c5130ab4a 100644 --- a/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json +++ b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json @@ -901,7 +901,7 @@ "type":"string" }, "Timestamp":{ - "type":"string" + "type":"integer" }, "MitigationString":{ "type":"string" @@ -1133,7 +1133,64 @@ "200":{ "description":"Default", "schema":{ - "type":"string" + "type":"object", + "properties": { + "counts": { + "type": "object", + "properties": { + "returned": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } + }, + "data": { + "type": "object", + "properties": { + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "entity": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "risk": { + "type": "object", + "properties": { + "context": { + "type": "object" + }, + "level": { + "type": "number" + }, + "rule": { + "type": "object" + }, + "score": { + "type": "number" + } + } + } + } + } + } + } + } + } } } }, @@ -1452,30 +1509,33 @@ "type":"object", "properties":{ "references":{ - "type":"object", - "properties":{ - "fragment":{ - "type":"string" - }, - "entities":{ - "type":"array", - "items":{ - "type":"object", - "properties":{ - "id":{ - "type":"string" - }, - "name":{ - "type":"string" - }, - "type":{ - "type":"string" + "type":"array", + "items":{ + "type": "object", + "properties": { + "fragment": { + "type": "string" + }, + "entities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } } } + }, + "language": { + "type": "string" } - }, - "language":{ - "type":"string" } } }, From 5a6c3848e3883f3afe0192ee6ede81f411b61e50 Mon Sep 17 00:00:00 2001 From: Tom Dutton Date: Tue, 9 Nov 2021 00:43:49 +0000 Subject: [PATCH 117/219] Feedback fixes for the Softools Connector (#1243) * Add softools connector * Add publisher and stackOwner * Add descriptions * Add description * Fix examples and remove ones that are for dynamic responses. * Remove dynamic examples * nl * nl * Remove tenant from securityDefinitions * Feedback fixes --- .../Softools/apiDefinition.swagger.json | 59 ++++++++++--------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/certified-connectors/Softools/apiDefinition.swagger.json b/certified-connectors/Softools/apiDefinition.swagger.json index 471f92ded8..ee8fa722d1 100644 --- a/certified-connectors/Softools/apiDefinition.swagger.json +++ b/certified-connectors/Softools/apiDefinition.swagger.json @@ -33,7 +33,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -51,7 +51,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -84,7 +84,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -102,7 +102,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -138,7 +138,7 @@ "description": "Identifier for the App. Can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -156,7 +156,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" }, { @@ -206,7 +206,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -255,7 +255,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -293,7 +293,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -302,7 +302,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" }, { @@ -311,7 +311,7 @@ "schema": { "$ref": "#/definitions/Records" }, - "x-ms-summary": "An array of Softools records" + "x-ms-summary": "Json record" } ], "consumes": [ @@ -351,7 +351,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -360,7 +360,7 @@ "description": "Tenant is usually in the site url {tenant}.off.softools.net, however sometimes this is an alias. \nContact systems administrator to confirm it.", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -374,7 +374,7 @@ "$ref": "#/definitions/basic-fields-response" }, "examples": { - "application/json": "{\n \"identifier\": \"FieldIdentifier\",\n \"Type\": 1\n}" + "application/json": "[{\n \"identifier\": \"FieldIdentifier\",\n \"Type\": 1\n}]" } }, "401": { @@ -401,7 +401,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -440,7 +440,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -475,7 +475,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -493,7 +493,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -528,7 +528,7 @@ "description": "Identifier for the App, can be found in the app Url /App/{AppIdentifier} or /{AppIdentifier}", "required": true, "type": "string", - "x-ms-summary": "Identifier for the App", + "x-ms-summary": "App Identifier", "x-ms-url-encoding": "single" }, { @@ -546,7 +546,7 @@ "description": "The tenant can be obtained from your system administrator", "required": true, "type": "string", - "x-ms-summary": "The tenant you want to connect too", + "x-ms-summary": "Tenant Identifier", "x-ms-url-encoding": "single" } ], @@ -600,13 +600,16 @@ "type": "object" }, "basic-fields-response": { - "type": "object", - "properties": { - "identifier": { - "type": "string" - }, - "Type": { - "type": "integer" + "type": "array", + "items": { + "type": "object", + "properties": { + "Identifier": { + "type": "string" + }, + "Type": { + "type": "integer" + } } } }, @@ -688,4 +691,4 @@ } ], "tags": [] -} +} \ No newline at end of file From 2796c4dbfbd202eb05b86c473e3ca8ac88dcb4c9 Mon Sep 17 00:00:00 2001 From: RoyPaarMS <86677937+RoyPaarMS@users.noreply.github.com> Date: Mon, 8 Nov 2021 19:35:26 -0600 Subject: [PATCH 118/219] Microsoft D365CE v9 OnPrem (Independent Publisher) (#1172) * Initial Commit to my fork on GitHub Initial Commit * Microsoft D365CE v9 OnPrem (Independent Publisher) Changed summary * Microsoft D365CE v9 OnPrem Minor edits * Microsoft D365CE v9 OnPrem (Independent Publisher) Minor edits * Update readme.md * Microsoft D365CE v9 OnPrem (Independent Publisher) Updated readme * Microsoft D365CE v9 OnPrem (Independent Publisher) Minor edits * Microsoft D365CE v9 OnPrem (Independent Publisher) Remove file * Microsoft D365CE v9 OnPrem (Independent Publisher) Remove file * Microsoft D365CE v9 OnPrem (Independent Publisher) Minor edits * Microsoft D365CE v9 OnPrem (Independent Publisher) Updated connectionParameters * Coinbase (Independent Publisher) Initial Commit * Coinbase (Independent Publisher) Updated stackOwner * Coinbase (Independent Publisher) Updated readme. * Microsoft D365CE v9 OnPrem (Independent Publisher) Removed Coinbase --- .../apiDefinition.swagger.json | 430 ++++++++++++++++++ .../apiProperties.json | 41 ++ .../Microsoft D365CE v9 OnPrem/readme.md | 84 ++++ 3 files changed, 555 insertions(+) create mode 100644 independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiProperties.json create mode 100644 independent-publisher-connectors/Microsoft D365CE v9 OnPrem/readme.md diff --git a/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiDefinition.swagger.json b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiDefinition.swagger.json new file mode 100644 index 0000000000..9b14af02d6 --- /dev/null +++ b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiDefinition.swagger.json @@ -0,0 +1,430 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Microsoft D365CE v9 OnPrem", + "description": "Microsoft Dynamics 365 CE v9 Web API for interacting with on-premises D365 CE data from cloud D365 CE", + "contact": { + "name": "Roy Paar", + "email": "roypaar@microsoft.com" + } + }, + "host": "YOURONPREMCRMURL.COM", + "basePath": "/CRMORGNAME/api/data/v9.0/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/contacts({contactGUID})": { + "patch": { + "summary": "Upsert Contact", + "description": "Request to insert or update a contact record from cloud D365 CE to onprem D365 CE", + "operationId": "UpsertContact", + "parameters": [ + { + "name": "contactGUID", + "required": true, + "in": "path", + "type": "string", + "description": "The contact GUID of the cloud record", + "x-ms-summary": "Contact GUID" + }, + { + "name": "OData-MaxVersion", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-MaxVersion", + "x-ms-summary": "OData MaxVersion" + }, + { + "name": "OData-Version", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-Version", + "x-ms-summary": "OData Version" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": " application/json", + "description": "Accept", + "x-ms-summary": "Accept" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": " application/json; charset=utf-8", + "description": "Content-Type", + "x-ms-summary": "Content Type" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "firstname": { + "type": "string", + "description": "First Name" + }, + "lastname": { + "type": "string", + "description": "Last Name" + }, + "middlename": { + "type": "string", + "description": "Middle Name" + }, + "birthdate": { + "type": "string", + "description": "Birthdate" + }, + "customertypecode": { + "type": "string", + "description": "Customer Type Code" + }, + "emailaddress1": { + "type": "string", + "description": "Email Address 1" + }, + "emailaddress2": { + "type": "string", + "description": "Email Address 2" + }, + "telephone1": { + "type": "string", + "description": "Telephone 1" + }, + "telephone2": { + "type": "string", + "description": "Telephone 2" + }, + "telephone3": { + "type": "string", + "description": "Telephone 3" + }, + "mobilephone": { + "type": "string", + "description": "Mobile Phone" + }, + "address1_line1": { + "type": "string", + "description": "Address 1 Line 1" + }, + "address1_line2": { + "type": "string", + "description": "Address 1 Line 2" + }, + "address1_city": { + "type": "string", + "description": "Address 1 City" + }, + "address1_stateorprovince": { + "type": "string", + "description": "Address 1 State or Province" + }, + "address1_postalcode": { + "type": "string", + "description": "Address 1 Postal Code" + }, + "address1_county": { + "type": "string", + "description": "Address 1 County" + } + }, + "default": { + "firstname": "First", + "lastname": "Last" + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/UpsertContactResponse" + } + } + } + } + }, + "/accounts({accountGUID})": { + "patch": { + "summary": "Upsert Account", + "description": "Request to insert or update an account record from cloud D365 CE to onprem D365 CE", + "operationId": "UpsertAccount", + "parameters": [ + { + "name": "accountGUID", + "required": true, + "in": "path", + "type": "string", + "description": "The account GUID of the cloud record", + "x-ms-summary": "Account GUID" + }, + { + "name": "OData-MaxVersion", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-MaxVersion", + "x-ms-summary": "OData MaxVersion" + }, + { + "name": "OData-Version", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-Version", + "x-ms-summary": "OData Version" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": " application/json", + "description": "Accept", + "x-ms-summary": "Accept" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": " application/json; charset=utf-8", + "description": "Content-Type", + "x-ms-summary": "Content Type" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name" + }, + "address1_line1": { + "type": "string", + "description": "Address 1 Line 1" + }, + "address1_line2": { + "type": "string", + "description": "Address 1 Line 2" + }, + "address1_city": { + "type": "string", + "description": "Address 1 City" + }, + "address1_stateorprovince": { + "type": "string", + "description": "Address 1 State or Province" + }, + "address1_postalcode": { + "type": "string", + "description": "Address 1 Postal Code" + }, + "address1_county": { + "type": "string", + "description": "Address 1 County" + } + }, + "default": { + "name": "Account" + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/UpsertAccountResponse" + } + } + } + } + }, + "/leads({leadGUID})": { + "patch": { + "summary": "Upsert Lead", + "description": "Request to insert or update a lead record from cloud D365 CE to onprem D365 CE", + "operationId": "UpsertLead", + "parameters": [ + { + "name": "leadGUID", + "required": true, + "in": "path", + "type": "string", + "description": "The lead GUID of the cloud record", + "x-ms-summary": "Lead GUID" + }, + { + "name": "OData-MaxVersion", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-MaxVersion", + "x-ms-summary": "OData MaxVersion" + }, + { + "name": "OData-Version", + "in": "header", + "required": true, + "type": "string", + "default": " 4.0", + "description": "OData-Version", + "x-ms-summary": "OData Version" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": " application/json", + "description": "Accept", + "x-ms-summary": "Accept" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": " application/json; charset=utf-8", + "description": "Content-Type", + "x-ms-summary": "Content Type" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "fullname": { + "type": "string", + "description": "Full Name" + }, + "emailaddress1": { + "type": "string", + "description": "Email Address 1" + }, + "telephone1": { + "type": "string", + "description": "Telephone 1" + } + }, + "default": { + "fullname": "John Smith" + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/UpsertLeadResponse" + } + } + } + } + } + }, + "definitions": { + "UpsertContactResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "UpsertLeadResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "UpsertAccountResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "statusDetails": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "statusCode": { + "type": "string" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/messages" + } + } + } + }, + "messages": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://dynamics.microsoft.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://docs.microsoft.com/en-us/dynamics365/get-started/gdpr/" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiProperties.json b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiProperties.json new file mode 100644 index 0000000000..175ff88c5f --- /dev/null +++ b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/apiProperties.json @@ -0,0 +1,41 @@ +{ + "properties": { + "connectionParameters": { + "hostUrl": { + "type": "string", + "uiDefinition": { + "constraints": { + "required": "true" + }, + "description": "Specify your on-premises CRM URL e.g. https://test.contoso.com", + "displayName": "Host URL", + "tooltip": "Specify your on-premises CRM URL e.g. https://test.contoso.com" + } + }, + "orgName": { + "type": "string", + "uiDefinition": { + "constraints": { + "required": "true" + }, + "description": "Specify your on-premises CRM Org Name e.g. org12398y320", + "displayName": "Org Name", + "tooltip": "Specify your on-premises CRM Org Name e.g. org12398y320" + } + } + }, + "capabilities": [], + "publisher": "Roy Paar", + "iconBrandColor": "#da3b01", + "stackOwner": "Microsoft", + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "Host Url", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@ConnectionParameters('hostUrl')/@ConnectionParameters('orgName')/api/data/v9.0/" + } + } + ] + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/readme.md b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/readme.md new file mode 100644 index 0000000000..b1b6b2137e --- /dev/null +++ b/independent-publisher-connectors/Microsoft D365CE v9 OnPrem/readme.md @@ -0,0 +1,84 @@ +# Microsoft D365CE v9 OnPrem +Microsoft Dynamics 365 Customer Engagement v9 is a CRM platform created by Microsoft. This connector allows connection to a non-IFD on-premises environment using the web API through a data gateway. + +## Publisher +Roy Paar + +## Prerequisites +This connector uses Windows authentication. You must first install an on-premises data gateway in order to access your on-premises D365 CE environment via API. Follow documentation here. https://docs.microsoft.com/en-us/data-integration/gateway/service-gateway-onprem + +Once your gateway/cluster has been installed on-premises, it will be visible in the Power Platform under Dataverse > Gateways. + +After deploying this connector to your cloud tenant, you must modify the following values in the General tab of the connector page: + +1. Check the "Connect via on-premises data gateway" box (you will choose the gateway later when you create a connection) +2. Replace the "Host" value with your D365 on-premises address using the format in the example (NOTE: D365 CE on-premise does not need to be internet-facing i.e. IFD) +3. Replace the "Base URL" value with your D365 on-premises org name (get this value from Customizations > Developer Resources > Service Root URL) + +On the Security tab, ensure Windows Authentication is selected. + +Update the Connector in the upper right corner to save your changes. + +On the Test tab, create a new connection. In the authentication screen, enter the Windows Authentication credentials required by the on-premises environment and choose your gateway. Manually input a contact GUID from the D365 CE online environment and test the service. Navigate to the on-premises environment and validate that the contact has been created with the same GUID. + +Perform another test with the same GUID, using different data (update scenario). Validate the the existing contact on-premises reflects your change. + +At this point you have successfully connected to your on-premises D365 CE instance and can now leverage this custom connector in Power Automate / Logic Apps. In your flow, add a new action and choose the "Custom" tab to find the connector. + +## Supported Operations +### Upsert Contact (Patch) +Calls the D365CE v9 web API to either insert or update a contact in your on-premises environment based on the same action in D365 CE online. + +Once connector has been installed in your cloud environment and connection to on-premises environment has been established, use this connector in Power Automate or Logic Apps to perform the on-premises update based on any trigger (i.e. cloud contact phone number is changed). + +Currently only the following contact data points are available to update on-premises. + +1. firstname +2. lastname +3. middlename +4. birthdate +5. customertypecode +6. emailaddress1 +7. emailaddress2 +8. telephone1 +9. telephone2 +10. telephone3 +11. mobilephone +12. address1_line1 +13. address1_line2 +14. address1_city +15. address1_stateorprovince +16. address1_postalcode +17. address1_county + +### Upsert Account (Patch) +Calls the D365CE v9 web API to either insert or update an account in your on-premises environment based on the same action in D365 CE online. + +Once connector has been installed in your cloud environment and connection to on-premises environment has been established, use this connector in Power Automate or Logic Apps to perform the on-premises update based on any trigger (i.e. cloud account name is changed). + +Currently only the following account data points are available to update on-premises. + +1. name +2. address1_line +3. address1_line +4. address1_city +5. address1_stateorprovince +6. address1_postalcode +7. address1_county + +### Upsert Lead (Patch) +Calls the D365CE v9 web API to either insert or update a lead in your on-premises environment based on the same action in D365 CE online. + +Once connector has been installed in your cloud environment and connection to on-premises environment has been established, use this connector in Power Automate or Logic Apps to perform the on-premises update based on any trigger (i.e. cloud lead phone number is changed). + +Currently only the following lead data points are available to update on-premises. + +1. fullname +2. emailaddress1 +3. telephone1 + +## API Documentation +Visit the Microsoft Docs site for D365 CE API usage. https://docs.microsoft.com/en-us/powerapps/developer/data-platform/webapi/update-delete-entities-using-web-api#upsert-a-table + +## Known Issues and Limitations +None. From a6f56029a1668e9559a3a3d1661b0fd21d540131 Mon Sep 17 00:00:00 2001 From: Srikanth Yenagandhula <56276394+sriyen-msft@users.noreply.github.com> Date: Tue, 9 Nov 2021 10:58:38 -0800 Subject: [PATCH 119/219] Updated template text for readme.md (#1247) Updated template text for readme.md --- templates/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/readme.md b/templates/readme.md index 16e1a7b52a..9c8ec00819 100644 --- a/templates/readme.md +++ b/templates/readme.md @@ -2,7 +2,7 @@ Required. One paragraph, two to three sentences about the service and the connector​. ## Publisher: Publisher's Name -Required for Independent-Publisher-Connector and should be a first and last name of an individual or it can be a company name. ​If there is more than one publisher, please separate the names with a comma.​ +Required. For Independent-Publisher-Connector, it should be a first and last name of an individual or it can be a company name. ​If there is more than one publisher, please separate the names with a comma.​ ## Prerequisites Required. Any plans or licenses, tools required from the connector.​ From d29d75fa0b7cc2f0fe6b8137cd9a06c6b235f0a3 Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Tue, 9 Nov 2021 15:28:19 -0500 Subject: [PATCH 120/219] Launch Library 2 by The Space Devs (Independent Publisher) (#1223) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload --- .../apiDefinition.swagger.json | 9569 +++++++++++++++++ .../Launch Library 2/apiProperties.json | 9 + .../Launch Library 2/readme.md | 156 + 3 files changed, 9734 insertions(+) create mode 100644 independent-publisher-connectors/Launch Library 2/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Launch Library 2/apiProperties.json create mode 100644 independent-publisher-connectors/Launch Library 2/readme.md diff --git a/independent-publisher-connectors/Launch Library 2/apiDefinition.swagger.json b/independent-publisher-connectors/Launch Library 2/apiDefinition.swagger.json new file mode 100644 index 0000000000..958343b60e --- /dev/null +++ b/independent-publisher-connectors/Launch Library 2/apiDefinition.swagger.json @@ -0,0 +1,9569 @@ +{ + "swagger": "2.0", + "info": { + "title": "Launch Library 2", + "description": "The Launch Library 2 API is a product by The Space Devs with an up-to-date database of Spaceflight events. While this API is free to use it is subject to rate limiting for non-authenticated requests.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "ll.thespacedevs.com", + "basePath": "/2.2.0", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/agencies/": { + "get": { + "operationId": "Agencies_list", + "description": "Get all agencies.", + "parameters": [ + { + "name": "featured", + "in": "query", + "x-ms-summary": "Featured", + "description": "Whether featured.", + "required": false, + "type": "boolean" + }, + { + "name": "agency_type", + "in": "query", + "x-ms-summary": "Agency Type", + "description": "The agency type.", + "required": false, + "type": "string" + }, + { + "name": "country_code", + "in": "query", + "x-ms-summary": "Country Code", + "description": "The country code.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Agency" + } + } + } + } + } + }, + "tags": [ + "agencies" + ], + "summary": "Get all agencies" + } + }, + "/agencies/{id}/": { + "get": { + "operationId": "Agencies_read", + "description": "Get an agency.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Astronaut.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AgencySerializerDetailed" + } + } + }, + "tags": [ + "agencies" + ], + "summary": "Get an agency" + } + }, + "/astronaut/": { + "get": { + "operationId": "Astronaut_list", + "description": "Get all astronauts.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "nationality", + "in": "query", + "x-ms-summary": "Nationality", + "description": "The astronaut's nationality.", + "required": false, + "type": "string" + }, + { + "name": "date_of_death", + "in": "query", + "x-ms-summary": "Date of death", + "description": "The astronaut's date of death.", + "required": false, + "type": "string" + }, + { + "name": "agency__abbrev", + "in": "query", + "x-ms-summary": "Agency Abbreviation", + "description": "The astronaut's agency abbreviation.", + "required": false, + "type": "string" + }, + { + "name": "agency__name", + "in": "query", + "x-ms-summary": "Agency Name", + "description": "The astronaut's agency name.", + "required": false, + "type": "string" + }, + { + "name": "date_of_birth", + "in": "query", + "x-ms-summary": "Date of Birth", + "description": "The astronaut's date of birth.", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "date_of_birth__gt", + "in": "query", + "x-ms-summary": "Date of Birth GT", + "description": "The astronaut's date of birth greater than.", + "required": false, + "type": "string" + }, + { + "name": "date_of_birth__lt", + "in": "query", + "x-ms-summary": "Date of Birth LT", + "description": "The astronaut's date of birth less than.", + "required": false, + "type": "string" + }, + { + "name": "date_of_birth__gte", + "in": "query", + "x-ms-summary": "Date of Birth GTE", + "description": "The astronaut's date of birth greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "date_of_birth__lte", + "in": "query", + "x-ms-summary": "Date of Birth LTE", + "description": "The astronaut's date of birth less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "date_of_death__gt", + "in": "query", + "x-ms-summary": "Date of Birth GT", + "description": "The astronaut's date of death greater than.", + "required": false, + "type": "string" + }, + { + "name": "date_of_death__lt", + "in": "query", + "x-ms-summary": "Date of Birth LT", + "description": "The astronaut's date of death less than.", + "required": false, + "type": "string" + }, + { + "name": "date_of_death__gte", + "in": "query", + "x-ms-summary": "Date of Birth GTE", + "description": "The astronaut's date of death greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "date_of_death__lte", + "in": "query", + "x-ms-summary": "Date of Birth LTE", + "description": "The astronaut's date of death less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/AstronautNormal" + } + } + } + } + } + }, + "tags": [ + "astronaut" + ], + "summary": "Get all astronauts" + } + }, + "/astronaut/{id}/": { + "get": { + "operationId": "Astronaut_read", + "description": "Get an astronaut.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Astronaut.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AstronautDetailed" + } + } + }, + "tags": [ + "astronaut" + ], + "summary": "Get an astronaut" + } + }, + "/config/agencytype/": { + "get": { + "operationId": "Config_agencytype_list", + "description": "Get agency configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/AgencyType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get agency configuration" + } + }, + "/config/agencytype/{id}/": { + "get": { + "operationId": "Config_agencytype_read", + "description": "Get an agency configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique value identifying this agency type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AgencyType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an agency configuration" + } + }, + "/config/astronautrole/": { + "get": { + "operationId": "Config_astronautrole_list", + "description": "Get astronaut role configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/AstronautRole" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get astronaut role configuration" + } + }, + "/config/astronautrole/{id}/": { + "get": { + "operationId": "Config_astronautrole_read", + "description": "Get astronaut role configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Astronaut Role.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AstronautRole" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an astronaut role configuration" + } + }, + "/config/astronautstatus/": { + "get": { + "operationId": "Config_astronautstatus_list", + "description": "Get astronaut status configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/AstronautStatus" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get astronaut status configuration" + } + }, + "/config/astronautstatus/{id}/": { + "get": { + "operationId": "Config_astronautstatus_read", + "description": "Get an astronaut status configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Astronaut Status.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AstronautStatus" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an astronaut status configuration" + } + }, + "/config/astronauttype/": { + "get": { + "operationId": "Config_astronauttype_list", + "description": "Get astronaut type configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/AstronautType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get astronaut type configuration" + } + }, + "/config/astronauttype/{id}/": { + "get": { + "operationId": "Config_astronauttype_read", + "description": "Get an astronaut type configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Astronaut Type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/AstronautType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an astronaut type configuration" + } + }, + "/config/dockinglocation/": { + "get": { + "operationId": "Config_dockinglocation_list", + "description": "Get docking location configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/DockingLocation" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get docking location configuration" + } + }, + "/config/dockinglocation/{id}/": { + "get": { + "operationId": "Config_dockinglocation_read", + "description": "Get a docking location configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Docking Location.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DockingLocation" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a docking location configuration" + } + }, + "/config/eventtype/": { + "get": { + "operationId": "Config_eventtype_list", + "description": "Get event type configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/EventType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get event type configuration" + } + }, + "/config/eventtype/{id}/": { + "get": { + "operationId": "Config_eventtype_read", + "description": "Get an event type configuration", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique value identifying this event type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/EventType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an event type configuration" + } + }, + "/config/firststagetype/": { + "get": { + "operationId": "Config_firststagetype_list", + "description": "Get first stage type configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/FirstStageType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get first stage type configuration" + } + }, + "/config/firststagetype/{id}/": { + "get": { + "operationId": "Config_firststagetype_read", + "description": "Get a first stage type configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique value identifying this first stage type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/FirstStageType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a first stage type configuration" + } + }, + "/config/landinglocation/": { + "get": { + "operationId": "Config_landinglocation_list", + "description": "Get landing location configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LandingLocation" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get landing location configuration" + } + }, + "/config/landinglocation/{id}/": { + "get": { + "operationId": "Config_landinglocation_read", + "description": "Get a landing location configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this landing location.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LandingLocation" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a landing location configuration" + } + }, + "/config/launcher/": { + "get": { + "operationId": "Config_launcher_list", + "description": "Get launcher configuration.", + "parameters": [ + { + "name": "family", + "in": "query", + "x-ms-summary": "Family", + "description": "The launcher family.", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "manufacturer", + "in": "query", + "x-ms-summary": "Manufacturer", + "description": "The manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "full_name", + "in": "query", + "x-ms-summary": "Full Name", + "description": "The full name.", + "required": false, + "type": "string" + }, + { + "name": "active", + "in": "query", + "x-ms-summary": "Active", + "description": "Whether active.", + "required": false, + "type": "string" + }, + { + "name": "reusable", + "in": "query", + "x-ms-summary": "Reusable", + "description": "Whether reusable.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LauncherConfig" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get launcher configuration" + } + }, + "/config/launcher/{id}/": { + "get": { + "operationId": "Config_launcher_read", + "description": "Get a launcher configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Launcher Configuration.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LauncherConfigDetail" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get launcher configuration" + } + }, + "/config/launchstatus/": { + "get": { + "operationId": "Config_launchstatus_list", + "description": "Get launch status configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LaunchStatus" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get launch status configuration" + } + }, + "/config/launchstatus/{id}/": { + "get": { + "operationId": "Config_launchstatus_read", + "description": "Get a launch status configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique value identifying this Launch Status.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LaunchStatus" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a launch status configuration" + } + }, + "/config/missiontype/": { + "get": { + "operationId": "Config_missiontype_list", + "description": "Get mission type configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/MissionType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get mission type configuration" + } + }, + "/config/missiontype/{id}/": { + "get": { + "operationId": "Config_missiontype_read", + "description": "Get a mission type configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique value identifying this mission type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/MissionType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a mission type configuration" + } + }, + "/config/noticetype/": { + "get": { + "operationId": "Config_noticetype_list", + "description": "Get notice type configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/NoticeType" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get notice type configuration" + } + }, + "/config/noticetype/{id}/": { + "get": { + "operationId": "Config_noticetype_read", + "description": "Get a notice type configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Notices Type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NoticeType" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a notice type configuration" + } + }, + "/config/orbit/": { + "get": { + "operationId": "Config_orbit_list", + "description": "Get orbit configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Orbit" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get orbit configuration" + } + }, + "/config/orbit/{id}/": { + "get": { + "operationId": "Config_orbit_read", + "description": "Get an orbit configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Orbit.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Orbit" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get an orbit configuration" + } + }, + "/config/roadclosurestatus/": { + "get": { + "operationId": "Config_roadclosurestatus_list", + "description": "Get road closure status configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/RoadClosureStatus" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get road closure status configuration" + } + }, + "/config/roadclosurestatus/{id}/": { + "get": { + "operationId": "Config_roadclosurestatus_read", + "description": "Get a road closure status configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Road Closure Type.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/RoadClosureStatus" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a road closure status configuration" + } + }, + "/config/spacecraft/": { + "get": { + "operationId": "Config_spacecraft_list", + "description": "Get spacecraft configuration.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "manufacturer", + "in": "query", + "x-ms-summary": "Manufacturer", + "description": "The manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "in_use", + "in": "query", + "x-ms-summary": "In Use", + "description": "Whether in use.", + "required": false, + "type": "string" + }, + { + "name": "human_rated", + "in": "query", + "x-ms-summary": "Human Rated", + "description": "Whether rated for humans.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftConfiguration" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get spacecraft configuration" + } + }, + "/config/spacecraft/{id}/": { + "get": { + "operationId": "Config_spacecraft_read", + "description": "Get a spacecraft configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Spacecraft Configuration.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpacecraftConfigurationDetail" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a spacecraft configuration" + } + }, + "/config/spacecraftstatus/": { + "get": { + "operationId": "Config_spacecraftstatus_list", + "description": "Get spacecraft status configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftStatus" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get spacecraft status configuration" + } + }, + "/config/spacecraftstatus/{id}/": { + "get": { + "operationId": "Config_spacecraftstatus_read", + "description": "Get a spacecraft status configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Spacecraft Status.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpacecraftStatus" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a spacecraft status configuration" + } + }, + "/config/spacestationstatus/": { + "get": { + "operationId": "Config_spacestationstatus_list", + "description": "Get spacestation status configuration.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/SpaceStationStatus" + } + } + } + } + } + }, + "tags": [ + "config" + ], + "summary": "Get spacestation status configuration" + } + }, + "/config/spacestationstatus/{id}/": { + "get": { + "operationId": "Config_spacestationstatus_read", + "description": "Get a spacestation status configuration.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Space Station Status.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpaceStationStatus" + } + } + }, + "tags": [ + "config" + ], + "summary": "Get a spacestation status configuration" + } + }, + "/docking_event/": { + "get": { + "operationId": "Docking_event_list", + "description": "Get docking events.", + "parameters": [ + { + "name": "space_station__id", + "in": "query", + "x-ms-summary": "Space Station ID", + "description": "The identifier of the space station.", + "required": false, + "type": "number" + }, + { + "name": "docking_location__id", + "in": "query", + "x-ms-summary": "Docking Location ID", + "description": "The identifier of the docking location.", + "required": false, + "type": "number" + }, + { + "name": "flight_vehicle__id", + "in": "query", + "x-ms-summary": "Flight Vehicle ID", + "description": "The identifier of the flight.", + "required": false, + "type": "number" + }, + { + "name": "docking__gt", + "in": "query", + "x-ms-summary": "Docking GT", + "description": "The docking greater than.", + "required": false, + "type": "string" + }, + { + "name": "docking__lt", + "in": "query", + "x-ms-summary": "Docking LT", + "description": "The docking less than.", + "required": false, + "type": "string" + }, + { + "name": "docking__gte", + "in": "query", + "x-ms-summary": "Docking GTE", + "description": "The docking greather than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "docking__lte", + "in": "query", + "x-ms-summary": "Docking LTE", + "description": "The docking less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/DockingEvent" + } + } + } + } + } + }, + "tags": [ + "docking_event" + ], + "summary": "Get docking events" + } + }, + "/docking_event/{id}/": { + "get": { + "operationId": "Docking_event_read", + "description": "Get a docking event.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this docking event.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DockingEventDetailed" + } + } + }, + "tags": [ + "docking_event" + ], + "summary": "Get a docking event" + } + }, + "/event/": { + "get": { + "operationId": "Event_list", + "description": "Get events.", + "parameters": [ + { + "name": "slug", + "in": "query", + "x-ms-summary": "Slug", + "description": "The slug.", + "required": false, + "type": "string" + }, + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "number" + }, + { + "name": "type", + "in": "query", + "x-ms-summary": "Type", + "description": "The type.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Events" + } + } + } + } + } + }, + "tags": [ + "event" + ], + "summary": "Get events" + } + }, + "/event/previous/": { + "get": { + "operationId": "Event_previous_list", + "description": "Get previous events.", + "parameters": [ + { + "name": "type", + "in": "query", + "x-ms-summary": "Type", + "description": "The type.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Events" + } + } + } + } + } + }, + "tags": [ + "event" + ], + "summary": "Get previous events" + } + }, + "/event/previous/{id}/": { + "get": { + "operationId": "Event_previous_read", + "description": "Get a previous event.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this previous event.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Events" + } + } + }, + "tags": [ + "event" + ], + "summary": "Get a previous event" + } + }, + "/event/upcoming/": { + "get": { + "operationId": "Event_upcoming_list", + "description": "Get upcoming events.", + "parameters": [ + { + "name": "type", + "in": "query", + "x-ms-summary": "Type", + "description": "The type.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Events" + } + } + } + } + } + }, + "tags": [ + "event" + ], + "summary": "Get upcoming events" + } + }, + "/event/upcoming/{id}/": { + "get": { + "operationId": "Event_upcoming_read", + "description": "Get an upcoming event.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this upcoming event.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Events" + } + } + }, + "tags": [ + "event" + ], + "summary": "Get an upcoming event" + } + }, + "/event/{id}/": { + "get": { + "operationId": "Event_read", + "description": "Get an event.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this Event.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Events" + } + } + }, + "tags": [ + "event" + ], + "summary": "Get an event" + } + }, + "/expedition/": { + "get": { + "operationId": "Expedition_list", + "description": "Get expeditions.", + "parameters": [ + { + "name": "crew__astronaut", + "in": "query", + "x-ms-summary": "Crew Astronaut", + "description": "The astronaut member of the crew.", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "space_station", + "in": "query", + "x-ms-summary": "Space Station", + "description": "The space station.", + "required": false, + "type": "string" + }, + { + "name": "crew__astronaut__agency", + "in": "query", + "x-ms-summary": "Crew Astronaut Agency", + "description": "The astronaut member of the crew's agency.", + "required": false, + "type": "string" + }, + { + "name": "start__gt", + "in": "query", + "x-ms-summary": "Start GT", + "description": "The start greater than.", + "required": false, + "type": "string" + }, + { + "name": "start__lt", + "in": "query", + "x-ms-summary": "Start LT", + "description": "The start less than.", + "required": false, + "type": "string" + }, + { + "name": "start__gte", + "in": "query", + "x-ms-summary": "Start GTE", + "description": "The start greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "start__lte", + "in": "query", + "x-ms-summary": "Start LTE", + "description": "The start less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "end__gt", + "in": "query", + "x-ms-summary": "End GT", + "description": "The end greater than.", + "required": false, + "type": "string" + }, + { + "name": "end__lt", + "in": "query", + "x-ms-summary": "End LT", + "description": "The end less than.", + "required": false, + "type": "string" + }, + { + "name": "end__gte", + "in": "query", + "x-ms-summary": "End GTE", + "description": "The end greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "end__lte", + "in": "query", + "x-ms-summary": "End LTE", + "description": "The end less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Expedition" + } + } + } + } + } + }, + "tags": [ + "expedition" + ], + "summary": "Get expeditions" + } + }, + "/expedition/{id}/": { + "get": { + "operationId": "Expedition_read", + "description": "Get an expedition.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this expedition.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/ExpeditionDetail" + } + } + }, + "tags": [ + "expedition" + ], + "summary": "Get an expedition" + } + }, + "/launch/": { + "get": { + "operationId": "uplist", + "summary": "Get launches", + "description": "Get launches.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "slug", + "in": "query", + "x-ms-summary": "Slug", + "description": "The slug.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Name", + "description": "The rocket configuration name.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__id", + "in": "query", + "x-ms-summary": "Rocket Configuration ID", + "description": "The rocket configuration identifier.", + "required": false, + "type": "number" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__name", + "in": "query", + "x-ms-summary": "Rocket Flight Spacecraft Name", + "description": "The rocket flight spacecraft name.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__name__icontains", + "in": "query", + "x-ms-summary": "Rocket Flight Spacecraft Contains", + "description": "The rocket flight spacecraft contains.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__id", + "in": "query", + "x-ms-summary": "Rocket Flight Spacecraft ID", + "description": "The rocket flight spacecraft identifier.", + "required": false, + "type": "number" + }, + { + "name": "rocket__configuration__manufacturer__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Name", + "description": "The rocket configuration manufacturer's name.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__manufacturer__name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Contains", + "description": "The rocket configuration manufacturer contains.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name", + "description": "The rocket configuration full name.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name Contains", + "description": "The rocket configuration full name contains.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name", + "in": "query", + "x-ms-summary": "Mission Orbit Name", + "description": "The mission orbit name.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name__icontains", + "in": "query", + "x-ms-summary": "Mission Orbit Contains", + "description": "The mission orbit contains.", + "required": false, + "type": "string" + }, + { + "name": "r_spacex_api_id", + "in": "query", + "x-ms-summary": "r/SpaceX API ID", + "description": "The r/SpaceX API identifier.", + "required": false, + "type": "string" + }, + { + "name": "net__gt", + "in": "query", + "x-ms-summary": "Net GT", + "description": "The net greater than.", + "required": false, + "type": "string" + }, + { + "name": "net__lt", + "in": "query", + "x-ms-summary": "Net LT", + "description": "The net less than.", + "required": false, + "type": "string" + }, + { + "name": "net__gte", + "in": "query", + "x-ms-summary": "Net GTE", + "description": "The net greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "net__lte", + "in": "query", + "x-ms-summary": "Net LTE", + "description": "The net less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "window_start__gt", + "in": "query", + "x-ms-summary": "Window Start GT", + "description": "The window start greater than.", + "required": false, + "type": "string" + }, + { + "name": "window_start__lt", + "in": "query", + "x-ms-summary": "Window Start LT", + "description": "The window start less than.", + "required": false, + "type": "string" + }, + { + "name": "window_start__gte", + "in": "query", + "x-ms-summary": "Window Start GTE", + "description": "The window start greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "window_start__lte", + "in": "query", + "x-ms-summary": "Window Start LTE", + "description": "The window start less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "window_end__gt", + "in": "query", + "x-ms-summary": "Window End GT", + "description": "The window end greater than.", + "required": false, + "type": "string" + }, + { + "name": "window_end__lt", + "in": "query", + "x-ms-summary": "Window End LT", + "description": "The window end less than.", + "required": false, + "type": "string" + }, + { + "name": "window_end__gte", + "in": "query", + "x-ms-summary": "Window End GTE", + "description": "The window end greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "window_end__lte", + "in": "query", + "x-ms-summary": "Window End LTE", + "description": "The window end less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "last_updated__gte", + "in": "query", + "x-ms-summary": "Last Updated GTE", + "description": "The last update greater than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "last_updated__lte", + "in": "query", + "x-ms-summary": "Last Updated LTE", + "description": "The last update less than or equal to.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + }, + { + "name": "location__ids", + "in": "query", + "x-ms-summary": "Location IDs", + "description": "Filter by a comma-separated list of location ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "lsp__ids", + "in": "query", + "x-ms-summary": "LSP IDs", + "description": "Filter by a comma-separated list of launch service providers ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "is_crewed", + "in": "query", + "x-ms-summary": "Is Crewed", + "description": "Filter by launches with crew assigned.", + "type": "boolean", + "default": false + }, + { + "name": "include_suborbital", + "in": "query", + "x-ms-summary": "Include Suborbital", + "description": "Include sub-orbital launches.", + "type": "boolean", + "default": true + }, + { + "name": "serial_number", + "in": "query", + "x-ms-summary": "Serial Number", + "description": "Filter by a SpaceX First Stage core serial number. (Example: B1051)", + "type": "string" + }, + { + "name": "lsp__name", + "in": "query", + "x-ms-summary": "LSP Name", + "description": "Filter by a Launch Service Provider name.", + "type": "string" + }, + { + "name": "lsp__id", + "in": "query", + "x-ms-summary": "LSP ID", + "description": "Filter by a Launch Service Provider name.", + "type": "integer" + }, + { + "name": "lsp__config_id", + "in": "query", + "x-ms-summary": "Launch Config ID", + "description": "Filter by a Launcher Config ID.", + "type": "integer" + }, + { + "name": "spacecraft_config_ids", + "in": "query", + "x-ms-summary": "Spacecraft Config IDs", + "description": "Filter by a comma-separated list of spacecraft config ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "related", + "in": "query", + "x-ms-summary": "Related", + "description": "Include related agencies launches. Useful for historical launches from companies that have had mergers.", + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + } + } + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launch/previous/": { + "get": { + "operationId": "Launch_previous_list", + "summary": "Get previous launches", + "description": "Get previous launches", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "slug", + "in": "query", + "x-ms-summary": "Slug", + "description": "The slug.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Name", + "description": "The name of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__id", + "in": "query", + "x-ms-summary": "Rocket Configuration ID", + "description": "The identifier of the rocket configuration.", + "required": false, + "type": "number" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__name", + "in": "query", + "x-ms-summary": "Spacecraft Name", + "description": "The name of the spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__icontains", + "in": "query", + "x-ms-summary": "Spacecraft Name Contains", + "description": "The name contains of the spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__id", + "in": "query", + "x-ms-summary": "Spacecraft ID", + "description": "The identifier of the spacecraft.", + "required": false, + "type": "number" + }, + { + "name": "rocket__configuration__manufacturer__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Name", + "description": "The name of the rocket configuration manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__manufacturer__name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Name Contains", + "description": "The name containsof the rocket configuration manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name", + "description": "The full name of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name Contains", + "description": "The full name contains of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name", + "in": "query", + "x-ms-summary": "Mission Orbit Name", + "description": "The name of the mission orbit.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name__icontains", + "in": "query", + "x-ms-summary": "Mission Orbit Name Contains", + "description": "The name contains of the mission orbit.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "r_spacex_api_id", + "in": "query", + "x-ms-summary": "r/SpaceX API ID", + "description": "The identifier of the r/SpaceX API.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + }, + { + "name": "location__ids", + "in": "query", + "x-ms-summary": "Location IDs", + "description": "Filter by a comma-separated list of location ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "lsp__ids", + "in": "query", + "x-ms-summary": "LSP IDs", + "description": "Filter by a comma-separated list of launch service providers ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "is_crewed", + "in": "query", + "x-ms-summary": "Is Crewed", + "description": "Filter by launches with crew assigned.", + "type": "boolean", + "default": false + }, + { + "name": "include_suborbital", + "in": "query", + "x-ms-summary": "Include Suborbital", + "description": "Include sub-orbital launches.", + "type": "boolean", + "default": true + }, + { + "name": "serial_number", + "in": "query", + "x-ms-summary": "Serial Number", + "description": "Filter by a SpaceX First Stage core serial number. (Example: B1051)", + "type": "string" + }, + { + "name": "lsp__name", + "in": "query", + "x-ms-summary": "LSP Name", + "description": "Filter by a Launch Service Provider name.", + "type": "string" + }, + { + "name": "lsp__id", + "in": "query", + "x-ms-summary": "LSP ID", + "description": "Filter by a Launch Service Provider name.", + "type": "integer" + }, + { + "name": "lsp__config__id", + "in": "query", + "x-ms-summary": "Launch Config ID", + "description": "Filter by a Launcher Config ID.", + "type": "integer" + }, + { + "name": "spacecraft_config_ids", + "in": "query", + "x-ms-summary": "Spacecraft Config IDs", + "description": "Filter by a comma-separated list of spacecraft config ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "related", + "in": "query", + "x-ms-summary": "Related", + "description": "Include related agencies launches. Useful for historical launches from companies that have had mergers.", + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + } + } + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launch/previous/{id}/": { + "get": { + "operationId": "Launch_previous_read", + "summary": "Get a previous launch", + "description": "Get a previous launch.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this previous launch.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LaunchDetailed" + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launch/upcoming/": { + "get": { + "operationId": "Launch_upcoming_list", + "summary": "Get future launches", + "description": "Get future launches.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "slug", + "in": "query", + "x-ms-summary": "Slug", + "description": "The slug.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Name", + "description": "The name of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__id", + "in": "query", + "x-ms-summary": "Rocket Configuration ID", + "description": "The identifier of the rocket configuration.", + "required": false, + "type": "number" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__name", + "in": "query", + "x-ms-summary": "Spacecraft Name", + "description": "The name of the spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__name__icontains", + "in": "query", + "x-ms-summary": "Spacecraft Name Contains", + "description": "The name contains of the spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "rocket__spacecraftflight__spacecraft__id", + "in": "query", + "x-ms-summary": "Spacecraft ID", + "description": "The identifier of the spacecraft.", + "required": false, + "type": "number" + }, + { + "name": "rocket__configuration__manufacturer__name", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Name", + "description": "The name of the rocket configuration manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__manufacturer__name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Manufacturer Name Contains", + "description": "The name containsof the rocket configuration manufacturer.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name", + "description": "The full name of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "rocket__configuration__full_name__icontains", + "in": "query", + "x-ms-summary": "Rocket Configuration Full Name Contains", + "description": "The full name contains of the rocket configuration.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name", + "in": "query", + "x-ms-summary": "Mission Orbit Name", + "description": "The name of the mission orbit.", + "required": false, + "type": "string" + }, + { + "name": "mission__orbit__name__icontains", + "in": "query", + "x-ms-summary": "Mission Orbit Name Contains", + "description": "The name contains of the mission orbit.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "r_spacex_api_id", + "in": "query", + "x-ms-summary": "r/SpaceX API ID", + "description": "The identifier of the r/SpaceX API.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + }, + { + "name": "location__ids", + "in": "query", + "x-ms-summary": "Location IDs", + "description": "Filter by a comma-separated list of location ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "lsp__ids", + "in": "query", + "x-ms-summary": "LSP IDs", + "description": "Filter by a comma-separated list of launch service providers ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "is_crewed", + "in": "query", + "x-ms-summary": "Is Crewed", + "description": "Filter by launches with crew assigned.", + "type": "boolean", + "default": false + }, + { + "name": "include_suborbital", + "in": "query", + "x-ms-summary": "Include Suborbital", + "description": "Include sub-orbital launches.", + "type": "boolean", + "default": true + }, + { + "name": "serial_number", + "in": "query", + "x-ms-summary": "Serial Number", + "description": "Filter by a SpaceX First Stage core serial number. (Example: B1051)", + "type": "string" + }, + { + "name": "lsp__name", + "in": "query", + "x-ms-summary": "LSP Name", + "description": "Filter by a Launch Service Provider name.", + "type": "string" + }, + { + "name": "lsp__id", + "in": "query", + "x-ms-summary": "LSP ID", + "description": "Filter by a Launch Service Provider name.", + "type": "integer" + }, + { + "name": "lsp__config__id", + "in": "query", + "x-ms-summary": "Launch Config ID", + "description": "Filter by a Launcher Config ID.", + "type": "integer" + }, + { + "name": "spacecraft_config_ids", + "in": "query", + "x-ms-summary": "Spacecraft Config IDs", + "description": "Filter by a comma-separated list of spacecraft config ID's.", + "type": "array", + "items": { + "type": "integer" + } + }, + { + "name": "related", + "in": "query", + "x-ms-summary": "Related", + "description": "Include related agencies launches. Useful for historical launches from companies that have had mergers.", + "type": "boolean", + "default": false + }, + { + "name": "hide_recent_previous", + "in": "query", + "x-ms-summary": "Hide Recent Previous", + "description": "Hide launches in previous 24 hours from response.", + "type": "boolean", + "default": false + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + } + } + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launch/upcoming/{id}/": { + "get": { + "operationId": "Launch_upcoming_read", + "summary": "Get a future launch", + "description": "Get a future launch", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this upcoming launch.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LaunchDetailed" + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launch/{id}/": { + "get": { + "operationId": "Launch_read", + "summary": "Get a launch", + "description": "Get a launch.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this launch.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LaunchDetailed" + } + } + }, + "tags": [ + "launch" + ] + } + }, + "/launcher/": { + "get": { + "operationId": "Launcher_list", + "description": "Get launchers.", + "parameters": [ + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "number" + }, + { + "name": "serial_number", + "in": "query", + "x-ms-summary": "Serial Number", + "description": "The serial number.", + "required": false, + "type": "string" + }, + { + "name": "flight_proven", + "in": "query", + "x-ms-summary": "Flight Proven", + "description": "Whether the flight is proven.", + "required": false, + "type": "string" + }, + { + "name": "launcher_config", + "in": "query", + "x-ms-summary": "Launcher Configuration", + "description": "The configuration of the launcher.", + "required": false, + "type": "string" + }, + { + "name": "launcher_config__manufacturer", + "in": "query", + "x-ms-summary": "Launcher Configuration Manufacturer", + "description": "The configuration manufacturer of the launcher.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Launcher" + } + } + } + } + } + }, + "tags": [ + "launcher" + ], + "summary": "Get launchers" + } + }, + "/launcher/{id}/": { + "get": { + "operationId": "Launcher_read", + "description": "Get a launcher.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this launcher.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LauncherDetail" + } + } + }, + "tags": [ + "launcher" + ], + "summary": "Get a launcher" + } + }, + "/location/": { + "get": { + "operationId": "Location_list", + "description": "Get locations.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "country_code", + "in": "query", + "x-ms-summary": "Country Code", + "description": "The country code.", + "required": false, + "type": "string" + }, + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "number" + }, + { + "name": "pad__location_id", + "in": "query", + "x-ms-summary": "Pad Location ID", + "description": "The identifier of the pad location.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Location" + } + } + } + } + } + }, + "tags": [ + "location" + ], + "summary": "Get locations" + } + }, + "/location/{id}/": { + "get": { + "operationId": "Location_read", + "description": "Get a location.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this location.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/LocationDetail" + } + } + }, + "tags": [ + "location" + ], + "summary": "Get a location" + } + }, + "/pad/": { + "get": { + "operationId": "Pad_list", + "description": "Get pads.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "id", + "in": "query", + "x-ms-summary": "ID", + "description": "The identifier.", + "required": false, + "type": "number" + }, + { + "name": "location", + "in": "query", + "x-ms-summary": "Location", + "description": "The location.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Pad" + } + } + } + } + } + }, + "tags": [ + "pad" + ], + "summary": "Get pads" + } + }, + "/pad/{id}/": { + "get": { + "operationId": "Pad_read", + "description": "Get a pad.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this pad.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Pad" + } + } + }, + "tags": [ + "pad" + ], + "summary": "Get a pad" + } + }, + "/program/": { + "get": { + "operationId": "Program_list", + "description": "Get programs.", + "parameters": [ + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Program" + } + } + } + } + } + }, + "tags": [ + "program" + ], + "summary": "Get programs" + } + }, + "/program/{id}/": { + "get": { + "operationId": "Program_read", + "description": "Get a program.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this program.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Program" + } + } + }, + "tags": [ + "program" + ], + "summary": "Get a program" + } + }, + "/spacecraft/": { + "get": { + "operationId": "Spacecraft_list", + "description": "Get spacecrafts.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "spacecraft_config", + "in": "query", + "x-ms-summary": "Spacecraft Configuration", + "description": "The configuration of the spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Spacecraft" + } + } + } + } + } + }, + "tags": [ + "spacecraft" + ], + "summary": "Get spacecrafts" + } + }, + "/spacecraft/flight/": { + "get": { + "operationId": "Spacecraft_flight_list", + "description": "Get spacecraft flights.", + "parameters": [ + { + "name": "spacecraft", + "in": "query", + "x-ms-summary": "Spacecraft", + "description": "The spacecraft.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftFlight" + } + } + } + } + } + }, + "tags": [ + "spacecraft" + ], + "summary": "Get spacecraft flights" + } + }, + "/spacecraft/flight/{id}/": { + "get": { + "operationId": "Spacecraft_flight_read", + "description": "Get a spacecraft flight.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this spacecraft flight.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpacecraftFlightDetailed" + } + } + }, + "tags": [ + "spacecraft" + ], + "summary": "Get a spacecraft flight" + } + }, + "/spacecraft/{id}/": { + "get": { + "operationId": "Spacecraft_read", + "description": "Get a spacecraft.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this spacecraft.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpacecraftDetailed" + } + } + }, + "tags": [ + "spacecraft" + ], + "summary": "Get a spacecraft" + } + }, + "/spacestation/": { + "get": { + "operationId": "Spacestation_list", + "description": "Get space stations.", + "parameters": [ + { + "name": "name", + "in": "query", + "x-ms-summary": "Name", + "description": "The name.", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "x-ms-summary": "Status", + "description": "The current status.", + "required": false, + "type": "string" + }, + { + "name": "owners", + "in": "query", + "x-ms-summary": "Owners", + "description": "The owners.", + "required": false, + "type": "string" + }, + { + "name": "orbit", + "in": "query", + "x-ms-summary": "Orbit", + "description": "The orbit", + "required": false, + "type": "string" + }, + { + "name": "type", + "in": "query", + "x-ms-summary": "Type", + "description": "The type.", + "required": false, + "type": "string" + }, + { + "name": "owners__name", + "in": "query", + "x-ms-summary": "Owners Name", + "description": "The owners' name.", + "required": false, + "type": "string" + }, + { + "name": "owners__abbrev", + "in": "query", + "x-ms-summary": "Owners Abbreviation", + "description": "The abbreviation of the owners.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/SpaceStation" + } + } + } + } + } + }, + "tags": [ + "spacestation" + ], + "summary": "Get space stations" + } + }, + "/spacestation/{id}/": { + "get": { + "operationId": "Spacestation_read", + "description": "Get a space station.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this spacestation.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/SpaceStationDetailed" + } + } + }, + "tags": [ + "spacestation" + ], + "summary": "Get a space station" + } + }, + "/updates/": { + "get": { + "operationId": "Updates_list", + "description": "Get updates.", + "parameters": [ + { + "name": "created_on", + "in": "query", + "x-ms-summary": "Created On", + "description": "The created on time.", + "required": false, + "type": "string" + }, + { + "name": "launch", + "in": "query", + "x-ms-summary": "Launch", + "description": "The launch.", + "required": false, + "type": "string" + }, + { + "name": "program", + "in": "query", + "x-ms-summary": "Program", + "description": "The program.", + "required": false, + "type": "string" + }, + { + "name": "launch__launch_service_provider", + "in": "query", + "x-ms-summary": "Launch Service Provider", + "description": "The launch service provider.", + "required": false, + "type": "string" + }, + { + "name": "search", + "in": "query", + "x-ms-summary": "Search", + "description": "A search term.", + "required": false, + "type": "string" + }, + { + "name": "ordering", + "in": "query", + "x-ms-summary": "Ordering", + "description": "Which field to use when ordering the results.", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "Number of results to return per page.", + "required": false, + "type": "integer" + }, + { + "name": "offset", + "in": "query", + "x-ms-summary": "Offset", + "description": "The initial index from which to return the results.", + "required": false, + "type": "integer" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "required": [ + "count", + "results" + ], + "type": "object", + "properties": { + "count": { + "title": "Count", + "type": "integer" + }, + "next": { + "title": "Next", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "previous": { + "title": "Previous", + "type": "string", + "format": "uri", + "x-nullable": true + }, + "results": { + "title": "Results", + "type": "array", + "items": { + "$ref": "#/definitions/Update" + } + } + } + } + } + }, + "tags": [ + "updates" + ], + "summary": "Get updates" + } + }, + "/updates/{id}/": { + "get": { + "operationId": "Updates_read", + "description": "Get an update.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-summary": "ID", + "x-ms-url-encoding": "single", + "description": "A unique integer value identifying this update", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/Update" + } + } + }, + "tags": [ + "updates" + ], + "summary": "Get an update" + } + } + }, + "definitions": { + "Agency": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "featured": { + "title": "Featured", + "type": "boolean" + }, + "type": { + "title": "Type", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "maxLength": 1048 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "administrator": { + "title": "Administrator", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "founding_year": { + "title": "Founding year", + "type": "string", + "maxLength": 20, + "x-nullable": true + }, + "launchers": { + "title": "Launchers", + "type": "string", + "maxLength": 500 + }, + "spacecraft": { + "title": "Spacecraft", + "type": "string", + "maxLength": 500 + }, + "parent": { + "title": "Parent", + "type": "string", + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "LauncherConfigDetailSerializerForAgency": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048 + }, + "family": { + "title": "Family", + "type": "string", + "maxLength": 200 + }, + "full_name": { + "title": "Full name", + "type": "string", + "maxLength": 200 + }, + "variant": { + "title": "Variant", + "type": "string", + "maxLength": 200 + }, + "alias": { + "title": "Alias", + "type": "string", + "maxLength": 200 + }, + "min_stage": { + "title": "Min stage", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "max_stage": { + "title": "Max stage", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "length": { + "title": "Length (m)", + "type": "number", + "x-nullable": true + }, + "diameter": { + "title": "Max Diameter (m)", + "type": "number", + "x-nullable": true + }, + "maiden_flight": { + "title": "Maiden Flight Date", + "type": "string", + "format": "date", + "x-nullable": true + }, + "launch_mass": { + "title": "Mass at Launch (T)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "leo_capacity": { + "title": "LEO Capacity (kg)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "gto_capacity": { + "title": "GTO Capacity (kg)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "to_thrust": { + "title": "Thrust at Liftoff (kN)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "apogee": { + "title": "Apogee - Sub-Orbital Only (km)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "vehicle_range": { + "title": "Vehicle Range - Legacy", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "info_url": { + "title": "Info url", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "consecutive_successful_launches": { + "title": "Consecutive successful launches", + "type": "integer", + "readOnly": true + }, + "successful_launches": { + "title": "Successful launches", + "type": "integer", + "readOnly": true + }, + "failed_launches": { + "title": "Failed launches", + "type": "integer", + "readOnly": true + }, + "pending_launches": { + "title": "Pending launches", + "type": "integer", + "readOnly": true + } + } + }, + "SpacecraftConfigType": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "SpacecraftConfigurationDetail": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "type": { + "$ref": "#/definitions/SpacecraftConfigType" + }, + "agency": { + "$ref": "#/definitions/Agency" + }, + "in_use": { + "title": "In use", + "type": "boolean" + }, + "capability": { + "title": "Capability", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "history": { + "title": "History", + "type": "string", + "maxLength": 1000, + "minLength": 1 + }, + "details": { + "title": "Details", + "type": "string", + "maxLength": 1000, + "minLength": 1 + }, + "maiden_flight": { + "title": "Maiden flight", + "type": "string", + "format": "date", + "x-nullable": true + }, + "height": { + "title": "Length (m)", + "type": "number", + "x-nullable": true + }, + "diameter": { + "title": "Diameter (m)", + "type": "number", + "x-nullable": true + }, + "human_rated": { + "title": "Human rated", + "type": "boolean" + }, + "crew_capacity": { + "title": "Crew Capacity", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "payload_capacity": { + "title": "Payload Capacity (kg)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "flight_life": { + "title": "Flight life", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "nation_url": { + "title": "Nation url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "wiki_link": { + "title": "Wiki link", + "type": "string", + "format": "uri", + "maxLength": 200 + }, + "info_link": { + "title": "Info link", + "type": "string", + "format": "uri", + "maxLength": 200 + } + } + }, + "AgencySerializerDetailed": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "featured": { + "title": "Featured", + "type": "boolean" + }, + "type": { + "title": "Type", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "maxLength": 1048 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "administrator": { + "title": "Administrator", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "founding_year": { + "title": "Founding year", + "type": "string", + "maxLength": 20, + "x-nullable": true + }, + "launchers": { + "title": "Launchers", + "type": "string", + "maxLength": 500 + }, + "spacecraft": { + "title": "Spacecraft", + "type": "string", + "maxLength": 500 + }, + "parent": { + "title": "Parent", + "type": "string", + "readOnly": true + }, + "launch_library_url": { + "title": "Launch library url", + "type": "string", + "readOnly": true + }, + "total_launch_count": { + "title": "Total launch count", + "type": "integer", + "readOnly": true + }, + "successful_launches": { + "title": "Successful launches", + "type": "integer", + "readOnly": true + }, + "consecutive_successful_launches": { + "title": "Consecutive successful launches", + "type": "integer", + "readOnly": true + }, + "failed_launches": { + "title": "Failed launches", + "type": "integer", + "readOnly": true + }, + "pending_launches": { + "title": "Pending launches", + "type": "integer", + "readOnly": true + }, + "successful_landings": { + "title": "Successful landings", + "type": "integer", + "readOnly": true + }, + "failed_landings": { + "title": "Failed landings", + "type": "integer", + "readOnly": true + }, + "attempted_landings": { + "title": "Attempted landings", + "type": "integer", + "readOnly": true + }, + "consecutive_successful_landings": { + "title": "Consecutive successful landings", + "type": "integer", + "readOnly": true + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "logo_url": { + "title": "Logo url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "nation_url": { + "title": "Nation url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "launcher_list": { + "type": "array", + "items": { + "$ref": "#/definitions/LauncherConfigDetailSerializerForAgency" + }, + "readOnly": true + }, + "spacecraft_list": { + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftConfigurationDetail" + }, + "readOnly": true + } + } + }, + "AstronautStatus": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "AstronautType": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "AstronautNormal": { + "required": [ + "name", + "date_of_birth", + "nationality", + "bio" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/AstronautStatus" + }, + "type": { + "$ref": "#/definitions/AstronautType" + }, + "date_of_birth": { + "title": "Date of birth", + "type": "string", + "format": "date" + }, + "date_of_death": { + "title": "Date of death", + "type": "string", + "format": "date", + "x-nullable": true + }, + "nationality": { + "title": "Nationality", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "bio": { + "title": "Bio", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "twitter": { + "title": "Twitter", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "instagram": { + "title": "Instagram", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "wiki": { + "title": "Wiki", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "agency": { + "$ref": "#/definitions/Agency" + }, + "profile_image": { + "title": "Profile image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "profile_image_thumbnail": { + "title": "Profile image thumbnail", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "last_flight": { + "title": "Last flight", + "type": "string", + "readOnly": true + }, + "first_flight": { + "title": "First flight", + "type": "string", + "readOnly": true + } + } + }, + "AgencySerializerMini": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "type": { + "title": "Type", + "type": "string", + "maxLength": 255, + "x-nullable": true + } + } + }, + "LaunchStatus": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048 + } + } + }, + "LauncherConfigList": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "family": { + "title": "Family", + "type": "string", + "maxLength": 200 + }, + "full_name": { + "title": "Full name", + "type": "string", + "maxLength": 200 + }, + "variant": { + "title": "Variant", + "type": "string", + "maxLength": 200 + } + } + }, + "RocketSerializerCommon": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "configuration": { + "$ref": "#/definitions/LauncherConfigList" + } + } + }, + "Orbit": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 50, + "minLength": 1 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 30, + "minLength": 1 + } + }, + "x-nullable": true + }, + "Mission": { + "required": [ + "orbit" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string" + }, + "launch_designator": { + "title": "Launch designator", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "type": { + "title": "Type", + "type": "string", + "readOnly": true + }, + "orbit": { + "$ref": "#/definitions/Orbit" + } + } + }, + "Location": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "country_code": { + "title": "Country code", + "type": "string", + "maxLength": 255 + }, + "map_image": { + "title": "Map image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "total_launch_count": { + "title": "Total launch count", + "type": "integer", + "readOnly": true + }, + "total_landing_count": { + "title": "Total landing count", + "type": "integer", + "readOnly": true + } + } + }, + "Pad": { + "required": [ + "location" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "agency_id": { + "title": "Agency id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "map_url": { + "title": "Map url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "maxLength": 30, + "x-nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "maxLength": 30, + "x-nullable": true + }, + "location": { + "$ref": "#/definitions/Location" + }, + "map_image": { + "title": "Map image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "total_launch_count": { + "title": "Total launch count", + "type": "integer", + "readOnly": true + } + } + }, + "MissionPatch": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "agency": { + "$ref": "#/definitions/AgencySerializerMini" + } + } + }, + "Program": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 40000, + "x-nullable": true + }, + "agencies": { + "type": "array", + "items": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "start_date": { + "title": "Start date", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "end_date": { + "title": "End date", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "mission_patches": { + "type": "array", + "items": { + "$ref": "#/definitions/MissionPatch" + }, + "readOnly": true + } + } + }, + "LaunchSerializerCommon": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string", + "format": "uuid", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 2048 + }, + "status": { + "$ref": "#/definitions/LaunchStatus" + }, + "last_updated": { + "title": "Last updated", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "net": { + "title": "Net", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "window_end": { + "title": "Window end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "window_start": { + "title": "Window start", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "probability": { + "title": "Probability", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "holdreason": { + "title": "Holdreason", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "failreason": { + "title": "Failreason", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "hashtag": { + "title": "Hashtag", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "launch_service_provider": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "rocket": { + "$ref": "#/definitions/RocketSerializerCommon" + }, + "mission": { + "$ref": "#/definitions/Mission" + }, + "pad": { + "$ref": "#/definitions/Pad" + }, + "infoURLs": { + "title": "Infourls", + "type": "string", + "readOnly": true + }, + "vidURLs": { + "title": "Vidurls", + "type": "string", + "readOnly": true + }, + "webcast_live": { + "title": "Webcast live", + "type": "boolean" + }, + "image": { + "title": "Image", + "type": "string", + "readOnly": true + }, + "infographic": { + "title": "Infographic", + "type": "string", + "readOnly": true + }, + "program": { + "type": "array", + "items": { + "$ref": "#/definitions/Program" + }, + "readOnly": true + } + } + }, + "SpacecraftStatus": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "SpacecraftConfig": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "type": { + "$ref": "#/definitions/SpacecraftConfigType" + }, + "agency": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "in_use": { + "title": "In use", + "type": "boolean" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "Spacecraft": { + "required": [ + "name", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "status": { + "$ref": "#/definitions/SpacecraftStatus" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "spacecraft_config": { + "$ref": "#/definitions/SpacecraftConfig" + } + } + }, + "SpacecraftFlight": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "destination": { + "title": "Destination", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "mission_end": { + "title": "Mission end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "spacecraft": { + "$ref": "#/definitions/Spacecraft" + }, + "launch": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + } + }, + "AstronautDetailed": { + "required": [ + "name", + "date_of_birth", + "nationality", + "bio" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/AstronautStatus" + }, + "type": { + "$ref": "#/definitions/AstronautType" + }, + "agency": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "date_of_birth": { + "title": "Date of birth", + "type": "string", + "format": "date" + }, + "date_of_death": { + "title": "Date of death", + "type": "string", + "format": "date", + "x-nullable": true + }, + "nationality": { + "title": "Nationality", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "twitter": { + "title": "Twitter", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "instagram": { + "title": "Instagram", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "bio": { + "title": "Bio", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "profile_image": { + "title": "Profile image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "profile_image_thumbnail": { + "title": "Profile image thumbnail", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "wiki": { + "title": "Wiki", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "flights": { + "type": "array", + "items": { + "$ref": "#/definitions/LaunchSerializerCommon" + }, + "readOnly": true + }, + "landings": { + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftFlight" + }, + "readOnly": true + }, + "last_flight": { + "title": "Last flight", + "type": "string", + "readOnly": true + }, + "first_flight": { + "title": "First flight", + "type": "string", + "readOnly": true + } + } + }, + "AgencyType": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + } + } + }, + "AstronautRole": { + "required": [ + "role" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "role": { + "title": "Role", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "priority": { + "title": "Priority", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + } + } + }, + "DockingLocation": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "EventType": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + } + } + }, + "FirstStageType": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 50 + } + } + }, + "LandingLocation": { + "required": [ + "location" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "location": { + "$ref": "#/definitions/Location" + }, + "successful_landings": { + "title": "Successful landings", + "type": "string", + "readOnly": true + } + } + }, + "LauncherConfig": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "manufacturer": { + "$ref": "#/definitions/Agency" + }, + "program": { + "type": "array", + "items": { + "$ref": "#/definitions/Program" + }, + "readOnly": true + }, + "family": { + "title": "Family", + "type": "string", + "maxLength": 200 + }, + "full_name": { + "title": "Full name", + "type": "string", + "maxLength": 200 + }, + "variant": { + "title": "Variant", + "type": "string", + "maxLength": 200 + }, + "reusable": { + "title": "Reusable", + "type": "boolean" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "info_url": { + "title": "Info url", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "maxLength": 200, + "x-nullable": true + } + } + }, + "AgencySerializerDetailedCommon": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "featured": { + "title": "Featured", + "type": "boolean" + }, + "type": { + "title": "Type", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "country_code": { + "title": "Country code", + "type": "string", + "maxLength": 1048 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "x-nullable": true + }, + "administrator": { + "title": "Administrator", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "founding_year": { + "title": "Founding year", + "type": "string", + "maxLength": 20, + "x-nullable": true + }, + "launchers": { + "title": "Launchers", + "type": "string", + "maxLength": 500 + }, + "spacecraft": { + "title": "Spacecraft", + "type": "string", + "maxLength": 500 + }, + "launch_library_url": { + "title": "Launch library url", + "type": "string", + "readOnly": true + }, + "total_launch_count": { + "title": "Total launch count", + "type": "integer", + "readOnly": true + }, + "consecutive_successful_launches": { + "title": "Consecutive successful launches", + "type": "integer", + "readOnly": true + }, + "successful_launches": { + "title": "Successful launches", + "type": "integer", + "readOnly": true + }, + "failed_launches": { + "title": "Failed launches", + "type": "integer", + "readOnly": true + }, + "pending_launches": { + "title": "Pending launches", + "type": "integer", + "readOnly": true + }, + "consecutive_successful_landings": { + "title": "Consecutive successful landings", + "type": "integer", + "readOnly": true + }, + "successful_landings": { + "title": "Successful landings", + "type": "integer", + "readOnly": true + }, + "failed_landings": { + "title": "Failed landings", + "type": "integer", + "readOnly": true + }, + "attempted_landings": { + "title": "Attempted landings", + "type": "integer", + "readOnly": true + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "logo_url": { + "title": "Logo url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "nation_url": { + "title": "Nation url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "LauncherConfigDetail": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048 + }, + "family": { + "title": "Family", + "type": "string", + "maxLength": 200 + }, + "full_name": { + "title": "Full name", + "type": "string", + "maxLength": 200 + }, + "manufacturer": { + "$ref": "#/definitions/AgencySerializerDetailedCommon" + }, + "program": { + "type": "array", + "items": { + "$ref": "#/definitions/Program" + }, + "readOnly": true + }, + "variant": { + "title": "Variant", + "type": "string", + "maxLength": 200 + }, + "alias": { + "title": "Alias", + "type": "string", + "maxLength": 200 + }, + "min_stage": { + "title": "Min stage", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "max_stage": { + "title": "Max stage", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "length": { + "title": "Length (m)", + "type": "number", + "x-nullable": true + }, + "diameter": { + "title": "Max Diameter (m)", + "type": "number", + "x-nullable": true + }, + "maiden_flight": { + "title": "Maiden Flight Date", + "type": "string", + "format": "date", + "x-nullable": true + }, + "launch_cost": { + "title": "Launch Cost ($)", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "launch_mass": { + "title": "Mass at Launch (T)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "leo_capacity": { + "title": "LEO Capacity (kg)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "gto_capacity": { + "title": "GTO Capacity (kg)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "to_thrust": { + "title": "Thrust at Liftoff (kN)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "apogee": { + "title": "Apogee - Sub-Orbital Only (km)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "vehicle_range": { + "title": "Vehicle Range - Legacy", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "info_url": { + "title": "Info url", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "total_launch_count": { + "title": "Total launch count", + "type": "integer", + "readOnly": true + }, + "consecutive_successful_launches": { + "title": "Consecutive successful launches", + "type": "integer", + "readOnly": true + }, + "successful_launches": { + "title": "Successful launches", + "type": "integer", + "readOnly": true + }, + "failed_launches": { + "title": "Failed launches", + "type": "integer", + "readOnly": true + }, + "pending_launches": { + "title": "Pending launches", + "type": "integer", + "readOnly": true + } + } + }, + "MissionType": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + } + } + }, + "NoticeType": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "RoadClosureStatus": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "SpacecraftConfiguration": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "agency": { + "$ref": "#/definitions/Agency" + }, + "in_use": { + "title": "In use", + "type": "boolean" + }, + "capability": { + "title": "Capability", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "maiden_flight": { + "title": "Maiden flight", + "type": "string", + "format": "date", + "x-nullable": true + }, + "human_rated": { + "title": "Human rated", + "type": "boolean" + }, + "crew_capacity": { + "title": "Crew Capacity", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "nation_url": { + "title": "Nation url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "wiki_link": { + "title": "Wiki link", + "type": "string", + "format": "uri", + "maxLength": 200 + }, + "info_link": { + "title": "Info link", + "type": "string", + "format": "uri", + "maxLength": 200 + } + } + }, + "SpaceStationStatus": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "SpacecraftFlightSerializerForDockingEvent": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "destination": { + "title": "Destination", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "mission_end": { + "title": "Mission end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "spacecraft": { + "$ref": "#/definitions/Spacecraft" + } + } + }, + "DockingEvent": { + "required": [ + "launch_id", + "docking" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "launch_id": { + "title": "Launch id", + "type": "string", + "minLength": 1 + }, + "docking": { + "title": "Docking", + "type": "string", + "format": "date-time" + }, + "departure": { + "title": "Departure", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "flight_vehicle": { + "$ref": "#/definitions/SpacecraftFlightSerializerForDockingEvent" + }, + "docking_location": { + "$ref": "#/definitions/DockingLocation" + } + } + }, + "SpacecraftDetailedNoFlights": { + "required": [ + "name", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "status": { + "$ref": "#/definitions/SpacecraftStatus" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "spacecraft_config": { + "$ref": "#/definitions/SpacecraftConfigurationDetail" + } + } + }, + "SpacecraftFlightSerializerForDockingEventDetailed": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "destination": { + "title": "Destination", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "mission_end": { + "title": "Mission end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "spacecraft": { + "$ref": "#/definitions/SpacecraftDetailedNoFlights" + } + } + }, + "SpaceStationSerializerForDockingEvent": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "DockingEventDetailed": { + "required": [ + "launch_id", + "docking" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "launch_id": { + "title": "Launch id", + "type": "string", + "minLength": 1 + }, + "docking": { + "title": "Docking", + "type": "string", + "format": "date-time" + }, + "departure": { + "title": "Departure", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "flight_vehicle": { + "$ref": "#/definitions/SpacecraftFlightSerializerForDockingEventDetailed" + }, + "docking_location": { + "$ref": "#/definitions/DockingLocation" + }, + "space_station": { + "$ref": "#/definitions/SpaceStationSerializerForDockingEvent" + } + } + }, + "Update": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer" + }, + "profile_image": { + "title": "Profile image", + "type": "string", + "readOnly": true + }, + "comment": { + "title": "Comment", + "type": "string", + "maxLength": 40000, + "x-nullable": true + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "created_by": { + "title": "Created by", + "type": "string", + "readOnly": true + }, + "created_on": { + "title": "Created on", + "type": "string", + "format": "date-time", + "readOnly": true + } + } + }, + "SpaceStationSerializerForExpedition": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/SpaceStationStatus" + }, + "orbit": { + "title": "Orbit", + "type": "string", + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "Expedition": { + "required": [ + "name", + "start" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "spacestation": { + "$ref": "#/definitions/SpaceStationSerializerForExpedition" + }, + "mission_patches": { + "type": "array", + "items": { + "$ref": "#/definitions/MissionPatch" + }, + "readOnly": true + } + } + }, + "SpaceStationSerializerForCommon": { + "required": [ + "name", + "founded", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/SpaceStationStatus" + }, + "founded": { + "title": "Founded", + "type": "string", + "format": "date" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "orbit": { + "title": "Orbit", + "type": "string", + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "Events": { + "required": [ + "slug", + "name", + "launches", + "expeditions", + "spacestations" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "updates": { + "type": "array", + "items": { + "$ref": "#/definitions/Update" + }, + "readOnly": true + }, + "type": { + "$ref": "#/definitions/EventType" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048 + }, + "location": { + "title": "Location", + "type": "string", + "maxLength": 100, + "x-nullable": true + }, + "news_url": { + "title": "News url", + "type": "string", + "format": "uri", + "maxLength": 250, + "x-nullable": true + }, + "video_url": { + "title": "Video url", + "type": "string", + "format": "uri", + "maxLength": 250, + "x-nullable": true + }, + "feature_image": { + "title": "Feature image", + "type": "string", + "readOnly": true, + "format": "uri" + }, + "date": { + "title": "Date", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "launches": { + "type": "array", + "items": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + }, + "expeditions": { + "type": "array", + "items": { + "$ref": "#/definitions/Expedition" + } + }, + "spacestations": { + "type": "array", + "items": { + "$ref": "#/definitions/SpaceStationSerializerForCommon" + } + }, + "program": { + "type": "array", + "items": { + "$ref": "#/definitions/Program" + }, + "readOnly": true + } + } + }, + "AgencyList": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 200, + "minLength": 1 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + } + } + }, + "SpaceStationDetailedSerializerForExpedition": { + "required": [ + "name", + "founded", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/SpaceStationStatus" + }, + "founded": { + "title": "Founded", + "type": "string", + "format": "date" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "orbit": { + "title": "Orbit", + "type": "string", + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "owners": { + "type": "array", + "items": { + "$ref": "#/definitions/AgencyList" + }, + "readOnly": true + } + } + }, + "Astronaut": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/AstronautStatus" + }, + "agency": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "profile_image": { + "title": "Profile image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "profile_image_thumbnail": { + "title": "Profile image thumbnail", + "type": "string", + "readOnly": true, + "format": "uri" + } + } + }, + "AstronautFlightForExpedition": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "role": { + "$ref": "#/definitions/AstronautRole" + }, + "astronaut": { + "$ref": "#/definitions/Astronaut" + } + } + }, + "ExpeditionDetail": { + "required": [ + "name", + "start" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "spacestation": { + "$ref": "#/definitions/SpaceStationDetailedSerializerForExpedition" + }, + "crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlightForExpedition" + }, + "readOnly": true + }, + "mission_patches": { + "type": "array", + "items": { + "$ref": "#/definitions/MissionPatch" + }, + "readOnly": true + } + } + }, + "LauncherDetailed": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "details": { + "title": "Details", + "type": "string", + "maxLength": 2048 + }, + "flight_proven": { + "title": "Flight proven", + "type": "boolean" + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 10, + "x-nullable": true + }, + "status": { + "title": "Status", + "type": "string", + "maxLength": 2048 + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "successful_landings": { + "title": "Successful landings", + "type": "string", + "readOnly": true + }, + "attempted_landings": { + "title": "Attempted landings", + "type": "string", + "readOnly": true + }, + "flights": { + "title": "Flights", + "type": "string", + "readOnly": true + }, + "last_launch_date": { + "title": "Last launch date", + "type": "string", + "readOnly": true + }, + "first_launch_date": { + "title": "First launch date", + "type": "string", + "readOnly": true + } + } + }, + "LandingType": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "abbrev": { + "title": "Abbrev", + "type": "string", + "maxLength": 255 + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "x-nullable": true + } + } + }, + "Landing": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "attempt": { + "title": "Attempt", + "type": "boolean", + "x-nullable": true + }, + "success": { + "title": "Success", + "type": "boolean", + "x-nullable": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048 + }, + "location": { + "$ref": "#/definitions/LandingLocation" + }, + "type": { + "$ref": "#/definitions/LandingType" + } + } + }, + "LaunchSerializerMini": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string", + "format": "uuid", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 2048 + } + } + }, + "FirstStage": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "type": { + "title": "Type", + "type": "string", + "readOnly": true + }, + "reused": { + "title": "Reused", + "type": "boolean", + "x-nullable": true + }, + "launcher_flight_number": { + "title": "Launcher flight number", + "type": "string", + "readOnly": true + }, + "launcher": { + "$ref": "#/definitions/LauncherDetailed" + }, + "landing": { + "$ref": "#/definitions/Landing" + }, + "previous_flight_date": { + "title": "Previous flight date", + "type": "string", + "readOnly": true + }, + "turn_around_time_days": { + "title": "Turn around time days", + "type": "string", + "readOnly": true + }, + "previous_flight": { + "$ref": "#/definitions/LaunchSerializerMini" + } + } + }, + "AstronautDetailedSerializerNoFlights": { + "required": [ + "name", + "date_of_birth", + "nationality", + "bio" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "type": { + "$ref": "#/definitions/AstronautType" + }, + "status": { + "$ref": "#/definitions/AstronautStatus" + }, + "agency": { + "$ref": "#/definitions/AgencySerializerMini" + }, + "date_of_birth": { + "title": "Date of birth", + "type": "string", + "format": "date" + }, + "date_of_death": { + "title": "Date of death", + "type": "string", + "format": "date", + "x-nullable": true + }, + "nationality": { + "title": "Nationality", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "twitter": { + "title": "Twitter", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "instagram": { + "title": "Instagram", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "bio": { + "title": "Bio", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "profile_image": { + "title": "Profile image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "wiki": { + "title": "Wiki", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "last_flight": { + "title": "Last flight", + "type": "string", + "readOnly": true + }, + "first_flight": { + "title": "First flight", + "type": "string", + "readOnly": true + } + } + }, + "AstronautFlight": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "role": { + "$ref": "#/definitions/AstronautRole" + }, + "astronaut": { + "$ref": "#/definitions/AstronautDetailedSerializerNoFlights" + } + } + }, + "DockingEventSerializerForSpacecraftFlight": { + "required": [ + "docking" + ], + "type": "object", + "properties": { + "spacestation": { + "$ref": "#/definitions/SpaceStationSerializerForCommon" + }, + "docking": { + "title": "Docking", + "type": "string", + "format": "date-time" + }, + "departure": { + "title": "Departure", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "docking_location": { + "$ref": "#/definitions/DockingLocation" + } + } + }, + "SpacecraftFlightDetailedSerializerForLaunch": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer" + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "mission_end": { + "title": "Mission end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "destination": { + "title": "Destination", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "launch_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "onboard_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "landing_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "spacecraft": { + "$ref": "#/definitions/SpacecraftDetailedNoFlights" + }, + "docking_events": { + "type": "array", + "items": { + "$ref": "#/definitions/DockingEventSerializerForSpacecraftFlight" + }, + "readOnly": true + } + } + }, + "RocketDetailed": { + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "configuration": { + "$ref": "#/definitions/LauncherConfigDetail" + }, + "launcher_stage": { + "type": "array", + "items": { + "$ref": "#/definitions/FirstStage" + }, + "readOnly": true + }, + "spacecraft_stage": { + "$ref": "#/definitions/SpacecraftFlightDetailedSerializerForLaunch" + } + } + }, + "InfoURL": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "priority": { + "title": "Priority", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 350, + "x-nullable": true + }, + "feature_image": { + "title": "Feature image", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "VidURL": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "priority": { + "title": "Priority", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648 + }, + "title": { + "title": "Title", + "type": "string", + "maxLength": 200, + "x-nullable": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 350, + "x-nullable": true + }, + "feature_image": { + "title": "Feature image", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "minLength": 1 + } + } + }, + "LaunchDetailed": { + "required": [ + "slug" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "string", + "format": "uuid", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "slug": { + "title": "Slug", + "type": "string", + "minLength": 1 + }, + "flightclub_url": { + "title": "Flightclub url", + "type": "string", + "format": "uri", + "readOnly": true, + "minLength": 1 + }, + "r_spacex_api_id": { + "title": "R spacex api id", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "name": { + "title": "Name", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/LaunchStatus" + }, + "last_updated": { + "title": "Last updated", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updates": { + "type": "array", + "items": { + "$ref": "#/definitions/Update" + }, + "readOnly": true + }, + "net": { + "title": "Net", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "window_end": { + "title": "Window end", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "window_start": { + "title": "Window start", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "probability": { + "title": "Probability", + "type": "integer", + "readOnly": true + }, + "holdreason": { + "title": "Holdreason", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "failreason": { + "title": "Failreason", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "hashtag": { + "title": "Hashtag", + "type": "string", + "readOnly": true, + "minLength": 1 + }, + "launch_service_provider": { + "$ref": "#/definitions/AgencySerializerDetailedCommon" + }, + "rocket": { + "$ref": "#/definitions/RocketDetailed" + }, + "mission": { + "$ref": "#/definitions/Mission" + }, + "pad": { + "$ref": "#/definitions/Pad" + }, + "infoURLs": { + "type": "array", + "items": { + "$ref": "#/definitions/InfoURL" + }, + "readOnly": true + }, + "vidURLs": { + "type": "array", + "items": { + "$ref": "#/definitions/VidURL" + }, + "readOnly": true + }, + "webcast_live": { + "title": "Webcast live", + "type": "boolean", + "readOnly": true + }, + "image": { + "title": "Image", + "type": "string", + "readOnly": true + }, + "infographic": { + "title": "Infographic", + "type": "string", + "readOnly": true + }, + "program": { + "type": "array", + "items": { + "$ref": "#/definitions/Program" + }, + "readOnly": true + }, + "orbital_launch_attempt_count": { + "title": "Orbital launch attempt count", + "type": "integer", + "readOnly": true + }, + "location_launch_attempt_count": { + "title": "Location launch attempt count", + "type": "integer", + "readOnly": true + }, + "pad_launch_attempt_count": { + "title": "Pad launch attempt count", + "type": "integer", + "readOnly": true + }, + "agency_launch_attempt_count": { + "title": "Agency launch attempt count", + "type": "integer", + "readOnly": true + }, + "orbital_launch_attempt_count_year": { + "title": "Orbital launch attempt count year", + "type": "integer", + "readOnly": true + }, + "location_launch_attempt_count_year": { + "title": "Location launch attempt count year", + "type": "integer", + "readOnly": true + }, + "pad_launch_attempt_count_year": { + "title": "Pad launch attempt count year", + "type": "integer", + "readOnly": true + }, + "agency_launch_attempt_count_year": { + "title": "Agency launch attempt count year", + "type": "integer", + "readOnly": true + }, + "mission_patches": { + "type": "array", + "items": { + "$ref": "#/definitions/MissionPatch" + }, + "readOnly": true + }, + "notifications_enabled": { + "title": "Notifications enabled", + "type": "boolean" + } + } + }, + "Launcher": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "flight_proven": { + "title": "Flight proven", + "type": "boolean" + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 10, + "x-nullable": true + }, + "status": { + "title": "Status", + "type": "string", + "maxLength": 2048 + }, + "details": { + "title": "Details", + "type": "string", + "maxLength": 2048 + }, + "launcher_config": { + "$ref": "#/definitions/LauncherConfigList" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "flights": { + "title": "Flights", + "type": "string", + "readOnly": true + }, + "last_launch_date": { + "title": "Last launch date", + "type": "string", + "readOnly": true + }, + "first_launch_date": { + "title": "First launch date", + "type": "string", + "readOnly": true + } + } + }, + "LauncherDetail": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "flight_proven": { + "title": "Flight proven", + "type": "boolean" + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 10, + "x-nullable": true + }, + "status": { + "title": "Status", + "type": "string", + "maxLength": 2048 + }, + "details": { + "title": "Details", + "type": "string", + "maxLength": 2048 + }, + "launcher_config": { + "$ref": "#/definitions/LauncherConfigDetail" + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "successful_landings": { + "title": "Successful landings", + "type": "string", + "readOnly": true + }, + "attempted_landings": { + "title": "Attempted landings", + "type": "string", + "readOnly": true + }, + "flights": { + "title": "Flights", + "type": "string", + "readOnly": true + }, + "last_launch_date": { + "title": "Last launch date", + "type": "string", + "readOnly": true + }, + "first_launch_date": { + "title": "First launch date", + "type": "string", + "readOnly": true + } + } + }, + "PadSerializerNoLocation": { + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "agency_id": { + "title": "Agency id", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "info_url": { + "title": "Info url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "wiki_url": { + "title": "Wiki url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "map_url": { + "title": "Map url", + "type": "string", + "format": "uri", + "maxLength": 200, + "x-nullable": true + }, + "latitude": { + "title": "Latitude", + "type": "string", + "maxLength": 30, + "x-nullable": true + }, + "longitude": { + "title": "Longitude", + "type": "string", + "maxLength": 30, + "x-nullable": true + }, + "map_image": { + "title": "Map image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "total_launch_count": { + "title": "Total launch count", + "type": "string", + "readOnly": true + } + } + }, + "LocationDetail": { + "required": [ + "pads" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255 + }, + "country_code": { + "title": "Country code", + "type": "string", + "maxLength": 255 + }, + "map_image": { + "title": "Map image", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + }, + "total_launch_count": { + "title": "Total launch count", + "type": "string", + "readOnly": true + }, + "total_landing_count": { + "title": "Total landing count", + "type": "string", + "readOnly": true + }, + "pads": { + "type": "array", + "items": { + "$ref": "#/definitions/PadSerializerNoLocation" + } + } + } + }, + "SpacecraftFlightDetailed": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer" + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "mission_end": { + "title": "Mission end", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "destination": { + "title": "Destination", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "launch_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "onboard_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "landing_crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlight" + }, + "readOnly": true + }, + "spacecraft": { + "$ref": "#/definitions/SpacecraftDetailedNoFlights" + }, + "launch": { + "$ref": "#/definitions/LaunchSerializerCommon" + }, + "docking_events": { + "type": "array", + "items": { + "$ref": "#/definitions/DockingEventSerializerForSpacecraftFlight" + }, + "readOnly": true + } + } + }, + "SpacecraftDetailed": { + "required": [ + "name", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "serial_number": { + "title": "Serial number", + "type": "string", + "maxLength": 255, + "x-nullable": true + }, + "status": { + "$ref": "#/definitions/SpacecraftStatus" + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "spacecraft_config": { + "$ref": "#/definitions/SpacecraftConfigurationDetail" + }, + "flights": { + "type": "array", + "items": { + "$ref": "#/definitions/SpacecraftFlight" + }, + "readOnly": true + } + } + }, + "SpaceStationType": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + } + } + }, + "ExpeditionSerializerForSpacestation": { + "required": [ + "name", + "start" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time", + "x-nullable": true + } + } + }, + "SpaceStation": { + "required": [ + "name", + "founded", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/SpaceStationStatus" + }, + "type": { + "$ref": "#/definitions/SpaceStationType" + }, + "founded": { + "title": "Founded", + "type": "string", + "format": "date" + }, + "deorbited": { + "title": "Deorbited", + "type": "string", + "format": "date", + "x-nullable": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "orbit": { + "title": "Orbit", + "type": "string", + "readOnly": true + }, + "owners": { + "type": "array", + "items": { + "$ref": "#/definitions/AgencyList" + }, + "readOnly": true + }, + "active_expedition": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpeditionSerializerForSpacestation" + }, + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + }, + "ExpeditionDetailedSerializerForSpacestation": { + "required": [ + "name", + "start" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "start": { + "title": "Start", + "type": "string", + "format": "date-time" + }, + "end": { + "title": "End", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "crew": { + "type": "array", + "items": { + "$ref": "#/definitions/AstronautFlightForExpedition" + }, + "readOnly": true + } + } + }, + "SpacecraftFlightForDockingEvent": { + "required": [ + "id" + ], + "type": "object", + "properties": { + "id": { + "title": "Id", + "type": "integer" + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "spacecraft": { + "$ref": "#/definitions/SpacecraftDetailedNoFlights" + }, + "launch": { + "$ref": "#/definitions/LaunchSerializerCommon" + } + } + }, + "DockingEventDetailedSerializerForSpacestation": { + "required": [ + "docking" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "docking": { + "title": "Docking", + "type": "string", + "format": "date-time" + }, + "departure": { + "title": "Departure", + "type": "string", + "format": "date-time", + "x-nullable": true + }, + "flight_vehicle": { + "$ref": "#/definitions/SpacecraftFlightForDockingEvent" + } + } + }, + "DockingLocationSerializerForSpacestation": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "docked": { + "$ref": "#/definitions/DockingEventDetailedSerializerForSpacestation" + } + } + }, + "SpaceStationDetailed": { + "required": [ + "name", + "founded", + "description" + ], + "type": "object", + "properties": { + "id": { + "title": "ID", + "type": "integer", + "readOnly": true + }, + "url": { + "title": "Url", + "type": "string", + "format": "uri", + "readOnly": true + }, + "name": { + "title": "Name", + "type": "string", + "maxLength": 255, + "minLength": 1 + }, + "status": { + "$ref": "#/definitions/SpaceStationStatus" + }, + "type": { + "$ref": "#/definitions/SpaceStationType" + }, + "founded": { + "title": "Founded", + "type": "string", + "format": "date" + }, + "deorbited": { + "title": "Deorbited", + "type": "string", + "format": "date", + "x-nullable": true + }, + "height": { + "title": "Height (m)", + "type": "number", + "x-nullable": true + }, + "width": { + "title": "Width (m)", + "type": "number", + "x-nullable": true + }, + "mass": { + "title": "Mass (T)", + "type": "number", + "x-nullable": true + }, + "volume": { + "title": "Volume (m^3)", + "type": "integer", + "maximum": 2147483647, + "minimum": -2147483648, + "x-nullable": true + }, + "description": { + "title": "Description", + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "orbit": { + "title": "Orbit", + "type": "string", + "readOnly": true + }, + "onboard_crew": { + "title": "Onboard crew", + "type": "string", + "readOnly": true + }, + "owners": { + "type": "array", + "items": { + "$ref": "#/definitions/Agency" + }, + "readOnly": true + }, + "active_expeditions": { + "type": "array", + "items": { + "$ref": "#/definitions/ExpeditionDetailedSerializerForSpacestation" + }, + "readOnly": true + }, + "docking_location": { + "type": "array", + "items": { + "$ref": "#/definitions/DockingLocationSerializerForSpacestation" + }, + "readOnly": true + }, + "image_url": { + "title": "Image url", + "type": "string", + "readOnly": true, + "x-nullable": true, + "format": "uri" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://thespacedevs.com/llapi" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://thespacedevs.com/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Launch Library 2/apiProperties.json b/independent-publisher-connectors/Launch Library 2/apiProperties.json new file mode 100644 index 0000000000..e731cb82c5 --- /dev/null +++ b/independent-publisher-connectors/Launch Library 2/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor", + "stackOwner": "The Space Devs" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Launch Library 2/readme.md b/independent-publisher-connectors/Launch Library 2/readme.md new file mode 100644 index 0000000000..03f7457aed --- /dev/null +++ b/independent-publisher-connectors/Launch Library 2/readme.md @@ -0,0 +1,156 @@ +# Launch Library 2 by The Space Devs +The Launch Library API is a product by The Space Devs with an up-to-date database of Spaceflight events. While this API is free to use it is subject to rate limiting for non-authenticated requests. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +More information about the API can be found [here](https://thespacedevs.com/llapi). + +## Obtaining Credentials +There is no API key required for the API. + +## Supported Operations + +### Get all agencies +Get all agencies. +### Get an agency +Get an agency. +### Get all astronauts +Get all astronauts. +### Get an astronaut +Get an astronaut. +### Get agency configuration +Get agency configuration. +### Get an agency configuration +Get an agency configuration. +### Get astronaut role configuration +Get astronaut role configuration. +### Get an astronaut role configuration +Get astronaut role configuration. +### Get astronaut status configuration +Get astronaut status configuration. +### Get an astronaut status configuration +Get an astronaut status configuration. +### Get astronaut type configuration +Get astronaut type configuration. +### Get an astronaut type configuration +Get an astronaut type configuration. +### Get docking location configuration +Get docking location configuration. +### Get a docking location configuration +Get a docking location configuration. +### Get event type configuration +Get event type configuration. +### Get an event type configuration +Get an event type configuration. +### Get first stage type configuration +Get first stage type configuration. +### Get a first stage type configuration +Get a first stage type configuration. +### Get landing location configuration +Get landing location configuration. +### Get a landing location configuration +Get a landing location configuration. +### Get launcher configuration +Get launcher configuration. +###Get a launcher configuration +Get a launcher configuration. +### Get launch status configuration +Get launch status configuration. +### Get a launch status configuration +Get a launch status configuration. +### Get mission type configuration +Get mission type configuration. +### Get a mission type configuration +Get a mission type configuration. +### Get notice type configuration +Get notice type configuration. +### Get a notice type configuration +Get a notice type configuration. +### Get orbit configuration +Get orbit configuration. +### Get an orbit configuration +Get an orbit configuration. +### Get road closure status configuration +Get road closure status configuration. +### Get a road closure status configuration +Get a road closure status configuration. +### Get spacecraft configuration +Get spacecraft configuration. +### Get a spacecraft configuration +Get a spacecraft configuration. +### Get spacecraft status configuration +Get spacecraft status configuration. +### Get a spacecraft status configuration +Get a spacecraft status configuration. +### Get spacestation status configuration +Get spacestation status configuration. +### Get a spacestation status configuration +Get a spacestation status configuration. +### Get docking events +Get docking events. +### Get a docking event +Get a docking event. +### Get events +Get events. +### Get an event +Get an event. +### Get previous events +Get previous events. +### Get a previous event +Get a previous event. +### Get upcoming events +Get upcoming events. +### Get an upcoming events +Get an upcoming events. +### Get expeditions +Get expeditions. +### Get an expedition +Get an expedition. +### Get launches +Get launches. +### Get a launch +Get a launch. +### Get previous launches +Get previous launches. +### Get a previous launch +Get a previous launch. +### Get future launches +Get future launches. +### Get a future launch +Get a future launch. +### Get launchers +Get launchers. +### Get a launcher +Get a launcher. +### Get locations +Get locations. +### Get a location +Get a location. +### Get pads +Get pads. +### Get a pad +Get a pad. +### Get programs +Get programs. +### Get a program +Get a program. +### Get spacecrafts +Get spacecrafts. +### Get a spacecraft +Get a spacecraft. +### Get spacecraft flights +Get spacecraft flights. +### Get a spacecraft flight +Get a spacecraft flight. +### Get space stations +Get space stations. +### Get a space station +Get a space station. +### Get updates +Get updates. +### Get an update +Get an update. + +## Known Issues and Limitations +All API data is available at no cost for up to 300 requests per day. From d7b8dd42fc1bfaafcf33f06c50d716e868748f83 Mon Sep 17 00:00:00 2001 From: RoyPaarMS <86677937+RoyPaarMS@users.noreply.github.com> Date: Tue, 9 Nov 2021 14:30:02 -0600 Subject: [PATCH 121/219] Coinbase (Independent Publisher) (#1187) * Coinbase (Independent Publisher) Initial Commit * Coinbase (Independent Publisher) Updates after running validation tool * Coinbase (Independent Publisher) Updated category * Coinbase (Independent Publisher) Updated description. * Coinbase (Independent Publisher) Updated readme --- .../Coinbase/apiDefinition.swagger.json | 165 ++++++++++++++++++ .../Coinbase/apiProperties.json | 9 + .../Coinbase/readme.md | 23 +++ 3 files changed, 197 insertions(+) create mode 100644 independent-publisher-connectors/Coinbase/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Coinbase/apiProperties.json create mode 100644 independent-publisher-connectors/Coinbase/readme.md diff --git a/independent-publisher-connectors/Coinbase/apiDefinition.swagger.json b/independent-publisher-connectors/Coinbase/apiDefinition.swagger.json new file mode 100644 index 0000000000..14b4cde529 --- /dev/null +++ b/independent-publisher-connectors/Coinbase/apiDefinition.swagger.json @@ -0,0 +1,165 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Coinbase", + "description": "A connector to the Coinbase platform to fetch cryptocurrency market rates and exchange rates.", + "contact": { + "name": "Roy Paar", + "email": "roypaar@microsoft.com" + } + }, + "host": "api.coinbase.com", + "basePath": "/v2/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/prices/{currency_pair}/spot": { + "get": { + "summary": "Get Spot Price", + "description": "Get a market rate for a cryptocurrency in the format of BTC-USD.", + "operationId": "GetSpotPrice", + "parameters": [ + { + "name": "currency_pair", + "required": true, + "in": "path", + "type": "string", + "x-ms-summary": "Currency Pair", + "description": "The pair of currencies to fetch market rates for/in.", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/GetSpotPriceResponse" + } + } + } + } + }, + "/currencies": { + "get": { + "summary": "Get Currencies", + "description": "Get a list of all fiat currencies.", + "operationId": "GetCurrencies", + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/GetCurrenciesResponse" + } + } + } + } + }, + "/exchange-rates": { + "get": { + "summary": "Get Exchange Rates", + "description": "Get an exchange rate for a cryptocurrency.", + "operationId": "GetExchangeRate", + "parameters": [ + { + "name": "currency", + "required": true, + "in": "query", + "type": "string", + "x-ms-summary": "Currency", + "description": "The currency code for which you would like exchange rates." + } + ], + "responses": { + "200": { + "description": "The operation was successful.", + "schema": { + "$ref": "#/definitions/GetExchangeRateResponse" + } + } + } + } + } + }, + "definitions": { + "GetSpotPriceResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "GetCurrenciesResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "GetExchangeRateResponse": { + "type": "object", + "properties": { + "statusDetails": { + "$ref": "#/definitions/statusDetails" + } + } + }, + "statusDetails": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "statusCode": { + "type": "string" + }, + "messages": { + "type": "array", + "items": { + "$ref": "#/definitions/messages" + } + } + } + }, + "messages": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "description": { + "type": "string" + }, + "id": { + "type": "string" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://coinbase.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.coinbase.com/legal/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Finance" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Coinbase/apiProperties.json b/independent-publisher-connectors/Coinbase/apiProperties.json new file mode 100644 index 0000000000..db8f662bb2 --- /dev/null +++ b/independent-publisher-connectors/Coinbase/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Roy Paar", + "stackOwner": "Coinbase" + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Coinbase/readme.md b/independent-publisher-connectors/Coinbase/readme.md new file mode 100644 index 0000000000..7ca1e1af36 --- /dev/null +++ b/independent-publisher-connectors/Coinbase/readme.md @@ -0,0 +1,23 @@ +# Coinbase +The Coinbase platform allows anyone to get crypto exchange rates, currencies, and current crypto market rates at a point in time. This connector allows a user to pull this data into their app, flow, or report. + +## Publisher: Roy Paar + +## Prerequisites +None. + +## Supported Operations +### Get Currencies +Get a list of fiat currencies by code. + +### Get Exchange Rates +Get a list of exchange rates. Enter a three-digit currency code i.e. BTC as a parameter (can be crypto) to see that currency compared to all other currencies. + +### Get Spot Price +Get a market rate for a currency. Enter two three-digit currency codes separated by a hyphen i.e. BTC-USD to see the market rate of the first currency in the denomination of the second. + +## API Documentation +https://developers.coinbase.com/api/v2 + +## Known Issues and Limitations +None. From d90818a64474c7a6d95de512b5e853933093d305 Mon Sep 17 00:00:00 2001 From: Rens Braspenning Date: Fri, 12 Nov 2021 23:50:24 +0100 Subject: [PATCH 122/219] [Share-Effect] Fix status codes (#1227) * Update apiDefinition.swagger.json * merged * Removed empty value properties * Update apiDefinition.swagger.json * Update apiProperties.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json Co-authored-by: Rens Braspenning --- .../ShareEffect/apiDefinition.swagger.json | 48 ++++++++++++++++--- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/certified-connectors/ShareEffect/apiDefinition.swagger.json b/certified-connectors/ShareEffect/apiDefinition.swagger.json index bd558e5949..a2e6510642 100644 --- a/certified-connectors/ShareEffect/apiDefinition.swagger.json +++ b/certified-connectors/ShareEffect/apiDefinition.swagger.json @@ -92,8 +92,25 @@ } ], "responses": { - "default": { - "description": "default" + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Result": { + "type": "string", + "description": "Result" + }, + "Termid": { + "type": "string", + "description": "Termid" + }, + "LicenseExpires": { + "type": "string", + "description": "LicenseExpires" + } + } + } } }, "summary": "Add or update term" @@ -179,8 +196,25 @@ } ], "responses": { - "default": { - "description": "default" + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "Result": { + "type": "string", + "description": "Result" + }, + "Termid": { + "type": "string", + "description": "Termid" + }, + "LicenseExpires": { + "type": "string", + "description": "LicenseExpires" + } + } + } } }, "summary": "Add or update term by key value", @@ -220,7 +254,7 @@ } ], "responses": { - "300": { + "200": { "description": "default", "schema": { "items": { @@ -258,7 +292,7 @@ } ], "responses": { - "400": { + "200": { "description": "default", "schema": { "items": { @@ -301,7 +335,7 @@ } ], "responses": { - "100": { + "200": { "description": "default", "schema": { "items": { From 575527770fb89520ea0a9628b88230bd4ec9fb53 Mon Sep 17 00:00:00 2001 From: Rune Mehlsen Date: Thu, 11 Nov 2021 02:04:29 +0100 Subject: [PATCH 123/219] Ideanote (Certified Connector) (#1245) * Add Ideanote connector * Update the Ideanote README * Correctly format Ideanote apiProperties.json * Add publisher section to Ideanote readme --- certified-connectors/Ideanote/README.md | 42 + .../Ideanote/apiDefinition.swagger.json | 2445 +++++++++++++++++ .../Ideanote/apiProperties.json | 23 + 3 files changed, 2510 insertions(+) create mode 100644 certified-connectors/Ideanote/README.md create mode 100644 certified-connectors/Ideanote/apiDefinition.swagger.json create mode 100644 certified-connectors/Ideanote/apiProperties.json diff --git a/certified-connectors/Ideanote/README.md b/certified-connectors/Ideanote/README.md new file mode 100644 index 0000000000..5a79a6113b --- /dev/null +++ b/certified-connectors/Ideanote/README.md @@ -0,0 +1,42 @@ +# Ideanote +Ideanote is the next-generation innovation software that has everything you need to collect, develop, prioritize and act on more of the right ideas. This connector exposes actions that enable you to invite and update users as well as list missions, ideas and comments. The connector also makes it possible with triggers to subscribe to various important events. + +## Publisher: Ideanote ApS + +## Prerequisites +An Ideanote account. Create a new account at https://ideanote.io/. + +## Supported Operations + +### Supported Triggers + +* `NewComment`: When a comment is created +* `NewIdea`: When an idea is created +* `NewUser`: When a user is created +* `NewLike`: When an idea or comment is liked +* `FinishRating`: When someone rates an idea +* `UpdatedIdeaPhase`: When the phase of an idea changes +* `UpdatedIdeaStatus`: When the status of an idea changes + +### Supported Actions + +* `CreateUser`: Create user +* `UpdateUser`: Update user +* `ListMissions`: List all missions +* `ListIdeas`: List all ideas +* `ListIdeasForMission`: List all ideas for a mission +* `ListCommentsForIdea`: List all comments for an idea + +## Obtaining Credentials +Please follow these steps to obtain credentials: + +1. Login to Ideanote +2. Go to settings/integrations and click `Power Automate` +3. Copy the `API Token` from the dialog + +## Known Issues and Limitations +- It is not currently possible to create new missions, ideas or comments. +- It is not currently possible to access dynamic data using the `NewIdea` trigger. + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. diff --git a/certified-connectors/Ideanote/apiDefinition.swagger.json b/certified-connectors/Ideanote/apiDefinition.swagger.json new file mode 100644 index 0000000000..3520519117 --- /dev/null +++ b/certified-connectors/Ideanote/apiDefinition.swagger.json @@ -0,0 +1,2445 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Ideanote", + "description": "Ideanote is the next-generation innovation software that has everything you need to collect, develop, prioritize and act on more of the right ideas.", + "contact": { + "name": "Ideanote,", + "url": "https://help.ideanote.io/", + "email": "hello@ideanote.io" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://ideanote.io" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://ideanote.io/legal/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Collaboration;Productivity" + } + ], + "host": "api.ideanote.io", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/v1/missions": { + "get": { + "operationId": "ListMissions", + "summary": "List all missions", + "description": "List all missions", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Offset", + "x-ms-summary": "Offset" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Limit", + "x-ms-summary": "Limit" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Missions", + "schema": { + "$ref": "#/definitions/Missions" + } + } + } + } + }, + "/v1/ideas": { + "get": { + "operationId": "ListIdeas", + "summary": "List all ideas", + "description": "List all ideas", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Offset", + "x-ms-summary": "Offset" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Limit", + "x-ms-summary": "Limit" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Ideas", + "schema": { + "$ref": "#/definitions/Ideas" + } + } + } + } + }, + "/v1/missions/{missionId}/ideas": { + "get": { + "operationId": "ListIdeasForMission", + "summary": "List all ideas for a mission", + "description": "List all ideas for a mission", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "missionId", + "in": "path", + "x-ms-summary": "Mission ID", + "description": "ID of the mission", + "required": true, + "x-ms-url-encoding": "single", + "type": "string" + }, + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Offset", + "x-ms-summary": "Offset" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Limit", + "x-ms-summary": "Limit" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Ideas", + "schema": { + "$ref": "#/definitions/Ideas" + } + } + } + } + }, + "/v1/ideas/{ideaId}/comments": { + "get": { + "operationId": "ListCommentsForIdea", + "summary": "List all comments for an idea", + "description": "List all comments for an idea", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "ideaId", + "in": "path", + "x-ms-summary": "Idea ID", + "description": "ID of the idea", + "required": true, + "x-ms-url-encoding": "single", + "type": "string" + }, + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Offset", + "x-ms-summary": "Offset" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Limit", + "x-ms-summary": "Limit" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Comments", + "schema": { + "$ref": "#/definitions/Comments" + } + } + } + } + }, + "/v1/users/{userId}": { + "put": { + "operationId": "UpdateUser", + "summary": "Update user", + "description": "Update a specific user", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "userId", + "in": "path", + "x-ms-summary": "User ID", + "description": "ID of the user to update", + "required": true, + "x-ms-url-encoding": "single", + "type": "string" + }, + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "email": { + "title": "Email Address", + "type": "string", + "x-ms-visibility": "important" + }, + "firstName": { + "title": "First Name", + "type": "string", + "x-ms-visibility": "important" + }, + "lastName": { + "title": "Last Name", + "type": "string", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "User", + "schema": { + "$ref": "#/definitions/User" + } + } + } + } + }, + "/v1/users": { + "post": { + "operationId": "CreateUser", + "summary": "Create user", + "description": "Create a new user on the workspace", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "flat", + "in": "query", + "required": true, + "type": "string", + "default": "true", + "x-ms-visibility": "internal", + "description": "Flat response", + "x-ms-summary": "Flat response" + }, + { + "name": "offset", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Offset", + "x-ms-summary": "Offset" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "x-ms-visibility": "advanced", + "description": "Limit", + "x-ms-summary": "Limit" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "send_invitation", + "x-ms-summary": "Send invitation email", + "description": "Choose if the user should receive an invitation email to sign up", + "in": "query", + "type": "boolean", + "default": true + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "email": { + "title": "Email Address", + "type": "string", + "x-ms-visibility": "important" + }, + "firstName": { + "title": "First Name", + "type": "string", + "x-ms-visibility": "important" + }, + "lastName": { + "title": "Last Name", + "type": "string", + "x-ms-visibility": "important" + } + }, + "x-ms-visibility": "important", + "required": [ + "email" + ] + }, + "x-ms-visibility": "important" + } + ], + "responses": { + "201": { + "description": "User", + "schema": { + "$ref": "#/definitions/User" + } + } + } + } + }, + "/webhooks/{hookId}": { + "delete": { + "parameters": [ + { + "name": "hookId", + "in": "path", + "description": "ID of the Hook being deleted", + "required": true, + "x-ms-url-encoding": "single", + "type": "string" + } + ], + "x-ms-visibility": "internal", + "description": "Deletes a webhook", + "summary": "Deletes a webhook", + "operationId": "DeleteWebhook", + "responses": { + "default": { + "description": "No content" + } + } + } + }, + "/webhooks/finish_rating": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/FinishRating" + } + }, + "post": { + "operationId": "FinishRating", + "summary": "When someone rates an idea", + "description": "When someone rates an idea", + "x-ms-trigger": "single", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "finish_rating", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/new_idea": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/NewIdea" + } + }, + "post": { + "operationId": "NewIdea", + "summary": "When an idea is created", + "description": "When an idea is created", + "x-ms-trigger": "single", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "new_idea", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/new_user": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/NewUser" + } + }, + "post": { + "x-ms-trigger": "single", + "summary": "When a user is created", + "description": "When a user is created", + "operationId": "NewUser", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "new_user", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/new_comment": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/NewComment" + } + }, + "post": { + "x-ms-trigger": "single", + "summary": "When a comment is created", + "description": "When a comment is created", + "operationId": "NewComment", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "new_comment", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/new_like": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/NewLike" + } + }, + "post": { + "x-ms-trigger": "single", + "summary": "When an idea or comment is liked", + "description": "When an idea or comment is liked", + "operationId": "NewLike", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "new_like", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/updated_idea_status": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/UpdatedIdeaStatus" + } + }, + "post": { + "x-ms-trigger": "single", + "summary": "When the status of an idea is changed", + "description": "When the status of an idea is changed", + "operationId": "UpdatedIdeaStatus", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "updated_idea_status", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + }, + "/webhooks/updated_idea_phase": { + "x-ms-notification-content": { + "description": "Idea", + "schema": { + "$ref": "#/definitions/UpdatedIdeaPhase" + } + }, + "post": { + "x-ms-trigger": "single", + "summary": "When the phase of an idea is changed", + "description": "When the phase of an idea is changed", + "operationId": "UpdatedIdeaPhase", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "targetUrl": { + "type": "string", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + }, + "kind": { + "type": "string", + "default": "updated_idea_phase", + "x-ms-visibility": "internal" + } + }, + "x-ms-visibility": "internal", + "required": [ + "kind", + "targetUrl" + ] + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "201": { + "description": "default", + "schema": { + "$ref": "#/definitions/Model" + } + } + } + } + } + }, + "definitions": { + "Model": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id" + } + } + }, + "NewIdea": { + "type": "object", + "properties": { + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "UpdatedIdeaPhase": { + "type": "object", + "properties": { + "phase_from_id": { + "type": "string", + "x-ms-summary": "Phase From Id" + }, + "phase_from_name": { + "type": "string", + "x-ms-summary": "Phase From Name" + }, + "phase_to_id": { + "type": "string", + "x-ms-summary": "Phase To Id" + }, + "phase_to_name": { + "type": "string", + "x-ms-summary": "Phase To Name" + }, + "phase_updated_by_id": { + "type": "string", + "x-ms-summary": "Phase Updated By Id" + }, + "phase_updated_by_email": { + "type": "string", + "x-ms-summary": "Phase Updated By Email" + }, + "phase_updated_by_alias": { + "type": "string", + "x-ms-summary": "Phase Updated By Alias" + }, + "phase_updated_by_first_name": { + "type": "string", + "x-ms-summary": "Phase Updated By First Name" + }, + "phase_updated_by_last_name": { + "type": "string", + "x-ms-summary": "Phase Updated By Last Name" + }, + "phase_updated_by_name": { + "type": "string", + "x-ms-summary": "Phase Updated By Name" + }, + "phase_updated_by_department": { + "type": "string", + "x-ms-summary": "Phase Updated By Department" + }, + "phase_updated_by_country": { + "type": "string", + "x-ms-summary": "Phase Updated By Country" + }, + "phase_updated_by_url": { + "type": "string", + "x-ms-summary": "Phase Updated By URL" + }, + "phase_updated_by_url_path": { + "type": "string", + "x-ms-summary": "Phase Updated By URL Path" + }, + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "UpdatedIdeaStatus": { + "type": "object", + "properties": { + "status_from_id": { + "type": "string", + "x-ms-summary": "Status From Id" + }, + "status_from_kind": { + "type": "string", + "x-ms-summary": "Status From Kind" + }, + "status_from_title": { + "type": "string", + "x-ms-summary": "Status From Title" + }, + "status_from_text": { + "type": "string", + "x-ms-summary": "Status From Text" + }, + "status_to_id": { + "type": "string", + "x-ms-summary": "Status To Id" + }, + "status_to_kind": { + "type": "string", + "x-ms-summary": "Status To Kind" + }, + "status_to_title": { + "type": "string", + "x-ms-summary": "Status To Title" + }, + "status_to_text": { + "type": "string", + "x-ms-summary": "Status To Text" + }, + "status_updated_by_id": { + "type": "string", + "x-ms-summary": "Phase Updated By Id" + }, + "status_updated_by_email": { + "type": "string", + "x-ms-summary": "Phase Updated By Email" + }, + "status_updated_by_alias": { + "type": "string", + "x-ms-summary": "Phase Updated By Alias" + }, + "status_updated_by_first_name": { + "type": "string", + "x-ms-summary": "Phase Updated By First Name" + }, + "status_updated_by_last_name": { + "type": "string", + "x-ms-summary": "Phase Updated By Last Name" + }, + "status_updated_by_name": { + "type": "string", + "x-ms-summary": "Phase Updated By Name" + }, + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "NewComment": { + "type": "object", + "properties": { + "comment_id": { + "type": "string", + "x-ms-summary": "Comment Id" + }, + "comment_text": { + "type": "string", + "x-ms-summary": "Comment Text" + }, + "comment_url": { + "type": "string", + "x-ms-summary": "Comment URL" + }, + "comment_url_path": { + "type": "string", + "x-ms-summary": "Comment URL Path" + }, + "comment_anonymity": { + "type": "string", + "x-ms-summary": "Comment Anonymity" + }, + "comment_sender_id": { + "type": "string", + "x-ms-summary": "Comment Sender Id" + }, + "comment_sender_email": { + "type": "string", + "x-ms-summary": "Comment Sender Email" + }, + "comment_sender_alias": { + "type": "string", + "x-ms-summary": "Comment Sender Alias" + }, + "comment_sender_first_name": { + "type": "string", + "x-ms-summary": "Comment Sender Last Name" + }, + "comment_sender_last_name": { + "type": "string", + "x-ms-summary": "Comment Sender First Name" + }, + "comment_sender_name": { + "type": "string", + "x-ms-summary": "Comment Sender Name" + }, + "comment_sender_department": { + "type": "string", + "x-ms-summary": "Comment Sender Department" + }, + "comment_sender_country": { + "type": "string", + "x-ms-summary": "Comment Sender Country" + }, + "comment_sender_url": { + "type": "string", + "x-ms-summary": "Comment Sender URL" + }, + "comment_sender_url_path": { + "type": "string", + "x-ms-summary": "Comment Sender URL Path" + }, + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "NewUser": { + "type": "object", + "properties": { + "user_id": { + "type": "string", + "x-ms-summary": "User Id" + }, + "user_email": { + "type": "string", + "x-ms-summary": "User Email" + }, + "user_alias": { + "type": "string", + "x-ms-summary": "User Alias" + }, + "user_first_name": { + "type": "string", + "x-ms-summary": "User Last Name" + }, + "user_last_name": { + "type": "string", + "x-ms-summary": "User First Name" + }, + "user_name": { + "type": "string", + "x-ms-summary": "User Name" + }, + "user_department": { + "type": "string", + "x-ms-summary": "User Department" + }, + "user_country": { + "type": "string", + "x-ms-summary": "User Country" + }, + "user_url": { + "type": "string", + "x-ms-summary": "User URL" + }, + "user_url_path": { + "type": "string", + "x-ms-summary": "User URL Path" + } + } + }, + "FinishRating": { + "type": "object", + "properties": { + "user_id": { + "type": "string", + "x-ms-summary": "User Id" + }, + "user_email": { + "type": "string", + "x-ms-summary": "User Email" + }, + "user_alias": { + "type": "string", + "x-ms-summary": "User Alias" + }, + "user_first_name": { + "type": "string", + "x-ms-summary": "User Last Name" + }, + "user_last_name": { + "type": "string", + "x-ms-summary": "User First Name" + }, + "user_name": { + "type": "string", + "x-ms-summary": "User Name" + }, + "user_department": { + "type": "string", + "x-ms-summary": "User Department" + }, + "user_country": { + "type": "string", + "x-ms-summary": "User Country" + }, + "user_url": { + "type": "string", + "x-ms-summary": "User URL" + }, + "user_url_path": { + "type": "string", + "x-ms-summary": "User URL Path" + }, + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "NewLike": { + "type": "object", + "properties": { + "like_id": { + "type": "string", + "x-ms-summary": "Like Id" + }, + "like_kind": { + "type": "string", + "x-ms-summary": "Like Kind" + }, + "like_sender_id": { + "type": "string", + "x-ms-summary": "Liked By Id" + }, + "like_sender_email": { + "type": "string", + "x-ms-summary": "Liked By Email" + }, + "like_sender_alias": { + "type": "string", + "x-ms-summary": "Liked By Alias" + }, + "like_sender_first_name": { + "type": "string", + "x-ms-summary": "Liked By Last Name" + }, + "like_sender_last_name": { + "type": "string", + "x-ms-summary": "Liked By First Name" + }, + "like_sender_name": { + "type": "string", + "x-ms-summary": "Liked By Name" + }, + "like_sender_department": { + "type": "string", + "x-ms-summary": "Liked By Department" + }, + "like_sender_country": { + "type": "string", + "x-ms-summary": "Liked By Country" + }, + "like_sender_url": { + "type": "string", + "x-ms-summary": "Liked By URL" + }, + "like_sender_url_path": { + "type": "string", + "x-ms-summary": "Liked By URL Path" + }, + "comment_id": { + "type": "string", + "x-ms-summary": "Comment Id" + }, + "comment_text": { + "type": "string", + "x-ms-summary": "Comment Text" + }, + "comment_url": { + "type": "string", + "x-ms-summary": "Comment URL" + }, + "comment_anonymity": { + "type": "string", + "x-ms-summary": "Comment Anonymity" + }, + "comment_sender_id": { + "type": "string", + "x-ms-summary": "Comment Sender Id" + }, + "comment_sender_email": { + "type": "string", + "x-ms-summary": "Comment Sender Email" + }, + "comment_sender_alias": { + "type": "string", + "x-ms-summary": "Comment Sender Alias" + }, + "comment_sender_first_name": { + "type": "string", + "x-ms-summary": "Comment Sender Last Name" + }, + "comment_sender_last_name": { + "type": "string", + "x-ms-summary": "Comment Sender First Name" + }, + "comment_sender_name": { + "type": "string", + "x-ms-summary": "Comment Sender Name" + }, + "comment_sender_department": { + "type": "string", + "x-ms-summary": "Comment Sender Department" + }, + "comment_sender_country": { + "type": "string", + "x-ms-summary": "Comment Sender Country" + }, + "comment_sender_url": { + "type": "string", + "x-ms-summary": "Comment Sender URL" + }, + "comment_sender_url_path": { + "type": "string", + "x-ms-summary": "Comment Sender URL Path" + }, + "idea_id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "idea_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "idea_submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "idea_content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "idea_content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "idea_content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "idea_content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "idea_language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "idea_stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "idea_stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "idea_stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "idea_status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "idea_status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "idea_status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "idea_status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "idea_phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "idea_phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "idea_owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "idea_owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "idea_owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "idea_owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "idea_owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "idea_owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "idea_owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "idea_owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "idea_owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "idea_owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "idea_mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "idea_mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "idea_mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "idea_mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "idea_mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "idea_mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "idea_workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "idea_workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "idea_workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "User Id" + }, + "email": { + "type": "string", + "x-ms-summary": "User Email" + }, + "alias": { + "type": "string", + "x-ms-summary": "User Alias" + }, + "first_name": { + "type": "string", + "x-ms-summary": "User Last Name" + }, + "last_name": { + "type": "string", + "x-ms-summary": "User First Name" + }, + "name": { + "type": "string", + "x-ms-summary": "User Name" + }, + "department": { + "type": "string", + "x-ms-summary": "User Department" + }, + "country": { + "type": "string", + "x-ms-summary": "User Country" + }, + "url": { + "type": "string", + "x-ms-summary": "User URL" + }, + "url_path": { + "type": "string", + "x-ms-summary": "User URL Path" + } + } + }, + "Mission": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Mission Id" + }, + "friendly_id": { + "type": "integer", + "x-ms-summary": "Mission Friendly Id" + }, + "title": { + "type": "string", + "x-ms-summary": "Mission Title" + }, + "question": { + "type": "string", + "x-ms-summary": "Mission Question" + }, + "url": { + "type": "string", + "x-ms-summary": "Mission URL" + }, + "url_path": { + "type": "string", + "x-ms-summary": "Mission URL Path" + } + } + }, + "Missions": { + "type": "array", + "items": { + "$ref": "#/definitions/Mission" + } + }, + "Idea": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Idea Id" + }, + "friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Friendly Id" + }, + "submitted_at": { + "type": "string", + "x-ms-summary": "Idea Submitted At" + }, + "content": { + "type": "string", + "x-ms-summary": "Idea Content" + }, + "content_markdown": { + "type": "string", + "x-ms-summary": "Idea Content Markdown" + }, + "content_json": { + "type": "string", + "x-ms-summary": "Idea Content JSON" + }, + "content_html": { + "type": "string", + "x-ms-summary": "Idea Content HTML" + }, + "language": { + "type": "string", + "x-ms-summary": "Idea Language" + }, + "stats_likes": { + "type": "number", + "x-ms-summary": "Idea Stats Like Count" + }, + "stats_comments": { + "type": "number", + "x-ms-summary": "Idea Stats Comment Count" + }, + "stats_total_avg_rating": { + "type": "number", + "x-ms-summary": "Idea Stats Total Average Rating" + }, + "status_id": { + "type": "string", + "x-ms-summary": "Idea Status Id" + }, + "status_kind": { + "type": "string", + "x-ms-summary": "Idea Status Kind" + }, + "status_title": { + "type": "string", + "x-ms-summary": "Idea Status Title" + }, + "status_text": { + "type": "string", + "x-ms-summary": "Idea Status Text" + }, + "phase_id": { + "type": "string", + "x-ms-summary": "Idea Phase Id" + }, + "phase_name": { + "type": "string", + "x-ms-summary": "Idea Phase Name" + }, + "owner_id": { + "type": "string", + "x-ms-summary": "Idea Owner Id" + }, + "owner_email": { + "type": "string", + "x-ms-summary": "Idea Owner Email" + }, + "owner_alias": { + "type": "string", + "x-ms-summary": "Idea Owner Alias" + }, + "owner_first_name": { + "type": "string", + "x-ms-summary": "Idea Owner First Name" + }, + "owner_last_name": { + "type": "string", + "x-ms-summary": "Idea Owner Last Name" + }, + "owner_name": { + "type": "string", + "x-ms-summary": "Idea Owner Name" + }, + "owner_department": { + "type": "string", + "x-ms-summary": "Idea Owner Department" + }, + "owner_country": { + "type": "string", + "x-ms-summary": "Idea Owner Country" + }, + "owner_url": { + "type": "string", + "x-ms-summary": "Idea Owner URL" + }, + "owner_url_path": { + "type": "string", + "x-ms-summary": "Idea Owner URL Path" + }, + "mission_id": { + "type": "string", + "x-ms-summary": "Idea Mission Id" + }, + "mission_friendly_id": { + "type": "integer", + "x-ms-summary": "Idea Mission Friendly Id" + }, + "mission_title": { + "type": "string", + "x-ms-summary": "Idea Mission Title" + }, + "mission_question": { + "type": "string", + "x-ms-summary": "Idea Mission Question" + }, + "mission_url": { + "type": "string", + "x-ms-summary": "Idea Mission URL" + }, + "mission_url_path": { + "type": "string", + "x-ms-summary": "Idea Mission URL Path" + }, + "workspace_id": { + "type": "string", + "x-ms-summary": "Idea Workspace Id" + }, + "workspace_name": { + "type": "string", + "x-ms-summary": "Idea Workspace Name" + }, + "workspace_subdomain": { + "type": "string", + "x-ms-summary": "Idea Workspace Subdomain" + } + } + }, + "Ideas": { + "type": "array", + "items": { + "$ref": "#/definitions/Idea" + } + }, + "Comment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "x-ms-summary": "Comment Id" + }, + "text": { + "type": "string", + "x-ms-summary": "Comment Text" + }, + "url": { + "type": "string", + "x-ms-summary": "Comment URL" + }, + "url_path": { + "type": "string", + "x-ms-summary": "Comment URL" + }, + "anonymity": { + "type": "string", + "x-ms-summary": "Comment Anonymity" + }, + "sender_id": { + "type": "string", + "x-ms-summary": "Comment Sender Id" + }, + "sender_email": { + "type": "string", + "x-ms-summary": "Comment Sender Email" + }, + "sender_alias": { + "type": "string", + "x-ms-summary": "Comment Sender Alias" + }, + "sender_first_name": { + "type": "string", + "x-ms-summary": "Comment Sender Last Name" + }, + "sender_last_name": { + "type": "string", + "x-ms-summary": "Comment Sender First Name" + }, + "sender_name": { + "type": "string", + "x-ms-summary": "Comment Sender Name" + }, + "sender_department": { + "type": "string", + "x-ms-summary": "Comment Sender Department" + }, + "sender_country": { + "type": "string", + "x-ms-summary": "Comment Sender Country" + }, + "sender_url": { + "type": "string", + "x-ms-summary": "Comment Sender URL" + }, + "sender_url_path": { + "type": "string", + "x-ms-summary": "Comment Sender URL Path" + } + } + }, + "Comments": { + "type": "array", + "items": { + "$ref": "#/definitions/Comment" + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [] +} diff --git a/certified-connectors/Ideanote/apiProperties.json b/certified-connectors/Ideanote/apiProperties.json new file mode 100644 index 0000000000..bf79ebb146 --- /dev/null +++ b/certified-connectors/Ideanote/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Token", + "description": "The API Token for this connector", + "tooltip": "Provide your API Token", + "constraints": { + "clearText": false, + "required": "true", + "tabIndex": 2 + } + } + } + }, + "iconBrandColor": "#1636e8", + "capabilities": [], + "publisher": "Ideanote", + "stackOwner": "Ideanote" + } +} From a4b5d81b16122a901960607e3f762b0c5524f7f6 Mon Sep 17 00:00:00 2001 From: dches <93600266+dches@users.noreply.github.com> Date: Thu, 11 Nov 2021 04:07:07 +0300 Subject: [PATCH 124/219] Adobe Creative Cloud Libraries (Certified Connector) (#1241) * add Adobe Creative Cloud Libraries connector * remove x-api-key * add a description for callback urls * update readme.md * remove "indesign_services" scope * add publisher to readme.md * remove "indesign_services" scope * remove "clientId_OAuthWeb" parameter --- .../Adobe Creative Cloud Libraries/README.md | 27 + .../apiDefinition.swagger.json | 588 ++++++++++++++++++ .../apiProperties.json | 43 ++ 3 files changed, 658 insertions(+) create mode 100644 certified-connectors/Adobe Creative Cloud Libraries/README.md create mode 100644 certified-connectors/Adobe Creative Cloud Libraries/apiDefinition.swagger.json create mode 100644 certified-connectors/Adobe Creative Cloud Libraries/apiProperties.json diff --git a/certified-connectors/Adobe Creative Cloud Libraries/README.md b/certified-connectors/Adobe Creative Cloud Libraries/README.md new file mode 100644 index 0000000000..1b5e530088 --- /dev/null +++ b/certified-connectors/Adobe Creative Cloud Libraries/README.md @@ -0,0 +1,27 @@ +# Adobe Creative Cloud Libraries +Adobe Creative Cloud Libraries lets you connect Creative Cloud Libraries with thousands of the most popular apps so you can automate your work and have more time for what matters most-no code required. + +## Publisher: Adobe, Inc. + +## Pre-requisites +N/A + +## Supported Operations + +### Create a new Creative Cloud Library +Create a new Creative Cloud Library. + +### Add an element to a Creative Cloud Library +Upload an element to a Creative Cloud Library. + +### When a Creative Cloud Library is created +Notify when a Creative Cloud Library is created. + +### When a Creative Cloud Library is updated +Notify when a Creative Cloud Library is updated. + +## Obtaining Credentials +For authentication, you need to use an API token. To get a token, you will need to setup project on [developer console](https://developer.adobe.com/console/projects). + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. diff --git a/certified-connectors/Adobe Creative Cloud Libraries/apiDefinition.swagger.json b/certified-connectors/Adobe Creative Cloud Libraries/apiDefinition.swagger.json new file mode 100644 index 0000000000..1e8ddea68f --- /dev/null +++ b/certified-connectors/Adobe Creative Cloud Libraries/apiDefinition.swagger.json @@ -0,0 +1,588 @@ +{ + "swagger": "2.0", + "info": { + "title": "Adobe Creative Cloud Libraries", + "description": "Adobe Creative Cloud Libraries lets you connect Creative Cloud Libraries with thousands of the most popular apps so you can automate your work and have more time for what matters most-no code required.", + "version": "1.0", + "contact": { + "name": "Adobe Support", + "email": "extintgr@adobe.com" + } + }, + "host": "cc4pa.adobe-ss.net", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/libraries/": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "library_urn": { + "type": "string", + "description": "Library resource unique identifier", + "title": "Library unique identifier" + }, + "library_url": { + "type": "string", + "description": "Library URL to Creative Cloud", + "title": "Library URL" + }, + "name": { + "type": "string", + "description": "Name of the Library created", + "title": "Library name" + }, + "created_date": { + "type": "string", + "description": "Date when Library was created", + "title": "Date created" + } + } + } + } + }, + "summary": "Create a new Creative Cloud Library", + "description": "Create a new Creative Cloud Library.", + "operationId": "CCL_CreateLibrary", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Enter name of Library (Team Libraries aren't supported yet)", + "title": "Library Name", + "x-ms-visibility": "important" + } + }, + "required": [ + "name" + ], + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + } + ] + } + }, + "/libraries/{libraryId}/elements": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Element ID", + "title": "Element ID" + }, + "created_date": { + "type": "string", + "description": "Date when element was created", + "title": "Date created" + }, + "adobe_type": { + "type": "string", + "description": "Type of the element created", + "title": "Element type" + }, + "name": { + "type": "string", + "description": "Name of the element created", + "title": "Element name" + }, + "mime_type": { + "type": "string", + "description": "MIME type of the element created", + "title": "Element MIME type" + }, + "library_urn": { + "type": "string", + "description": "Library resource unique identifier", + "title": "Library unique identifier" + }, + "library_url": { + "type": "string", + "description": "Library URL to Creative Cloud", + "title": "Library URL" + } + } + } + } + }, + "summary": "Add an element to a Creative Cloud Library", + "description": "Upload an element to a Creative Cloud Library.", + "operationId": "CCL_CreateElement", + "parameters": [ + { + "name": "libraryId", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetLibrariesList", + "value-path": "library_urn", + "value-title": "name", + "parameters": { + "selector": "editable" + } + }, + "x-ms-summary": "Select library", + "description": "Choose Library file will be uploaded to", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "byte", + "description": "Content of the file to be uploaded to Creative Cloud (JPEG, PNG, or GIF. Use for files under 5MB)", + "title": "File Content", + "x-ms-visibility": "important" + }, + "name": { + "type": "string", + "description": "Enter name of Library asset", + "title": "File Name", + "x-ms-visibility": "important" + } + }, + "required": [ + "file", + "name" + ], + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + } + ] + } + }, + "/webhooks/power-automate/cc_library_created": { + "x-ms-notification-content": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the Library created", + "title": "Library name" + }, + "owner_name": { + "type": "string", + "description": "Name of the creator of the Library", + "title": "Library creator name" + }, + "ownership": { + "type": "string", + "description": "Privacy settings of the Library", + "title": "Library privacy settings" + }, + "created_date": { + "type": "string", + "description": "Date when Library was created", + "title": "Date created" + }, + "modified_date": { + "type": "string", + "description": "Date when Library was modified", + "title": "Date modified" + }, + "version": { + "type": "string", + "description": "Library version", + "title": "Version" + }, + "library_urn": { + "type": "string", + "description": "Library resource unique identifier", + "title": "Library unique identifier" + }, + "library_url": { + "type": "string", + "description": "Library URL to Creative Cloud", + "title": "Library URL" + }, + "elements_count": { + "type": "integer", + "format": "int32", + "description": "Number of elements in the Library", + "title": "Number of elements" + }, + "collaborators": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address of the collaborator", + "title": "Collaborator email" + }, + "name": { + "type": "string", + "description": "Display name of the collaborator", + "title": "Collaborator name" + }, + "role": { + "type": "string", + "description": "Role of the collaborator", + "title": "Collaborator role" + }, + "canComment": { + "type": "boolean", + "description": "Collaborator permission to comment", + "title": "Collaborator can comment" + }, + "canShare": { + "type": "boolean", + "description": "Collaborator permission to share", + "title": "Collaborator can share" + } + } + }, + "description": "collaborators" + } + } + } + }, + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "summary": "When a Creative Cloud Library is created", + "description": "Notify when a Creative Cloud Library is created.", + "operationId": "CCL_LibraryCreated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "config": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "url", + "title": "Callback URL", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + } + }, + "description": "config", + "required": [ + "url" + ] + } + }, + "required": [ + "config" + ], + "x-ms-visibility": "internal" + }, + "x-ms-visibility": "internal" + } + ] + } + }, + "/webhooks/power-automate/cc_library_updated": { + "x-ms-notification-content": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the Library updated", + "title": "Library name" + }, + "owner_name": { + "type": "string", + "description": "Name of the creator of the Library", + "title": "Library creator name" + }, + "ownership": { + "type": "string", + "description": "Privacy settings of the Library", + "title": "Library privacy settings" + }, + "created_date": { + "type": "string", + "description": "Date when Library was created", + "title": "Date created" + }, + "modified_date": { + "type": "string", + "description": "Date when Library was modified", + "title": "Date modified" + }, + "version": { + "type": "string", + "description": "Library version", + "title": "Version" + }, + "library_urn": { + "type": "string", + "description": "Library resource unique identifier", + "title": "Library unique identifier" + }, + "library_url": { + "type": "string", + "description": "Library URL to Creative Cloud", + "title": "Library URL" + }, + "elements_count": { + "type": "integer", + "format": "int32", + "description": "Number of elements in the Library", + "title": "Number of elements" + }, + "collaborators": { + "type": "array", + "items": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email address of the collaborator", + "title": "Collaborator email" + }, + "name": { + "type": "string", + "description": "Display name of the collaborator", + "title": "Collaborator name" + }, + "role": { + "type": "string", + "description": "Role of the collaborator", + "title": "Collaborator role" + }, + "canComment": { + "type": "boolean", + "description": "Collaborator permission to comment", + "title": "Collaborator can comment" + }, + "canShare": { + "type": "boolean", + "description": "Collaborator permission to share", + "title": "Collaborator can share" + } + } + }, + "description": "collaborators" + } + } + } + }, + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "operationId": "CCL_LibraryUpdated", + "x-ms-trigger": "single", + "summary": "When a Creative Cloud Library is updated", + "description": "Notify when a Creative Cloud Library is updated.", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "library_urn": { + "type": "string", + "description": "Choose the Library you want notifications for when it's updated. Select nothing if you want notifications for updates on any Library", + "x-ms-visibility": "important", + "title": "Library", + "x-ms-dynamic-values": { + "operationId": "GetLibrariesList", + "value-path": "library_urn", + "value-title": "name", + "parameters": { + "selector": "all" + } + } + } + }, + "description": "data" + }, + "config": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "url", + "title": "Callback URL", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + } + }, + "description": "config", + "required": [ + "url" + ] + } + }, + "required": [ + "config" + ] + } + } + ] + } + }, + "/libraries": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "library_urn": { + "type": "string", + "description": "library_urn" + }, + "name": { + "type": "string", + "description": "name" + } + } + } + } + } + }, + "summary": "Get Libraries List", + "operationId": "GetLibrariesList", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "selector", + "in": "query", + "required": true, + "type": "string", + "default": "all", + "x-ms-visibility": "internal" + } + ], + "description": "Get Libraries List." + } + }, + "/webhooks/power-automate/{x_adobe_event_code}/unsubscribe/{id}": { + "delete": { + "responses": { + "200": { + "description": "OK" + } + }, + "summary": "Delete action", + "description": "Delete action", + "operationId": "DeleteAction", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "x_adobe_event_code", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + }, + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://cc4pa.adobe-ss.net/ims/authorize/v2", + "tokenUrl": "https://cc4pa.adobe-ss.net/ims/token/v3?connector=CC%20Libraries", + "scopes": { + "openid": "openid", + "creative_sdk": "creative_sdk", + "profile": "profile", + "address": "address", + "AdobeID": "AdobeID", + "email": "email", + "offline_access": "offline_access" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "openid", + "creative_sdk", + "profile", + "address", + "AdobeID", + "email", + "offline_access" + ] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.adobe.com/" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.adobe.com/privacy/policy.html?mv=product&mv2=accc" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Productivity" + } + ] +} diff --git a/certified-connectors/Adobe Creative Cloud Libraries/apiProperties.json b/certified-connectors/Adobe Creative Cloud Libraries/apiProperties.json new file mode 100644 index 0000000000..bf48275db4 --- /dev/null +++ b/certified-connectors/Adobe Creative Cloud Libraries/apiProperties.json @@ -0,0 +1,43 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "{{ client id }}", + "scopes": [ + "openid", + "creative_sdk", + "profile", + "address", + "AdobeID", + "email", + "offline_access" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://cc4pa.adobe-ss.net/ims/authorize/v2" + }, + "tokenUrl": { + "value": "https://cc4pa.adobe-ss.net/ims/token/v3?connector=CC%20Libraries" + }, + "refreshUrl": { + "value": "https://cc4pa.adobe-ss.net/ims/token/v3" + } + } + } + } + }, + "iconBrandColor": "#2c2c2c", + "capabilities": [], + "publisher": "Adobe, Inc.", + "stackOwner": "Adobe, Inc." + } +} From e7dbd6d8a137600dfeb6e94c6fa7e4b8bdc34da8 Mon Sep 17 00:00:00 2001 From: dino-abaqus <93311744+dino-abaqus@users.noreply.github.com> Date: Thu, 11 Nov 2021 02:10:19 +0100 Subject: [PATCH 125/219] allGeo Custom Connector Certification (#1226) * Submit Custom Connector allGeo Connector. * Update README.MD Update on document. * Update on Mandatory Fields Update on mandatory fields. * Changed folder per request Updating a allGeo.swagger.json to Certified Connector. * Updated per request from MS Updated: - swagger json file with responses and descriptions - updated color in apiProperties.json * Update operation descriptions Updated operation descriptions. * Updated name of file Update name of allGeo.apiDefinition.json to default one. * Updater per request of MS Removed empty titles values Added x-ms-summary to some operations. * Update Login Operation Updated Login information with details. * Updated Work Orders operation Updated work orders operation. * Updated token information Updated token information in all operations. * Empty values in title Corrected all of them * Update apiProperties.json Updated apiProperties.json as instructed. --- certified-connectors/allGeo/README.MD | 33 ++ .../allGeo/apiDefinition.swagger.json | 561 ++++++++++++++++++ .../allGeo/apiProperties.json | 9 + 3 files changed, 603 insertions(+) create mode 100644 certified-connectors/allGeo/README.MD create mode 100644 certified-connectors/allGeo/apiDefinition.swagger.json create mode 100644 certified-connectors/allGeo/apiProperties.json diff --git a/certified-connectors/allGeo/README.MD b/certified-connectors/allGeo/README.MD new file mode 100644 index 0000000000..dbc396badf --- /dev/null +++ b/certified-connectors/allGeo/README.MD @@ -0,0 +1,33 @@ +## Name of connector +allGeo + +## Description +allGeo is a leading provider of field service management for mid-size enterprise +businesses to achieve excellence in field service operations by providing tools to improve +operationspayroll processes. The allGeo platform enables businesses to create various +custom field service workflows according to their business needs. allGeo adds value for field +businesses by adding enabling capabilities such as Scheduling, Time Clock, Tracking +Monitoring, Mileage, Dispatch Messaging, Mobile Forms, Events based alerts, and +Reporting. The allGeo platform can readily integrate with your CRM, ERP and payroll +systems to enable easy flow of data from the field to your back-office systems. + +## Prerequisites +You will need the following to proceed: +* A Microsoft Power Apps or Power Automate plan with custom connector feature + +## Building the connector +Below is an overview of how fields in your Microsoft Dynamics will be mapped in the allGeo +system. + +## Supported Operations +The connector supports the following operations: +* `Login`: Logs in to allGeo platform. +* `Create Work Orders`: Work orders are created on the allGeo platform. A Work Order is a +set of scheduled tasks(s) assigned to one or more of your field employees. +* `Create Job-Site`: Job-Site(s) are created on allGeo platform. A job-site is where the field +employee will execute the assigned task. +* `Create Time Clock`: The various time clock stages of your field employees are registered +in the allGeo system. +* `Update Time Clock`: The various time clock stages of your field employees are updated in +real time in the allGeo system. +* `Delete Job-Site`: Job-Site(s) is deleted on allGeo platform. \ No newline at end of file diff --git a/certified-connectors/allGeo/apiDefinition.swagger.json b/certified-connectors/allGeo/apiDefinition.swagger.json new file mode 100644 index 0000000000..c7b21ce727 --- /dev/null +++ b/certified-connectors/allGeo/apiDefinition.swagger.json @@ -0,0 +1,561 @@ +{ + "swagger": "2.0", + "info": { + "title": "allGeo", + "description": "Automate scheduling or manually setup assignments, work orders, and employee shifts by importing via .csv files, Google Calendar, ERP, or third party scheduling systems.", + "contact":{ + "name": "Abaqus Inc.", + "url": "https://www.allgeo.com", + "email": "support@abaq.us" + }, + "version": "1.0" + }, + "host": "www.allgeo.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/track/api/v1/login": { + "post": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "message" + }, + "token": { + "type": "string", + "description": "token" + }, + "status": { + "type": "integer", + "format": "int32", + "description": "Status information" + } + } + } + } + }, + "summary": "Login", + "description": "Login", + "operationId": "Login", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "x-ms-summary": "Content-Type", + "description": "Currently required information to connect with allGeo platform, application/x-www-form-urlencoded" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "string" + }, + "description":"Currently information about login information needs to be put here as a part of the process", + "x-ms-summary":"body" + } + ] + } + }, + "/track/api/v1/schedule": { + "post": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Status information" + }, + "SucessMsg": { + "type": "string", + "description": "SucessMsg" + }, + "StatusCode": { + "type": "integer", + "format": "int32", + "description": "StatusCode" + } + } + } + } + }, + "x-ms-visibility": "important", + "parameters": [ + { + "name": "token", + "in": "query", + "required": true, + "type": "string", + "description": "Token information recieved from login operation", + "x-ms-summary": "token" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "workOrderNumber": { + "type": "string", + "description": "Work Order Number" + }, + "workOrderType": { + "type": "string", + "description": "Work Order Type" + }, + "deviceDesc": { + "type": "string", + "description": "Device Description" + }, + "groupID": { + "type": "string", + "description": "Group identity number" + }, + "deviceID": { + "type": "string", + "description": "Device identity number" + }, + "locatable": { + "type": "string", + "description": "Location table" + }, + "legNumber": { + "type": "string", + "description": "Information number" + }, + "startDate": { + "type": "string", + "description": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date" + }, + "startTime": { + "type": "string", + "description": "Start Time" + }, + "endTime": { + "type": "string", + "description": "End Time" + }, + "timezone": { + "type": "string", + "description": "Time Zone" + }, + "customerName": { + "type": "string", + "description": "Customer Name" + }, + "taskName": { + "type": "string", + "description": "Task Name" + }, + "message": { + "type": "string", + "description": "Description message" + }, + "formName": { + "type": "string", + "description": "Form Name" + }, + "action": { + "type": "string", + "description": "Action" + }, + "createEmployee": { + "type": "string", + "description": "Create Employee Information" + }, + "prefillData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Information name" + }, + "value": { + "type": "string", + "description": "Information value" + } + } + }, + "description": "Information in array format" + } + }, + "required": [ + "workOrderType", + "deviceID", + "locatable", + "startDate", + "endDate" + ] + }, + "required": [ + "items" + ] + } + } + ], + "summary": "Create Work Orders", + "description": "Create Work Orders", + "operationId": "CreateWorkOrders" + } + }, + "/track/api/v1/createSites": { + "post": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Status information" + }, + "SucessMsg": { + "type": "string", + "description": "Successful message information" + }, + "StatusCode": { + "type": "integer", + "format": "int32", + "description": "Status Code information" + } + } + } + } + }, + "parameters": [ + { + "name": "token", + "in": "query", + "required": true, + "type": "string", + "description": "Token information recieved from login operation", + "x-ms-summary": "token" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "siteID": { + "type": "string", + "description": "Site idendity number" + }, + "name": { + "type": "string", + "description": "Name" + }, + "address": { + "type": "string", + "description": "Address" + }, + "radius": { + "type": "string", + "description": "Radius from site" + }, + "groupID": { + "type": "string", + "description": "Group identity number" + }, + "latitude": { + "type": "string", + "description": "Site latitude" + }, + "longitude": { + "type": "string", + "description": "Site longitude" + } + }, + "required": [ + "name", + "address" + ] + }, + "required": [ + "items" + ] + } + } + ], + "summary": "Create Job-Site", + "description": "Create Job-Site", + "operationId": "CreateJobSite", + "x-ms-visibility": "important" + } + }, + "/track/api/v1/createTimeClock": { + "post": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Status information" + }, + "SucessMsg": { + "type": "string", + "description": "Successful message inforation" + }, + "StatusCode": { + "type": "integer", + "format": "int32", + "description": "Status information code" + } + } + } + } + }, + "summary": "Create Time Clock", + "description": "Create Time Clock", + "x-ms-visibility": "important", + "operationId": "CreateTimeClock", + "parameters": [ + { + "name": "token", + "in": "query", + "required": false, + "type": "string", + "description": "Token information recieved from login operation", + "x-ms-summary": "token" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "deviceID": { + "type": "string", + "description": "Device identity number" + }, + "timeClockSentTime": { + "type": "string", + "description": "Informaton about sent time" + }, + "stageName": { + "type": "string", + "description": "Information about stage name" + }, + "customerName": { + "type": "string", + "description": "Customer name" + }, + "jobName": { + "type": "string", + "description": "Job name" + }, + "address": { + "type": "string", + "description": "Address" + } + }, + "required": [ + "deviceID", + "timeClockSentTime", + "stageName" + ] + }, + "required": [ + "items" + ] + } + } + ] + } + }, + "/track/api/v1/updateTimeClock": { + "post": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Status information" + }, + "SucessMsg": { + "type": "string", + "description": "Successful message information" + }, + "StatusCode": { + "type": "integer", + "format": "int32", + "description": "Status Code information" + } + } + } + } + }, + "summary": "Update Time Clock", + "description": "Update Time Clock", + "operationId": "UpdateTimeClock", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "token", + "in": "query", + "required": false, + "type": "string", + "description": "Token information recieved from login operation", + "x-ms-summary": "token" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "txnID": { + "type": "string", + "description": "txnID" + }, + "deviceID": { + "type": "string", + "description": "Device identity number" + }, + "timeClockSentTime": { + "type": "string", + "description": "Information about sent time" + }, + "customerName": { + "type": "string", + "description": "Customer name" + }, + "jobName": { + "type": "string", + "description": "Job name" + }, + "managerNotes": { + "type": "string", + "description": "Manager notes" + }, + "stageName": { + "type": "string", + "description": "stageName" + } + }, + "required": [ + "txnID", + "deviceID", + "timeClockSentTime", + "stageName" + ] + }, + "required": [ + "items" + ] + } + } + ] + } + }, + "/track/api/v1/deleteSite/{name}": { + "delete": { + "responses": { + "200": { + "description": "All responses are successful but there will be a different message and status on API depending on your action.", + "schema": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Status infromation" + }, + "SucessMsg": { + "type": "string", + "description": "Message on successful request" + }, + "StatusCode": { + "type": "integer", + "format": "int32", + "description": "Status code" + } + } + } + } + }, + "summary": "Delete Job-Site", + "description": "Delete Job-Site", + "operationId": "DeleteJobSite", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string", + "description": "Path to job site", + "x-ms-summary": "name" + }, + { + "name": "token", + "in": "query", + "required": false, + "type": "string", + "description": "Token information recieved from login operation", + "x-ms-summary": "token" + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.allgeo.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.allgeo.com/allgeo-privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Management;Productivity" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/allGeo/apiProperties.json b/certified-connectors/allGeo/apiProperties.json new file mode 100644 index 0000000000..a11fad153c --- /dev/null +++ b/certified-connectors/allGeo/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#90989C", + "capabilities": [], + "publisher": "Abaqus", + "stackOwner": "Abaqus" + } + } \ No newline at end of file From 367ffeb0c5ad96c4cb77185671c499c8809ffa34 Mon Sep 17 00:00:00 2001 From: Stijn Nooijen <56258608+StijnKing@users.noreply.github.com> Date: Thu, 11 Nov 2021 22:56:12 +0100 Subject: [PATCH 126/219] Update additional properties to be true by default (#1252) --- .../Eduframe/apiDefinition.swagger.json | 47 +++++++++---------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/certified-connectors/Eduframe/apiDefinition.swagger.json b/certified-connectors/Eduframe/apiDefinition.swagger.json index 9650147c83..6c3e424ef7 100644 --- a/certified-connectors/Eduframe/apiDefinition.swagger.json +++ b/certified-connectors/Eduframe/apiDefinition.swagger.json @@ -95,7 +95,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "address": { "type": "object", @@ -151,7 +151,7 @@ "x-ms-visibility": "advanced" } }, - "additionalProperties": false + "additionalProperties": true }, "customField": { "type": "object", @@ -173,7 +173,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "category": { "type": "object", @@ -391,7 +391,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "user": { "type": "object", @@ -535,7 +535,7 @@ "x-ms-visibility": "advanced" } }, - "additionalProperties": false + "additionalProperties": true }, "invoice": { "type": "object", @@ -676,7 +676,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "invoice_item": { "type": "object", @@ -695,7 +695,7 @@ "units": { "title": "Units", "description": "The number of units of the invoice item.", - "type": "integer" + "type": "number" }, "name": { "title": "Description", @@ -705,8 +705,7 @@ "unit_price": { "title": "Price", "description": "The price of a single unit.", - "type": "number", - "format": "float" + "type": "string" }, "invoice_vat_id": { "title": "Vat", @@ -739,7 +738,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "invoice_vat": { "type": "object", @@ -760,11 +759,10 @@ }, "percentage": { "description": "Number representing the VAT percentage.", - "type": "number", - "format": "float" + "type": "string" } }, - "additionalProperties": false + "additionalProperties": true }, "catalog_variant": { "type": "object", @@ -838,7 +836,7 @@ "default": true } }, - "additionalProperties": false + "additionalProperties": true }, "label": { "type": "object", @@ -887,7 +885,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "webhook": { "type": "object", @@ -987,7 +985,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true }, "webhook_payload": { "type": "object", @@ -1018,7 +1016,7 @@ "readOnly": true } }, - "additionalProperties": false + "additionalProperties": true } }, "paths": { @@ -1054,17 +1052,13 @@ "address_attributes": { "$ref": "#/definitions/address" }, - "phone": { - "type": "string", - "description": "A string representing the phone number of the account." - }, "visible": { "type": "boolean", "description": "Boolean whether this account should be visible (i.e. business or multiple users or any orders).", "x-ms-visibility": "internal" } }, - "additionalProperties": false + "additionalProperties": true } } ], @@ -1469,7 +1463,7 @@ "x-ms-visibility": "advanced" } }, - "additionalProperties": false + "additionalProperties": true } } ], @@ -1609,7 +1603,8 @@ "invoice_set_id": { "title": "Invoice set", "type": "number", - "description": "Add this invoice to an invoice set by giving the identifier of the invoice set." + "description": "Add this invoice to an invoice set by giving the identifier of the invoice set.", + "x-ms-visibility": "internal" }, "account_name": { "type": "string", @@ -1643,7 +1638,7 @@ "x-ms-visibility": "advanced" } }, - "additionalProperties": false + "additionalProperties": true } } ], @@ -1995,7 +1990,7 @@ "description": "Array of events that should trigger this webhook." } }, - "additionalProperties": false + "additionalProperties": true } } ], From e98f3783e163b93e05edd833af0505ac1996bbbb Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 11 Nov 2021 18:46:26 -0500 Subject: [PATCH 127/219] Loripsum (Independent Publisher) (#1233) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload --- .../Loripsum/apiDefinition.swagger.json | 69 +++++++++++++++++++ .../Loripsum/apiProperties.json | 9 +++ .../Loripsum/readme.md | 30 ++++++++ 3 files changed, 108 insertions(+) create mode 100644 independent-publisher-connectors/Loripsum/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Loripsum/apiProperties.json create mode 100644 independent-publisher-connectors/Loripsum/readme.md diff --git a/independent-publisher-connectors/Loripsum/apiDefinition.swagger.json b/independent-publisher-connectors/Loripsum/apiDefinition.swagger.json new file mode 100644 index 0000000000..33501c8661 --- /dev/null +++ b/independent-publisher-connectors/Loripsum/apiDefinition.swagger.json @@ -0,0 +1,69 @@ +{ + "swagger": "2.0", + "info": { + "title": "Loripsum", + "description": "Loripsum.net has an API to generate placeholder text. Sometimes you need lists, headings, long paragraphs, etc. Loripsum.net uses the full text of Cicero's \"De finibus bonorum et malorum\" to make sure you get a different placeholder text every single time.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "loripsum.net", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/api/{parameters}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "string" + } + } + }, + "summary": "Get some placeholder text", + "description": "Get some placeholder text. Additional parameters can be used to specify the output.", + "operationId": "GetText", + "parameters": [ + { + "name": "parameters", + "in": "path", + "required": true, + "type": "string", + "default": "short", + "x-ms-url-encoding": "single", + "x-ms-summary": "Parameters", + "description": "A '%2F'-separated string, with the following options: integer - The number of paragraphs to generate. short, medium, long, verylong - The average length of a paragraph. decorate - Add bold, italic and marked text. link - Add links. ul - Add unordered lists. ol - Add numbered lists. dl - Add description lists. bq - Add blockquotes. code - Add code samples. headers - Add headers. allcaps - Use ALL CAPS. prude - Prude version. plaintext - Return plain text, no HTML." + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://loripsum.net/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://loripsum.net/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Loripsum/apiProperties.json b/independent-publisher-connectors/Loripsum/apiProperties.json new file mode 100644 index 0000000000..ccf7b99a84 --- /dev/null +++ b/independent-publisher-connectors/Loripsum/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor, Hitachi Solutions", + "stackOwner": "Two Kings B.V." + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Loripsum/readme.md b/independent-publisher-connectors/Loripsum/readme.md new file mode 100644 index 0000000000..38554df3b0 --- /dev/null +++ b/independent-publisher-connectors/Loripsum/readme.md @@ -0,0 +1,30 @@ +# Loripsum +Loripsum.net has an API to generate placeholder text. Sometimes you need lists, headings, long paragraphs, etc. Loripsum.net uses the full text of Cicero's "De finibus bonorum et malorum" to make sure you get a different placeholder text every single time. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +There are no prerequisites needed for this connector. + +## Obtaining Credentials +This connector does not use authentication, so no credentials are needed. + +## Supported Operations +### Get some placeholder text +Get some placeholder text. Additional parameters can be used to specify the output, using a '%2F'-separated string: +- integer - The number of paragraphs to generate. +- short, medium, long, verylong - The average length of a paragraph. +- decorate - Add bold, italic and marked text. +- link - Add links. +- ul - Add unordered lists. +- ol - Add numbered lists. +- dl - Add description lists. +- bq - Add blockquotes. +- code - Add code samples. +- headers - Add headers. +- allcaps - Use ALL CAPS. +- prude - Prude version. +- plaintext - Return plain text, no HTML. + +## Known Issues and Limitations +There are no known issues at this time. From 17dc22d7e0506b67ccfc4a482b245a0d177c2f02 Mon Sep 17 00:00:00 2001 From: plmvas <52970040+plmvas@users.noreply.github.com> Date: Thu, 11 Nov 2021 19:00:25 -0500 Subject: [PATCH 128/219] Updated 'Message request body' to be required (#1256) Co-authored-by: Christopher Ly --- certified-connectors/DataMotion/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/DataMotion/apiDefinition.swagger.json b/certified-connectors/DataMotion/apiDefinition.swagger.json index 32068df3b9..23f5345bda 100644 --- a/certified-connectors/DataMotion/apiDefinition.swagger.json +++ b/certified-connectors/DataMotion/apiDefinition.swagger.json @@ -51,7 +51,7 @@ "name": "request", "in": "body", "description": "Message request body.", - "required": false, + "required": true, "schema": { "$ref": "#/definitions/SendSecureMessageRequest" } From 723591f0844708a66d1fd0e150ce5a642e823d84 Mon Sep 17 00:00:00 2001 From: johannesh-recordedfuture <58779625+johannesh-recordedfuture@users.noreply.github.com> Date: Fri, 12 Nov 2021 23:41:54 +0100 Subject: [PATCH 129/219] Fix additional errors discovered in preview testing (#1257) --- .../RecordedFutureV2/apiDefinition.swagger.json | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json index 7c5130ab4a..d41573ff09 100644 --- a/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json +++ b/certified-connectors/RecordedFutureV2/apiDefinition.swagger.json @@ -878,7 +878,7 @@ "type":"string" }, "Risk":{ - "type":"string" + "type":"integer" }, "RiskString":{ "type":"string" @@ -1567,7 +1567,18 @@ "additionalProperties":true }, "entity":{ - "type":"string" + "type": "object", + "properties": { + "id":{ + "type": "string" + }, + "name":{ + "type": "string" + }, + "type":{ + "type": "string" + } + } } } } From 4198385c8e927ac5bfbc6ca2594520e0b01df7a2 Mon Sep 17 00:00:00 2001 From: rescojj <92038751+janjanusik@users.noreply.github.com> Date: Tue, 16 Nov 2021 02:57:13 +0100 Subject: [PATCH 130/219] 14793 native trigger actions from resco cloud (#1264) * #14793 Add trigger * #14793 ADD: trigger description * #14793 modif readme * #14793 modif readme --- certified-connectors/RescoCloud/README.md | 4 + .../RescoCloud/apiDefinition.swagger.json | 104 ++++++++++++++++++ .../RescoCloud/apiProperties.json | 4 +- 3 files changed, 111 insertions(+), 1 deletion(-) diff --git a/certified-connectors/RescoCloud/README.md b/certified-connectors/RescoCloud/README.md index 3ced5670fc..578dfde087 100644 --- a/certified-connectors/RescoCloud/README.md +++ b/certified-connectors/RescoCloud/README.md @@ -25,4 +25,8 @@ This connector supports the following operations: * `Update record`: Update record by specific ID. * `Get current user`: Get current user record associated with login credentials. +## Supported Triggers + +* `When an item is created,updated or deleted`: Trigger when an item is created,updated or deleted. + For more information on parameters accepted/required by the connector's operations, please contact us at www.resco.net/contact-support. \ No newline at end of file diff --git a/certified-connectors/RescoCloud/apiDefinition.swagger.json b/certified-connectors/RescoCloud/apiDefinition.swagger.json index 93aa6ba47f..d75f0b3918 100644 --- a/certified-connectors/RescoCloud/apiDefinition.swagger.json +++ b/certified-connectors/RescoCloud/apiDefinition.swagger.json @@ -592,6 +592,81 @@ } } } + }, + "/$hook": { + "x-ms-notification-content": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "id" + } + } + }, + "description": "Webhook response" + }, + "post": { + "responses": { + "201": { + "description": "Created" + } + }, + "summary": "When an item is created-updated-deleted", + "operationId": "TriggerCreate", + "description": "When an item is created-updated-deleted", + "x-ms-trigger": "single", + "parameters": [ + { + "$ref": "#/parameters/Parameter.Entity.Trigger" + }, + { + "$ref": "#/parameters/List.Trigger.Action" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "callbackUrl": { + "type": "string", + "description": "callbackUrl", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + }, + "required": [ + "callbackUrl" + ] + } + } + ] + }, + "delete": { + "responses": { + "204": { + "description": "Deleted" + }, + "404": { + "description": "Hook not found" + } + }, + "summary": "Delete Hook", + "description": "To delete a registered hook when not needed", + "operationId": "TriggerDelete", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "$id", + "in": "query", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + } + ] + } } }, "definitions": { @@ -725,6 +800,21 @@ "value-collection": "value" } }, + "Parameter.Entity.Trigger": { + "name": "$entity", + "in": "query", + "required": true, + "type": "string", + "description": "Name of the entity", + "x-ms-summary": "Entity name", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "Schema-Entities", + "value-path": "name", + "value-collection": "value", + "value-title": "title" + } + }, "Definition.Entity": { "in": "query", "name": "$entitySet", @@ -847,6 +937,20 @@ "type": "boolean", "default": true, "required": true + }, + "List.Trigger.Action": { + "name": "$action", + "in": "query", + "required": true, + "type": "string", + "description": "Action", + "x-ms-summary": "Action name", + "x-ms-url-encoding": "single", + "enum": [ + "Create", + "Update", + "Delete" + ] } }, "responses": { diff --git a/certified-connectors/RescoCloud/apiProperties.json b/certified-connectors/RescoCloud/apiProperties.json index 5e9b79d8ef..257b88e5b1 100644 --- a/certified-connectors/RescoCloud/apiProperties.json +++ b/certified-connectors/RescoCloud/apiProperties.json @@ -249,7 +249,9 @@ "Record-Get", "Record-Delete", "Record-Update", - "User-Get" + "User-Get", + "TriggerCreate", + "TriggerDelete" ], "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('server')/odata/v4/@connectionParameters('organization')/" } From 50802c5a916c4d173f081a8f49699e04ff1322be Mon Sep 17 00:00:00 2001 From: Sear Lin Date: Tue, 16 Nov 2021 10:03:42 +0800 Subject: [PATCH 131/219] add a new conditional trigger, no affect on other actions and triggers (#1261) * add AvePoint Cloud Governance artifacts * Update Readme.md * Update apiDefinition.swagger.json * update swagger definition * update swagger definition * update swagger definition * update color * Update apiDefinition.swagger.json * Update iconBrandColor * add a new action "Update Office365 setting" * remove white space * add workspace actions add objectId in trigger response add last renewal date in list workspace response * Update validation.yml * Revert "Update validation.yml" This reverts commit a12b44e9121e9f2d60c8e8e77ef2f78baaf4d64f. * add a new conditional trigger * add a new conditional trigger Co-authored-by: xlin Co-authored-by: xlin@avepoint.com --- .../AvePoint Cloud Governance/Readme.md | 4 +- .../apiDefinition.swagger.json | 1194 ++++++++++------- 2 files changed, 742 insertions(+), 456 deletions(-) diff --git a/certified-connectors/AvePoint Cloud Governance/Readme.md b/certified-connectors/AvePoint Cloud Governance/Readme.md index d5f7da137e..ab962ab6a9 100644 --- a/certified-connectors/AvePoint Cloud Governance/Readme.md +++ b/certified-connectors/AvePoint Cloud Governance/Readme.md @@ -9,9 +9,9 @@ The AvePoint Cloud Governance connector offers automation and integration of Clo You will need the following to proceed: -• You need to be an AvePoint Cloud Governance administrator. +* You need to be an AvePoint Cloud Governance administrator. -• You need to create an API Authentication Profile in AvePoint Cloud Governance to generate a client secret. The client secret will be used to call the Cloud Governance API. +* You need to create an API Authentication Profile in AvePoint Cloud Governance to generate a client secret. The client secret will be used to call the Cloud Governance API. ## Supported Operations diff --git a/certified-connectors/AvePoint Cloud Governance/apiDefinition.swagger.json b/certified-connectors/AvePoint Cloud Governance/apiDefinition.swagger.json index 01e1afef73..b6b672cc28 100644 --- a/certified-connectors/AvePoint Cloud Governance/apiDefinition.swagger.json +++ b/certified-connectors/AvePoint Cloud Governance/apiDefinition.swagger.json @@ -15,8 +15,6 @@ "schemes": [ "https" ], - "consumes": [], - "produces": [], "paths": { "/flow/hooks/{id}": { "delete": { @@ -55,13 +53,120 @@ "x-ms-visibility": "internal" } }, - "/flow/hooks/errortask/created": { + "/flow/hooks/common": { + "post": { + "tags": [ + "Flow" + ], + "summary": "Conditional Trigger", + "description": "This operation triggers when the selected event occurs.", + "operationId": "Flow_CreateHookForCommon", + "consumes": [ + "application/json" + ], + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "flowTriggerType", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "Flow_GetTriggerActionTypes", + "value-path": "id", + "value-title": "name" + }, + "x-ms-summary": "Trigger Event", + "description": "Select a trigger event." + }, + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "required": [ + "url" + ], + "type": "object", + "properties": { + "url": { + "type": "string", + "x-ms-visibility": "internal", + "x-ms-summary": "Trigge Url", + "description": "Url of trigger.", + "x-ms-notification-url": true + }, + "triggerType": { + "enum": [ + "None", + "RequestSubmitted", + "RequestCompleted", + "RequestCancelled", + "TaskCreated", + "TaskApproved", + "TaskRejected", + "ErrorTaskCreated", + "TaskRetried", + "TaskSkipped", + "RenewalSuccess", + "RenewalException", + "RenewalOverdue", + "FullyAutoImportSuccess", + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" + ], + "type": "string", + "x-ms-visibility": "internal", + "x-ms-summary": "Trigger Type", + "description": "Type of trigger." + } + } + } + } + ], + "responses": { + "201": { + "description": "Success", + "schema": { + "format": "uuid", + "type": "string" + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + }, + "x-ms-trigger": "single" + }, "x-ms-notification-content": { - "description": "This operation triggers when an error task is generated.", + "description": "This operation triggers when the selected event occurs.", "schema": { - "$ref": "#/definitions/FlowErrorTaskCreatedHookMessage" + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "Flow_GetTriggerSchema", + "value-path": "schema", + "parameters": { + "flowTriggerType": { + "parameter": "flowTriggerType" + } + } + } } - }, + } + }, + "/flow/hooks/errortask/created": { "post": { "tags": [ "Flow" @@ -110,7 +215,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -140,15 +249,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/errortask/retried": { + }, "x-ms-notification-content": { - "description": "This operation triggers when the retry action is performed on an error task.", + "description": "This operation triggers when an error task is generated.", "schema": { - "$ref": "#/definitions/FlowTaskCompletedHookMessage" + "$ref": "#/definitions/FlowErrorTaskCreatedHookMessage" } - }, + } + }, + "/flow/hooks/errortask/retried": { "post": { "tags": [ "Flow" @@ -197,7 +306,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -227,15 +340,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/request/cancelled": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a request is canceled.", + "description": "This operation triggers when the retry action is performed on an error task.", "schema": { - "$ref": "#/definitions/FlowRequestHookMessage" + "$ref": "#/definitions/FlowTaskCompletedHookMessage" } - }, + } + }, + "/flow/hooks/request/cancelled": { "post": { "tags": [ "Flow" @@ -284,7 +397,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -314,15 +431,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/request/completed": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a request is completed.", + "description": "This operation triggers when a request is canceled.", "schema": { "$ref": "#/definitions/FlowRequestHookMessage" } - }, + } + }, + "/flow/hooks/request/completed": { "post": { "tags": [ "Flow" @@ -371,7 +488,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -401,15 +522,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/request/submitted": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a request is submitted.", + "description": "This operation triggers when a request is completed.", "schema": { "$ref": "#/definitions/FlowRequestHookMessage" } - }, + } + }, + "/flow/hooks/request/submitted": { "post": { "tags": [ "Flow" @@ -458,7 +579,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -488,15 +613,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/approved": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a request is approved.", + "description": "This operation triggers when a request is submitted.", "schema": { - "$ref": "#/definitions/FlowTaskCompletedHookMessage" + "$ref": "#/definitions/FlowRequestHookMessage" } - }, + } + }, + "/flow/hooks/task/approved": { "post": { "tags": [ "Flow" @@ -545,7 +670,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -575,15 +704,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/autoimport": { + }, "x-ms-notification-content": { - "description": "This operation triggers when an import process with pre-defined governance details is completed.", + "description": "This operation triggers when a request is approved.", "schema": { - "$ref": "#/definitions/FlowAutoImportHookMessage" + "$ref": "#/definitions/FlowTaskCompletedHookMessage" } - }, + } + }, + "/flow/hooks/task/autoimport": { "post": { "tags": [ "Flow" @@ -632,7 +761,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -662,15 +795,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/confirm": { + }, "x-ms-notification-content": { - "description": "This operation triggers when an end user completes a governance details confirmation task for a workspace.", + "description": "This operation triggers when an import process with pre-defined governance details is completed.", "schema": { "$ref": "#/definitions/FlowAutoImportHookMessage" } - }, + } + }, + "/flow/hooks/task/confirm": { "post": { "tags": [ "Flow" @@ -719,7 +852,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -749,15 +886,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/created": { + }, "x-ms-notification-content": { - "description": "This operation triggers when an approval task is assigned.", + "description": "This operation triggers when an end user completes a governance details confirmation task for a workspace.", "schema": { - "$ref": "#/definitions/FlowTaskCreatedHookMessage" + "$ref": "#/definitions/FlowAutoImportHookMessage" } - }, + } + }, + "/flow/hooks/task/created": { "post": { "tags": [ "Flow" @@ -806,7 +943,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -836,15 +977,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/rejected": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a request is rejected.", + "description": "This operation triggers when an approval task is assigned.", "schema": { - "$ref": "#/definitions/FlowTaskCompletedHookMessage" + "$ref": "#/definitions/FlowTaskCreatedHookMessage" } - }, + } + }, + "/flow/hooks/task/rejected": { "post": { "tags": [ "Flow" @@ -893,7 +1034,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -923,15 +1068,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/renewal/completed": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a renewal task is completed.", + "description": "This operation triggers when a request is rejected.", "schema": { - "$ref": "#/definitions/FlowRenewalHookMessage" + "$ref": "#/definitions/FlowTaskCompletedHookMessage" } - }, + } + }, + "/flow/hooks/task/renewal/completed": { "post": { "tags": [ "Flow" @@ -980,7 +1125,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -1010,15 +1159,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/renewal/exception": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a renewal process encounters an exception.", + "description": "This operation triggers when a renewal task is completed.", "schema": { - "$ref": "#/definitions/FlowRenewalExceptionHookMessage" + "$ref": "#/definitions/FlowRenewalHookMessage" } - }, + } + }, + "/flow/hooks/task/renewal/exception": { "post": { "tags": [ "Flow" @@ -1067,7 +1216,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -1097,15 +1250,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/renewal/overdue": { + }, "x-ms-notification-content": { - "description": "This operation triggers when a renewal task is overdue.", + "description": "This operation triggers when a renewal process encounters an exception.", "schema": { - "$ref": "#/definitions/FlowRenewalTaskHookMessage" + "$ref": "#/definitions/FlowRenewalExceptionHookMessage" } - }, + } + }, + "/flow/hooks/task/renewal/overdue": { "post": { "tags": [ "Flow" @@ -1154,7 +1307,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -1184,15 +1341,15 @@ } }, "x-ms-trigger": "single" - } - }, - "/flow/hooks/task/skipped": { + }, "x-ms-notification-content": { - "description": "This operation triggers when the skip action is performed on an error task.", + "description": "This operation triggers when a renewal task is overdue.", "schema": { - "$ref": "#/definitions/FlowTaskCompletedHookMessage" + "$ref": "#/definitions/FlowRenewalTaskHookMessage" } - }, + } + }, + "/flow/hooks/task/skipped": { "post": { "tags": [ "Flow" @@ -1241,7 +1398,11 @@ "RenewalException", "RenewalOverdue", "FullyAutoImportSuccess", - "ConfirmDetailSuccess" + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], "type": "string", "x-ms-visibility": "internal", @@ -1271,6 +1432,12 @@ } }, "x-ms-trigger": "single" + }, + "x-ms-notification-content": { + "description": "This operation triggers when the skip action is performed on an error task.", + "schema": { + "$ref": "#/definitions/FlowTaskCompletedHookMessage" + } } }, "/flow/objectstatus": { @@ -1766,7 +1933,14 @@ "type": "string", "enum": [ "CustomService", - "CreateTeams" + "CreateTeams", + "CreateSite", + "SiteLifecycle", + "TeamLifecycle", + "GroupLifecycle", + "ChangeSiteSetting", + "ChangeGroupSetting", + "ChangeTeamSetting" ], "x-ms-summary": "Service Type", "description": "Type of the service." @@ -1820,7 +1994,14 @@ "type": "string", "enum": [ "CustomService", - "CreateTeams" + "CreateTeams", + "CreateSite", + "SiteLifecycle", + "TeamLifecycle", + "GroupLifecycle", + "ChangeSiteSetting", + "ChangeGroupSetting", + "ChangeTeamSetting" ], "x-ms-summary": "Service Type", "description": "Type of the service." @@ -1874,7 +2055,14 @@ "type": "string", "enum": [ "CustomService", - "CreateTeams" + "CreateTeams", + "CreateSite", + "SiteLifecycle", + "TeamLifecycle", + "GroupLifecycle", + "ChangeSiteSetting", + "ChangeGroupSetting", + "ChangeTeamSetting" ], "x-ms-summary": "Service Type", "description": "Type of the service." @@ -1900,14 +2088,14 @@ "x-ms-visibility": "internal" } }, - "/flow/schema/updateoffice365": { + "/flow/schema/trigger": { "get": { "tags": [ "Flow" ], - "summary": "Get update office365 setting schema", - "description": "Get schema for update office365 setting.", - "operationId": "Flow_GetUpdateOffice365SettingSchema", + "summary": "Get trigger schema", + "description": "Get schema for trigger.", + "operationId": "Flow_GetTriggerSchema", "produces": [ "text/plain", "application/json" @@ -1915,13 +2103,76 @@ "parameters": [ { "in": "query", - "name": "actionType", + "name": "flowTriggerType", "required": true, "type": "string", "enum": [ - "UpdateSiteExternalDomain" + "RequestSubmitted", + "RequestCompleted", + "RequestCancelled", + "TaskCreated", + "TaskApproved", + "TaskRejected", + "ErrorTaskCreated", + "TaskRetried", + "TaskSkipped", + "RenewalSuccess", + "RenewalException", + "RenewalOverdue", + "FullyAutoImportSuccess", + "ConfirmDetailSuccess", + "ElectionCompleted", + "LifecycleInactiveTaskCreated", + "LifecycleLeaseTaskCreated", + "ElectionOverdue" ], - "x-ms-summary": "Flow_TitleCase_Office365ActionType", + "x-ms-summary": "Flow_TitleCase_TriggerActionType", + "description": "Flow_TriggerActionType_Des" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/FlowSchemaResponse" + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + }, + "x-ms-visibility": "internal" + } + }, + "/flow/schema/updateoffice365": { + "get": { + "tags": [ + "Flow" + ], + "summary": "Get update office365 setting schema", + "description": "Get schema for update office365 setting.", + "operationId": "Flow_GetUpdateOffice365SettingSchema", + "produces": [ + "text/plain", + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "actionType", + "required": true, + "type": "string", + "enum": [ + "UpdateSiteExternalDomain", + "UpdateSiteUrl" + ], + "x-ms-summary": "Flow_TitleCase_Office365ActionType", "description": "Flow_Office365ActionType_Des" } ], @@ -1961,6 +2212,7 @@ { "in": "query", "name": "workspaceType", + "required": true, "type": "string", "enum": [ "All", @@ -2066,10 +2318,18 @@ { "in": "query", "name": "serviceType", + "required": true, "type": "string", "enum": [ "CustomService", - "CreateTeams" + "CreateTeams", + "CreateSite", + "SiteLifecycle", + "TeamLifecycle", + "GroupLifecycle", + "ChangeSiteSetting", + "ChangeGroupSetting", + "ChangeTeamSetting" ], "x-ms-summary": "Service Type", "description": "Type of the service." @@ -2133,6 +2393,41 @@ "x-ms-visibility": "internal" } }, + "/flow/trigger/actiontypes": { + "get": { + "tags": [ + "Flow" + ], + "summary": "Get trigger action types", + "description": "Get trigger action types.", + "operationId": "Flow_GetTriggerActionTypes", + "produces": [ + "text/plain", + "application/json" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/StringModel" + } + } + }, + "400": { + "description": "Bad request" + }, + "401": { + "description": "Unauthorized" + }, + "500": { + "description": "Internal server error" + } + }, + "x-ms-visibility": "internal" + } + }, "/flow/workspace": { "get": { "tags": [ @@ -2186,8 +2481,8 @@ "type": "string", "default": "", "x-ms-visibility": "advanced", - "x-ms-summary": "Workspace URL or E-mail Address", - "description": "Filter by the workspace URL or e-mail address." + "x-ms-summary": "Workspace URL or Email Address", + "description": "Filter by the workspace URL or email address." }, { "in": "query", @@ -2420,41 +2715,64 @@ } }, "definitions": { - "CreateWebHookModel": { - "required": [ - "url" - ], + "ApiError": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "array", + "items": { + "type": "string" + } + }, + "requestId": { + "type": "string" + }, + "date": { + "format": "date-time", + "type": "string" + } + } + }, + "FlowAutoImportHookMessage": { "type": "object", "properties": { - "url": { + "autoImportProfileName": { "type": "string", - "x-ms-visibility": "internal", - "x-ms-summary": "Trigge Url", - "description": "Url of trigger.", - "x-ms-notification-url": true - }, - "triggerType": { - "enum": [ - "None", - "RequestSubmitted", - "RequestCompleted", - "RequestCancelled", - "TaskCreated", - "TaskApproved", - "TaskRejected", - "ErrorTaskCreated", - "TaskRetried", - "TaskSkipped", - "RenewalSuccess", - "RenewalException", - "RenewalOverdue", - "FullyAutoImportSuccess", - "ConfirmDetailSuccess" - ], + "x-ms-summary": "Automatic Import Profile", + "description": "Name of the automatic import profile." + }, + "objectTitle": { "type": "string", - "x-ms-visibility": "internal", - "x-ms-summary": "Trigger Type", - "description": "Type of trigger." + "x-ms-summary": "Workspace Name", + "description": "Name of the workspace." + }, + "objectType": { + "type": "string", + "x-ms-summary": "Workspace Type", + "description": "Type of workspace." + }, + "groupEmail": { + "type": "string", + "x-ms-summary": "Workspace Email Address", + "description": "Email address of the workspace." + }, + "triggerTime": { + "type": "string", + "x-ms-summary": "Trigger Time", + "description": "The time that this trigger works." + }, + "objectUrl": { + "type": "string", + "x-ms-summary": "Site URL", + "description": "URL of the site." + }, + "objectId": { + "type": "string", + "x-ms-summary": "Workspace ID", + "description": "Unique ID of the workspace." } } }, @@ -2535,59 +2853,9 @@ } } }, - "FlowTaskCompletedHookMessage": { + "FlowHookMessage": { "type": "object", "properties": { - "summary": { - "type": "string", - "x-ms-summary": "Request Summary", - "description": "Summary of the request." - }, - "taskId": { - "type": "string", - "x-ms-summary": "Task ID", - "description": "Unique ID of the task." - }, - "taskLink": { - "type": "string", - "x-ms-summary": "Task Link", - "description": "Link of the task." - }, - "approverDisplayName": { - "type": "string", - "x-ms-summary": "Approver Display Name", - "description": "Display name of the approver." - }, - "approverIdentityName": { - "type": "string", - "x-ms-summary": "Approver Username", - "description": "Username of the approver." - }, - "requestId": { - "type": "string", - "x-ms-summary": "Request Ticket Number", - "description": "Ticket number of the request." - }, - "requestGuid": { - "type": "string", - "x-ms-summary": "Request ID", - "description": "Unique ID of the request." - }, - "requesterIdentityName": { - "type": "string", - "x-ms-summary": "Requester Username", - "description": "Username of the requester." - }, - "requester": { - "type": "string", - "x-ms-summary": "Requester Display Name", - "description": "Display name of the requester." - }, - "serviceType": { - "type": "string", - "x-ms-summary": "Service Type", - "description": "Type of the service." - }, "triggerTime": { "type": "string", "x-ms-summary": "Trigger Time", @@ -2605,48 +2873,58 @@ } } }, - "FlowRequestHookMessage": { + "FlowRenewalExceptionHookMessage": { "type": "object", "properties": { - "summary": { + "objectTitle": { "type": "string", - "x-ms-summary": "Request Summary", - "description": "Summary of the request." + "x-ms-summary": "Workspace Name", + "description": "Name of the workspace." }, - "requestId": { + "objectType": { "type": "string", - "x-ms-summary": "Request Ticket Number", - "description": "Ticket number of the request." + "x-ms-summary": "Workspace Type", + "description": "Type of workspace." }, - "requestGuid": { + "groupEmail": { "type": "string", - "x-ms-summary": "Request ID", - "description": "Unique ID of the request." + "x-ms-summary": "Workspace Email Address", + "description": "Email address of the workspace." }, - "requesterIdentityName": { + "phaseStartTime": { "type": "string", - "x-ms-summary": "Requester Username", - "description": "Username of the requester." + "x-ms-summary": "Renewal Process Start Time", + "description": "Start time of the renewal process." }, - "requester": { + "dueDate": { "type": "string", - "x-ms-summary": "Requester Display Name", - "description": "Display name of the requester." + "x-ms-summary": "Renewal Process Due Date", + "description": "Due date of the renewal process." }, - "serviceType": { + "assigneeDisplayName": { "type": "string", - "x-ms-summary": "Service Type", - "description": "Type of the service." + "x-ms-summary": "Renewal Task Assignee Display Name", + "description": "Display name of the renewal task assignee." }, - "serviceName": { + "assigneeIdentityName": { "type": "string", - "x-ms-summary": "Service Name", - "description": "Name of the service." + "x-ms-summary": "Renewal Task Assignee Username", + "description": "Username of the renewal task assignee." }, - "serviceId": { + "renewalProfileName": { "type": "string", - "x-ms-summary": "Service ID", - "description": "Unique ID of the service." + "x-ms-summary": "Renewal Profile", + "description": "Name of the renewal profile." + }, + "taskLink": { + "type": "string", + "x-ms-summary": "Renewal Task Link", + "description": "Link of the renewal task." + }, + "message": { + "type": "string", + "x-ms-summary": "Renewal Error Details", + "description": "Details of the renewal exception." }, "triggerTime": { "type": "string", @@ -2665,19 +2943,9 @@ } } }, - "FlowAutoImportHookMessage": { + "FlowRenewalHookMessage": { "type": "object", "properties": { - "autoImportProfileName": { - "type": "string", - "x-ms-summary": "Automatic Import Profile", - "description": "Name of the automatic import profile." - }, - "objectId": { - "type": "string", - "x-ms-summary": "Workspace ID", - "description": "Unique ID of the workspace." - }, "objectTitle": { "type": "string", "x-ms-summary": "Workspace Name", @@ -2690,75 +2958,18 @@ }, "groupEmail": { "type": "string", - "x-ms-summary": "Workspace E-mail Address", - "description": "E-mail address of the workspace." + "x-ms-summary": "Workspace Email Address", + "description": "Email address of the workspace." }, - "triggerTime": { + "phaseStartTime": { "type": "string", - "x-ms-summary": "Trigger Time", - "description": "The time that this trigger works." + "x-ms-summary": "Renewal Process Start Time", + "description": "Start time of the renewal process." }, - "objectUrl": { + "renewalProfileName": { "type": "string", - "x-ms-summary": "Site URL", - "description": "URL of the site." - } - } - }, - "FlowTaskCreatedHookMessage": { - "type": "object", - "properties": { - "summary": { - "type": "string", - "x-ms-summary": "Request Summary", - "description": "Summary of the request." - }, - "taskId": { - "type": "string", - "x-ms-summary": "Task ID", - "description": "Unique ID of the task." - }, - "taskLink": { - "type": "string", - "x-ms-summary": "Task Link", - "description": "Link of the task." - }, - "assigneeDisplayName": { - "type": "string", - "x-ms-visibility": "important", - "x-ms-summary": "Assignee Display Name", - "description": "Display name of the task assignee." - }, - "assigneeIdentityName": { - "type": "string", - "x-ms-visibility": "important", - "x-ms-summary": "Assignee Username", - "description": "Username of the task assignee." - }, - "requestId": { - "type": "string", - "x-ms-summary": "Request Ticket Number", - "description": "Ticket number of the request." - }, - "requestGuid": { - "type": "string", - "x-ms-summary": "Request ID", - "description": "Unique ID of the request." - }, - "requesterIdentityName": { - "type": "string", - "x-ms-summary": "Requester Username", - "description": "Username of the requester." - }, - "requester": { - "type": "string", - "x-ms-summary": "Requester Display Name", - "description": "Display name of the requester." - }, - "serviceType": { - "type": "string", - "x-ms-summary": "Service Type", - "description": "Type of the service." + "x-ms-summary": "Renewal Profile", + "description": "Name of the renewal profile." }, "triggerTime": { "type": "string", @@ -2777,59 +2988,9 @@ } } }, - "FlowRenewalHookMessage": { - "type": "object", - "properties": { - "objectId": { - "type": "string", - "x-ms-summary": "Workspace ID", - "description": "Unique ID of the workspace." - }, - "objectTitle": { - "type": "string", - "x-ms-summary": "Workspace Name", - "description": "Name of the workspace." - }, - "objectType": { - "type": "string", - "x-ms-summary": "Workspace Type", - "description": "Type of workspace." - }, - "groupEmail": { - "type": "string", - "x-ms-summary": "Workspace E-mail Address", - "description": "E-mail address of the workspace." - }, - "phaseStartTime": { - "type": "string", - "x-ms-summary": "Renewal Process Start Time", - "description": "Start time of the renewal process." - }, - "renewalProfileName": { - "type": "string", - "x-ms-summary": "Renewal Profile", - "description": "Name of the renewal profile." - }, - "triggerTime": { - "type": "string", - "x-ms-summary": "Trigger Time", - "description": "The time that this trigger works." - }, - "objectUrl": { - "type": "string", - "x-ms-summary": "Site URL", - "description": "URL of the site." - } - } - }, - "FlowRenewalExceptionHookMessage": { + "FlowRenewalTaskHookMessage": { "type": "object", "properties": { - "objectId": { - "type": "string", - "x-ms-summary": "Workspace ID", - "description": "Unique ID of the workspace." - }, "objectTitle": { "type": "string", "x-ms-summary": "Workspace Name", @@ -2842,8 +3003,8 @@ }, "groupEmail": { "type": "string", - "x-ms-summary": "Workspace E-mail Address", - "description": "E-mail address of the workspace." + "x-ms-summary": "Workspace Email Address", + "description": "Email address of the workspace." }, "phaseStartTime": { "type": "string", @@ -2875,11 +3036,6 @@ "x-ms-summary": "Renewal Task Link", "description": "Link of the renewal task." }, - "message": { - "type": "string", - "x-ms-summary": "Renewal Error Details", - "description": "Details of the renewal exception." - }, "triggerTime": { "type": "string", "x-ms-summary": "Trigger Time", @@ -2889,98 +3045,11 @@ "type": "string", "x-ms-summary": "Site URL", "description": "URL of the site." - } - } - }, - "FlowRenewalTaskHookMessage": { - "type": "object", - "properties": { + }, "objectId": { "type": "string", "x-ms-summary": "Workspace ID", "description": "Unique ID of the workspace." - }, - "objectTitle": { - "type": "string", - "x-ms-summary": "Workspace Name", - "description": "Name of the workspace." - }, - "objectType": { - "type": "string", - "x-ms-summary": "Workspace Type", - "description": "Type of workspace." - }, - "groupEmail": { - "type": "string", - "x-ms-summary": "Workspace E-mail Address", - "description": "E-mail address of the workspace." - }, - "phaseStartTime": { - "type": "string", - "x-ms-summary": "Renewal Process Start Time", - "description": "Start time of the renewal process." - }, - "dueDate": { - "type": "string", - "x-ms-summary": "Renewal Process Due Date", - "description": "Due date of the renewal process." - }, - "assigneeDisplayName": { - "type": "string", - "x-ms-summary": "Renewal Task Assignee Display Name", - "description": "Display name of the renewal task assignee." - }, - "assigneeIdentityName": { - "type": "string", - "x-ms-summary": "Renewal Task Assignee Username", - "description": "Username of the renewal task assignee." - }, - "renewalProfileName": { - "type": "string", - "x-ms-summary": "Renewal Profile", - "description": "Name of the renewal profile." - }, - "taskLink": { - "type": "string", - "x-ms-summary": "Renewal Task Link", - "description": "Link of the renewal task." - }, - "triggerTime": { - "type": "string", - "x-ms-summary": "Trigger Time", - "description": "The time that this trigger works." - }, - "objectUrl": { - "type": "string", - "x-ms-summary": "Site URL", - "description": "URL of the site." - } - } - }, - "StringModel": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - } - } - }, - "Office365FlowSetting": { - "required": [ - "actionType" - ], - "type": "object", - "properties": { - "actionType": { - "format": "int32", - "default": 0, - "type": "integer", - "x-ms-visibility": "internal", - "x-ms-summary": "Action Type", - "description": "Specify an action type." } } }, @@ -3013,6 +3082,7 @@ }, "ticketNumber": { "format": "int32", + "default": 0, "type": "integer", "readOnly": true, "x-ms-summary": "Request Ticket Number", @@ -3036,11 +3106,6 @@ "x-ms-summary": "Request Summary", "description": "Summary of the request." }, - "department": { - "type": "string", - "x-ms-summary": "Department", - "description": "Department that the request belongs to." - }, "notesToApprovers": { "maxLength": 1000, "type": "string", @@ -3049,8 +3114,66 @@ "description": "Additional notes to approvers." } }, - "additionalProperties": { - "type": "object" + "additionalProperties": { } + }, + "FlowRequestHookMessage": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "x-ms-summary": "Request Summary", + "description": "Summary of the request." + }, + "requestId": { + "type": "string", + "x-ms-summary": "Request Ticket Number", + "description": "Ticket number of the request." + }, + "requestGuid": { + "type": "string", + "x-ms-summary": "Request ID", + "description": "Unique ID of the request." + }, + "requesterIdentityName": { + "type": "string", + "x-ms-summary": "Requester Username", + "description": "Username of the requester." + }, + "requester": { + "type": "string", + "x-ms-summary": "Requester Display Name", + "description": "Display name of the requester." + }, + "serviceType": { + "type": "string", + "x-ms-summary": "Service Type", + "description": "Type of the service." + }, + "serviceName": { + "type": "string", + "x-ms-summary": "Service Name", + "description": "Name of the service." + }, + "serviceId": { + "type": "string", + "x-ms-summary": "Service ID", + "description": "Unique ID of the service." + }, + "triggerTime": { + "type": "string", + "x-ms-summary": "Trigger Time", + "description": "The time that this trigger works." + }, + "objectUrl": { + "type": "string", + "x-ms-summary": "Site URL", + "description": "URL of the site." + }, + "objectId": { + "type": "string", + "x-ms-summary": "Workspace ID", + "description": "Unique ID of the workspace." + } } }, "FlowSchema": { @@ -3069,6 +3192,159 @@ } } }, + "FlowTaskCompletedHookMessage": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "x-ms-summary": "Request Summary", + "description": "Summary of the request." + }, + "taskId": { + "type": "string", + "x-ms-summary": "Task ID", + "description": "Unique ID of the task." + }, + "taskLink": { + "type": "string", + "x-ms-summary": "Task Link", + "description": "Link of the task." + }, + "approverDisplayName": { + "type": "string", + "x-ms-summary": "Approver Display Name", + "description": "Display name of the approver." + }, + "approverIdentityName": { + "type": "string", + "x-ms-summary": "Approver Username", + "description": "Username of the approver." + }, + "requestId": { + "type": "string", + "x-ms-summary": "Request Ticket Number", + "description": "Ticket number of the request." + }, + "requestGuid": { + "type": "string", + "x-ms-summary": "Request ID", + "description": "Unique ID of the request." + }, + "requesterIdentityName": { + "type": "string", + "x-ms-summary": "Requester Username", + "description": "Username of the requester." + }, + "requester": { + "type": "string", + "x-ms-summary": "Requester Display Name", + "description": "Display name of the requester." + }, + "serviceType": { + "type": "string", + "x-ms-summary": "Service Type", + "description": "Type of the service." + }, + "triggerTime": { + "type": "string", + "x-ms-summary": "Trigger Time", + "description": "The time that this trigger works." + }, + "objectUrl": { + "type": "string", + "x-ms-summary": "Site URL", + "description": "URL of the site." + }, + "objectId": { + "type": "string", + "x-ms-summary": "Workspace ID", + "description": "Unique ID of the workspace." + } + } + }, + "FlowTaskCreatedHookMessage": { + "type": "object", + "properties": { + "summary": { + "type": "string", + "x-ms-summary": "Request Summary", + "description": "Summary of the request." + }, + "taskId": { + "type": "string", + "x-ms-summary": "Task ID", + "description": "Unique ID of the task." + }, + "taskLink": { + "type": "string", + "x-ms-summary": "Task Link", + "description": "Link of the task." + }, + "assigneeDisplayName": { + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "Assignee Display Name", + "description": "Display name of the task assignee." + }, + "assigneeIdentityName": { + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "Assignee Username", + "description": "Username of the task assignee." + }, + "requestId": { + "type": "string", + "x-ms-summary": "Request Ticket Number", + "description": "Ticket number of the request." + }, + "requestGuid": { + "type": "string", + "x-ms-summary": "Request ID", + "description": "Unique ID of the request." + }, + "requesterIdentityName": { + "type": "string", + "x-ms-summary": "Requester Username", + "description": "Username of the requester." + }, + "requester": { + "type": "string", + "x-ms-summary": "Requester Display Name", + "description": "Display name of the requester." + }, + "serviceType": { + "type": "string", + "x-ms-summary": "Service Type", + "description": "Type of the service." + }, + "triggerTime": { + "type": "string", + "x-ms-summary": "Trigger Time", + "description": "The time that this trigger works." + }, + "objectUrl": { + "type": "string", + "x-ms-summary": "Site URL", + "description": "URL of the site." + }, + "objectId": { + "type": "string", + "x-ms-summary": "Workspace ID", + "description": "Unique ID of the workspace." + } + } + }, + "StringModel": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, "Workspace": { "type": "object", "properties": { @@ -3104,8 +3380,8 @@ }, "Email": { "type": "string", - "x-ms-summary": "Workspace E-mail Address", - "description": "E-mail address of the workspace." + "x-ms-summary": "Workspace Email Address", + "description": "Email address of the workspace." }, "PolicyName": { "type": "string", @@ -3251,11 +3527,24 @@ "type": "string", "x-ms-summary": "Last Renewal Time", "description": "Last renewal time of the workspace." + }, + "LastRenewalBy": { + "type": "string", + "x-ms-summary": "Last Renewed By", + "description": "The user who performed the latest workspace renewal." + }, + "LastRenewalByDisplayName": { + "type": "string", + "x-ms-summary": "Last Renewed By (Display Name)", + "description": "The display name of the user who performed the latest workspace renewal." + }, + "Sensitivity": { + "type": "string", + "x-ms-summary": "Sensitivity Label", + "description": "Select a sensitivity label for the workspace." } }, - "additionalProperties": { - "type": "object" - } + "additionalProperties": { } }, "WorkspacePageResult": { "type": "object", @@ -3274,8 +3563,6 @@ } } }, - "parameters": {}, - "responses": {}, "securityDefinitions": { "Basic": { "type": "basic", @@ -3284,10 +3571,9 @@ }, "security": [ { - "Basic": [] + "Basic": [ ] } ], - "tags": [], "x-ms-connector-metadata": [ { "propertyName": "Website", @@ -3302,4 +3588,4 @@ "propertyValue": "Productivity" } ] -} +} \ No newline at end of file From 25b90d4206dc7fefb57a202b6116ed4d5f485530 Mon Sep 17 00:00:00 2001 From: Graham McDonald Date: Mon, 15 Nov 2021 21:08:25 -0500 Subject: [PATCH 132/219] Cognito Forms (#1255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Integration Enhancements 2021 Q4 Three new Cognito Forms updates expand the integration’s capabilities. Trigger Flows when form entries are deleted. Update entries based on actions in other apps. And, automatically retrieve generated documents from form entries. * Adding contact and metadata properties * Fixing typo * Changing API annotation for Power Automate from Production to Preview * Making requested PR changes for 2021 Q4 Power Automate Connector Enhancements - Adding stackOwner property - Adding dummy Client_Id - Adding publisher section to readme - Renaming Building the connector section in readme to Deployment Instructions * Updating the readme to match the provided template * Updating the language in obtaining credentials to be more accurate --- .../Cognito Forms/apiDefinition.swagger.json | 1135 +++++++++++++++++ .../Cognito Forms/apiProperties.json | 37 + certified-connectors/Cognito Forms/readme.md | 140 ++ 3 files changed, 1312 insertions(+) create mode 100644 certified-connectors/Cognito Forms/apiDefinition.swagger.json create mode 100644 certified-connectors/Cognito Forms/apiProperties.json create mode 100644 certified-connectors/Cognito Forms/readme.md diff --git a/certified-connectors/Cognito Forms/apiDefinition.swagger.json b/certified-connectors/Cognito Forms/apiDefinition.swagger.json new file mode 100644 index 0000000000..20da1c403a --- /dev/null +++ b/certified-connectors/Cognito Forms/apiDefinition.swagger.json @@ -0,0 +1,1135 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Cognito Forms", + "description": "Cognito Forms lets you easily build powerful online forms, such as surveys, order forms, registration forms and more. For free.", + "x-ms-api-annotation": { + "status": "Preview" + }, + "contact": { + "name": "Cognito Forms Support", + "email": "support@cognitoforms.com", + "url": "https://www.cognitoforms.com/support" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.cognitoforms.com" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.cognitoforms.com/legal/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity;Collaboration" + } + ], + "host": "www.cognitoforms.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/forms/api/oauth/forms": { + "get": { + "tags": [ + "Cognito Forms" + ], + "summary": "Get forms", + "description": "Gets the list of available forms.", + "operationId": "GetForms", + "consumes": [], + "produces": [ + "application/json", + "text/json" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/FormRef" + } + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/forms/api/oauth/forms/{form}/schema": { + "get": { + "tags": [ + "Cognito Forms" + ], + "summary": "Get form schema", + "description": "Gets the Swagger schema for a specific form.", + "operationId": "GetFormSchema", + "consumes": [], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "form", + "in": "path", + "description": "The name of the form.", + "required": true, + "x-ms-summary": "Form", + "x-ms-test-value": "1", + "type": "string" + }, + { + "name": "input", + "in": "query", + "description": "Input", + "required": false, + "x-ms-summary": "Input", + "type": "boolean" + }, + { + "name": "includeLinks", + "in": "query", + "description": "Include Links", + "required": false, + "x-ms-summary": "includeLinks", + "type": "boolean" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/forms/api/oauth/forms/{form}/entry": { + "post": { + "tags": [ + "Cognito Forms" + ], + "summary": "Create entry", + "description": "Creates a new entry.", + "operationId": "CreateEntry", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "form", + "in": "path", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "entry", + "in": "body", + "description": "The entry to create for the form", + "required": true, + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "form" + }, + "input": true + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameterReference": "form" + }, + "input": { + "value": true + } + } + } + }, + "x-ms-summary": "Entry" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "form" + }, + "input": false + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "Creates a new entry.", + "x-ms-visibility": "important" + } + }, + "/forms/api/oauth/forms/{form}/entry/{entryId}": { + "patch": { + "tags": [ + "Cognito Forms" + ], + "summary": "Update entry", + "description": "Updates an entry.", + "operationId": "EditEntry", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "form", + "in": "path", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string", + "x-ms-visibility": "important" + }, + { + "name": "entryId", + "in": "path", + "description": "The entry id", + "required": true, + "x-ms-summary": "Entry Id", + "type": "string", + "x-ms-visibility": "important" + }, + { + "name": "entry", + "in": "body", + "description": "The updated entry data", + "required": true, + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "form" + }, + "input": true + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameterReference": "form" + }, + "input": { + "value": true + } + } + } + }, + "x-ms-summary": "Entry" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "form" + }, + "input": false + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "Updates an entry.", + "x-ms-visibility": "important" + } + }, + "/forms/api/oauth/files/{id}": { + "get": { + "tags": [ + "Cognito Forms" + ], + "summary": "Get file", + "description": "Gets a file by id", + "operationId": "GetFile", + "consumes": [], + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "name": "id", + "in": "path", + "description": "The unique identifier of the file", + "required": true, + "x-ms-summary": "File Id", + "x-ms-test-value": "1", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FileDataRef" + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-visibility": "important" + } + }, + "/forms/api/oauth/forms/{form}/entries/{entry}/documents/{templateNumber}": { + "get": { + "tags": [ + "Cognito Forms" + ], + "summary": "Get Document", + "description": "Gets a document", + "operationId": "GetDocument", + "produces": [ + "application/pdf", + "application/vnd.openxmlformats-officedocument.wordprocessingml.document" + ], + "parameters": [ + { + "name": "form", + "in": "path", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "entry", + "in": "path", + "description": "The entry id", + "required": true, + "x-ms-summary": "Entry Id", + "type": "string" + }, + { + "name": "templateNumber", + "in": "path", + "description": "The template number", + "required": true, + "x-ms-summary": "Template Number", + "type": "integer" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FileDataRef" + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "Gets a document", + "x-ms-visibility": "important" + } + }, + "/forms/api/oauth/{form}/availability": { + "post": { + "tags": [ + "Cognito Forms" + ], + "summary": "Set form availability", + "description": "Sets the availability of a form.", + "operationId": "SetFormAvailability", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "form", + "in": "path", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "start", + "in": "body", + "description": "Availability", + "required": false, + "schema": { + "type": "object", + "properties": { + "start": { + "description": "Availability start date", + "type": "string", + "format": "date-time", + "x-ms-summary": "Availability Start" + }, + "end": { + "description": "Availability end date", + "type": "string", + "format": "date-time", + "x-ms-summary": "Availability End" + }, + "message": { + "description": "Not Available Message", + "type": "string", + "x-ms-summary": "Not Available Message" + } + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/FormAvailability" + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "Sets form availability.", + "x-ms-visibility": "important" + } + }, + "/integration/oauth/subscribenewentry": { + "x-ms-notification-content": { + "description": "Hook response from Cognito", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "publisher" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameterReference": "publisher" + } + } + } + } + }, + "post": { + "tags": [ + "Cognito Forms" + ], + "summary": "When a new entry is created", + "description": "Triggers when someone creates a new entry.", + "operationId": "NewEntry", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "module", + "in": "query", + "x-ms-visibility": "internal", + "type": "string", + "default": "forms", + "required": true + }, + { + "name": "publisher", + "in": "query", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "endpoint", + "in": "body", + "required": true, + "schema": { + "type": "object", + "required": [ + "notificationUrl" + ], + "properties": { + "notificationUrl": { + "description": "The URL to call back to.", + "type": "string", + "x-ms-summary": "Notification URL", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + } + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "When a new entry is created", + "x-ms-trigger": "single", + "x-ms-visibility": "important" + } + }, + "/integration/oauth/subscribeupdateentry": { + "x-ms-notification-content": { + "description": "Hook response from Cognito", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "publisher" + } + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameterReference": "publisher" + } + } + } + } + }, + "post": { + "tags": [ + "Cognito Forms" + ], + "summary": "When an entry is updated", + "description": "Triggers when someone updates an entry.", + "operationId": "UpdateEntry", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "module", + "in": "query", + "x-ms-visibility": "internal", + "type": "string", + "default": "forms", + "required": true + }, + { + "name": "publisher", + "in": "query", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "endpoint", + "in": "body", + "required": true, + "schema": { + "type": "object", + "required": [ + "notificationUrl" + ], + "properties": { + "notificationUrl": { + "description": "The URL to call back to.", + "type": "string", + "x-ms-summary": "Notification URL", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + } + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "When an entry is updated", + "x-ms-trigger": "single", + "x-ms-visibility": "advanced" + } + }, + "/integration/oauth/subscribeentrydeleted": { + "x-ms-notification-content": { + "description": "Hook response from Cognito", + "schema": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameter": "publisher" + }, + "includeLinks": false + }, + "value-path": "properties" + }, + "x-ms-dynamic-properties": { + "operationId": "GetFormSchema", + "parameters": { + "form": { + "parameterReference": "publisher" + }, + "includeLinks": { + "value": false + } + } + } + } + }, + "post": { + "tags": [ + "Cognito Forms" + ], + "summary": "When an entry is deleted", + "description": "Triggers when someone deletes an entry.", + "operationId": "EntryDeleted", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "module", + "in": "query", + "x-ms-visibility": "internal", + "type": "string", + "default": "forms", + "required": true + }, + { + "name": "publisher", + "in": "query", + "description": "The name of the form", + "required": true, + "x-ms-summary": "Form", + "x-ms-dynamic-values": { + "operationId": "GetForms", + "value-path": "Id", + "value-title": "Name" + }, + "type": "string" + }, + { + "name": "endpoint", + "in": "body", + "required": true, + "schema": { + "type": "object", + "required": [ + "notificationUrl" + ], + "properties": { + "notificationUrl": { + "description": "The URL to call back to.", + "type": "string", + "x-ms-summary": "Notification URL", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + } + }, + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-trigger-hint": "When an entry is deleted", + "x-ms-trigger": "single", + "x-ms-visibility": "advanced" + } + }, + "/integration/oauth/unsubscribe": { + "delete": { + "tags": [ + "Cognito Forms" + ], + "summary": "Unsubscribe Webhook", + "description": "Unsubscribes a webhook.", + "operationId": "UnsubscribeWebhook", + "consumes": [ + "application/json", + "text/json" + ], + "produces": [ + "application/json", + "text/json" + ], + "parameters": [ + { + "name": "id", + "in": "query", + "description": "The unique subscription id.", + "x-ms-summary": "Subscription", + "type": "string" + }, + { + "name": "module", + "in": "query", + "description": "The module the subscription is associated with.", + "x-ms-summary": "Module", + "type": "string", + "default": "forms" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "201": { + "description": "Created" + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + }, + "500": { + "description": "Internal Server Error. Unknown error occured" + }, + "default": { + "description": "Operation Failed" + } + }, + "deprecated": false, + "x-ms-no-generic-test": true, + "x-ms-visibility": "internal" + } + } + }, + "definitions": { + "FormRef": { + "description": "A form reference that includes the name and id of the form.", + "type": "object", + "properties": { + "Id": { + "description": "The unique id of the form.", + "type": "string", + "x-ms-summary": "Form Id", + "x-ms-visibility": "internal" + }, + "Name": { + "description": "The name of the form.", + "type": "string", + "x-ms-summary": "Form Name" + } + } + }, + "FileDataRef": { + "description": "A file reference that includes file data and metadata", + "type": "object", + "properties": { + "Id": { + "description": "The unique id of the file.", + "type": "string", + "x-ms-summary": "File Id", + "x-ms-visibility": "important" + }, + "Name": { + "description": "The name of the file", + "type": "string", + "x-ms-summary": "File Name", + "x-ms-visibility": "important" + }, + "ContentType": { + "description": "The content type of the file.", + "type": "string", + "x-ms-summary": "File Content Type", + "x-ms-visibility": "important" + }, + "Size": { + "description": "The size of the file.", + "type": "integer", + "x-ms-summary": "File Size", + "x-ms-visibility": "important" + }, + "File": { + "description": "The URL of the file.", + "type": "string", + "x-ms-summary": "File URL", + "x-ms-visibility": "important" + }, + "Content": { + "description": "The file content", + "type": "string", + "format": "byte", + "x-ms-summary": "File Content", + "x-ms-visibility": "important" + } + } + }, + "SubscriptionRequest": { + "type": "object", + "required": [ + "notificationUrl" + ], + "properties": { + "notificationUrl": { + "description": "The URL to call back to.", + "type": "string", + "x-ms-summary": "Notification URL", + "x-ms-notification-url": true, + "x-ms-visibility": "internal" + } + } + }, + "FormAvailability": { + "description": "Form availability information such as start/end availability and not available message.", + "type": "object", + "properties": { + "availabilityStart": { + "description": "Form availability start", + "type": "string", + "format": "date-time", + "x-ms-summary": "Form availability start", + "x-ms-visibility": "important" + }, + "availabilityEnd": { + "description": "Form availability end", + "type": "string", + "format": "date-time", + "x-ms-summary": "Form availability end", + "x-ms-visibility": "important" + }, + "notAvailableMessage": { + "description": "Not available message", + "type": "string", + "x-ms-summary": "Not available message", + "x-ms-visibility": "important" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "apiKey": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://www.cognitoforms.com/admin/oauthlogin", + "tokenUrl": "https://www.cognitoforms.com/admin/oauthtoken", + "scopes": { + "admin": "admin" + } + } + }, + "security": [ + { + "apiKey": [ + "admin" + ] + } + ], + "tags": [], + "x-ms-capabilities": { + "testConnection": { + "operationId": "GetForms" + } + } +} \ No newline at end of file diff --git a/certified-connectors/Cognito Forms/apiProperties.json b/certified-connectors/Cognito Forms/apiProperties.json new file mode 100644 index 0000000000..9de728d6dd --- /dev/null +++ b/certified-connectors/Cognito Forms/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[DUMMY]]", + "scopes": [ + "admin" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://www.cognitoforms.com/admin/oauthlogin" + }, + "tokenUrl": { + "value": "https://www.cognitoforms.com/admin/oauthtoken" + }, + "refreshUrl": { + "value": "https://www.cognitoforms.com/admin/oauthtoken" + } + } + } + } + }, + "iconBrandColor": "#234652", + "capabilities": [], + "publisher": "Cognito Forms", + "stackOwner": "Cognito Forms" + } +} \ No newline at end of file diff --git a/certified-connectors/Cognito Forms/readme.md b/certified-connectors/Cognito Forms/readme.md new file mode 100644 index 0000000000..90e715f60b --- /dev/null +++ b/certified-connectors/Cognito Forms/readme.md @@ -0,0 +1,140 @@ +# Cognito Forms +Cognito Forms lets you easily build powerful online forms, such as surveys, order forms, registration forms and more. For free. +Please see our [support documentation](https://www.cognitoforms.com/support/63/data-integration/microsoft-power-automate) +or [contact us](https://www.cognitoforms.com/supportrequest/) for help with our public Power Automate connector. + +## Publisher: Cognito Forms + +## Prerequisites +A paid subscription is required. + +## Supported Operations + +### Triggers +Triggers will be sent shortly after the subscribed event occurs. + +#### NewEntry + +This will be triggered when a new entry is created for the specified form. +The output will be the entry data, including file data and temporary links to files, signatures, and entry documents. + +##### Parameters: +- `form`: The name of the form for which new entry events will be subscribed. + +#### UpdateEntry + +This will be triggered when an entry is updated for the specified form. +The output will be the entry data, including file data and temporary links to files, signatures, and entry documents. + +##### Parameters: +- `form`: The name of the form for which updated entry events will be subscribed. + +#### EntryDeleted + +This will be triggered when an entry is deleted for the specified form. +The output will be the entry data, excluding links. + +##### Parameters: +- `form`: The name of the form for which entry deleted events will be subscribed. + +### Actions + +#### CreateEntry + +This action will create an entry for the specified form. +The action will include settable properties for each entry field, excluding some field types. +The output will be the entry data. + +##### Parameters: +- `form`: The internal form name or Id + +#### EditEntry + +This action will update an existing entry for the specified form. +The action will include settable properties for each entry field, excluding some field types. +This action will fail if the entry includes a paid order or the entryId does not exist. +The output will be the updated entry data. + +##### Parameters: +- `form`: The internal form name or Id +- `entryId`: The entry number or entry Id for the entry to be updated + +#### SetFormAvailability + +This action will set the form's limit availability settings. +The `start` and `end` parameters should be blank to make the form available all of the time. +The output will be the updated availability settings. + +##### Parameters: +- `form`: The internal form name or Id +- `start`: The datetime at which the form should become available. +- `end`: The datetime at which the form should no longer be available. +- `message`: The message which should be shown to users who try to access the form when outside of the availability period. + +#### GetFile + +This action will retrieve a file from storage. +The output will be an object containing the file data, the metadata, and a temporary link to the file. + +##### Parameters: +- `id`: The file Id for the file to be retrieved. + +#### GetDocument + +This action will generate and retrieve an entry document using the specified form, entry, and template. +The output will be an object containing the document's file data, the metadata, and a temporary link to the document. + +##### Parameters: +- `form`: The internal form name or Id +- `entry`: The entry Id or entry number of the entry for which the document should be generated +- `templateNumber`: The number of the template that should be used to generate the entry document + +### Private Operations + +These operations are enablers for the public triggers and actions. + +#### GetForms + +This operation will return a list of forms as objects that contain the `Id`, `InternalName`, and `Name`. +When used for the `form` parameter for actions and triggers, the user should see the `Name`, +but the `InternalName` should be sent to the API. + +#### GetFormSchema + +This operation will return the schema for the specified form. +The `input` parameter should be true for actions to exclude read-only properties and false for triggers to include all properties. +The `includeLinks` parameter should be true for all actions and triggers except for EntryDeleted. + +##### Parameters: +- `form`: The internal form name or Id +- `input`: A boolean indicating whether the schema returned should exclude properties that cannot be set. False by default. +- `includeLinks`: A boolean indicating whether link properties for files, signatures, and documents should be included in the schema. True by default. + +#### UnsubscribeWebhook + +This operation will unsubscribe the specified webhook. The webhook will no longer receive any events after all currently +queued events have been sent. + +##### Parameters: +- `id`: The Id of the webhook that should be unsubscribed. +- `module`: The webhook's module. This should be set to "forms", as this connector only supports that module. + +## Obtaining Credentials +An owner of the organization must log into Cognito Forms and authorize the connection. + +## Known Issues +None + +## Deployment Instructions +Cognito Forms requires a valid `Client id` and `Client secret` to create a connector. +These properties can be found in the key vault and should only be set in the custom connector's authentication settings. + +1. Run: + ```paconn + paconn create --api-def apiDefinition.swagger.json --api-prop apiProperties.json + ``` + +2. Login to PowerAutomate +3. Navigate to the new connector +4. Under "Security" update the `Client id` and `Client secret` +5. Update the connector \ No newline at end of file From 32a95bac480009d0d83134b1acc302c20b4579b5 Mon Sep 17 00:00:00 2001 From: Anand Vikram Date: Tue, 16 Nov 2021 07:39:37 +0530 Subject: [PATCH 133/219] Replicon tbp (#1251) * Update apiProperties.json * Replicon TBP connector artifacts * Replicon Connector artifacts * added stack owner * added consumes, description and x-ms-summary tags * added documentation for PutProjectTeamMemberAssignments and PutResourceAssignments * updated documentation * added Publisher * removed default response and empty schema --- certified-connectors/Replicon/README.md | 68 + .../Replicon/apiDefinition.swagger.json | 2373 +++++++++++++++++ .../Replicon/apiProperties.json | 60 + 3 files changed, 2501 insertions(+) create mode 100644 certified-connectors/Replicon/README.md create mode 100644 certified-connectors/Replicon/apiDefinition.swagger.json create mode 100644 certified-connectors/Replicon/apiProperties.json diff --git a/certified-connectors/Replicon/README.md b/certified-connectors/Replicon/README.md new file mode 100644 index 0000000000..fabcdc4574 --- /dev/null +++ b/certified-connectors/Replicon/README.md @@ -0,0 +1,68 @@ +## Replicon + +Use Replicon connector to connect to your Replicon tenant and create update project/ task / resource assignments in Replicon. + +## Publisher: Replicon Inc. + + +## Prerequisites +In order to use this connector, you will need following: + +* An account with Replicon. You can request a trial here: https://www.replicon.com/ + +## Supported Operations + +### BulkGetProjectDetails3 +Get detils of Project from Replicon + +### CreateProjectOrApplyModifications +Create or update a project in Replicon. Create/ Update is done based on target parameter provided. + +### UserListServiceGetData +Get Users present in Replicon. + +### GetDescendantTaskDetails +Get Hierarchy of tasks present inside a project / task + +### CreateTaskHierarchyOrApplyModifications +Create a task / task hierarchy in Replicon + +### MoveTask +Update Hierarchy of a Task in Replicon + +### TaskListServiceGetData +Get task list for a project from Replicon + +### GetTimesheetSummary +Get summary of time entered in a timesheet in Replicon. + +### BulkGetTimeEnteredSummary +Get summary of time entered by all users against a project / task in Replicon + +### GetMyTenantEndpointDetails +Get tenant end point details of the connected Replicon instance. + +### WebhookSubscriptionsRestAPI +Subscribe to the Timesheet Events in Replicon to get notification about timesheet events in Replicon. + +### PutProjectTeamMemberAssignments +Rewrite Team Member assignment of a project in Replicon + +### PutResourceAssignments +Rewrite Resource Assignment of a task in Replicon + +## Obtaining Credentials +To use Replicon connector, you will need an account with Project Administrator access in Replicon. You will be taken to Replicon sign in process to complete connection. + +## Useful Links +* [Replicon](https://www.replicon.com/ "Replicon") +* [Replicon Support] (https://www.replicon.com/customerzone/contact-support/ "Replicon Support") + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Flow and PowerApps + +Connect with Replicon Support [here](https://www.replicon.com/replicon/contact-support/) for Client Id and Client Secret for authorization + +## Support + +For any questions please contact Replicon Support [here](https://www.replicon.com/customerzone/contact-support/) \ No newline at end of file diff --git a/certified-connectors/Replicon/apiDefinition.swagger.json b/certified-connectors/Replicon/apiDefinition.swagger.json new file mode 100644 index 0000000000..a5173173a2 --- /dev/null +++ b/certified-connectors/Replicon/apiDefinition.swagger.json @@ -0,0 +1,2373 @@ +{ + "swagger": "2.0", + "info": { + "title": "Replicon", + "description": "Replicon is a self-driving professional services automation solution that uses advanced technology to analyze real-time data, and then delivers recommendations to help keep projects, resources, and finances on track. The connector allows you to continuously sync projects, tasks, and resource assignments from Project Online to Replicon and time data from Replicon to Project Online.", + "version": "1.0", + "contact": { + "name": "Replicon Support", + "url": "https://www.replicon.com/customerzone/contact-support/", + "email": "support@replicon.com" + } + }, + "host": "global.replicon.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/services/ProjectService1.svc/BulkGetProjectDetails3": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ProjectDetailsResponse" + } + } + }, + "operationId": "BulkGetProjectDetails3", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get Project Details", + "description": "Get the project details from Replicon", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "projects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "project uri" + }, + "name": { + "type": "string", + "description": "project name" + }, + "code": { + "type": "string", + "description": "project code" + }, + "parameterCorrelationId": { + "type": "string", + "description": "parameter correlation id" + } + } + }, + "description": "projects" + } + } + } + } + ] + } + }, + "/services/ProjectService1.svc/CreateProjectOrApplyModifications": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateProjectOrApplyModificationsResponse" + } + } + }, + "summary": "Create Project Or Apply Modifications", + "description": "Create Project Or Apply Modifications in Replicon", + "operationId": "CreateProjectOrApplyModifications", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "target": { + "type": "object", + "description": "project target" + }, + "modifications": { + "type": "object", + "properties": { + "nameToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "project name to apply" + } + }, + "description": "name to apply" + }, + "codeToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "project code to apply" + } + }, + "description": "code to apply" + }, + "descriptionToApply": { + "type": "object", + "description": "project description to apply" + }, + "percentCompletedToApply": { + "type": "string", + "description": "percent completed to apply" + }, + "startDateToApply": { + "type": "object", + "properties": { + "date": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "format": "int32", + "description": "year of project start date" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month of project start date" + }, + "day": { + "type": "integer", + "format": "int32", + "description": "day of project start date" + } + }, + "description": "project start date" + } + }, + "description": "start date to apply" + }, + "endDateToApply": { + "type": "object", + "properties": { + "date": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "format": "int32", + "description": "year of project end date" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month of project end date" + }, + "day": { + "type": "integer", + "format": "int32", + "description": "day of project end date" + } + }, + "description": "project end date" + } + }, + "description": "end date to apply" + }, + "billingTypeToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "billing type" + } + }, + "description": "billing type to apply" + }, + "projectLeaderToApply": { + "type": "object", + "description": "project leader to apply" + }, + "isProjectLeaderApprovalRequired": { + "type": "string", + "description": "is project leader approval required" + }, + "isTimeEntryAllowed": { + "type": "string", + "description": "is time entry allowed" + }, + "defaultBillingCurrencyToApply": { + "type": "object", + "properties": { + "currency": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "billing currency name" + } + }, + "description": "billing currency" + } + }, + "description": "default billing currency to apply" + }, + "billingContractToApply": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "billing contract name" + } + }, + "description": "billing contract to apply" + }, + "keyValuesToApply": { + "type": "array", + "items": { + "type": "object", + "properties": { + "keyUri": { + "type": "string", + "description": "key uri" + }, + "value": { + "type": "object", + "properties": { + "collection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "key value item text" + }, + "uri": { + "type": "string", + "description": "key value item uri" + } + } + }, + "description": "collection" + }, + "uri": { + "type": "string", + "description": "value uri" + } + }, + "description": "value" + } + } + }, + "description": "key values to apply" + } + }, + "description": "modifications" + }, + "projectModificationOptionUri": { + "type": "string", + "description": "project modification option uri" + }, + "unitOfWorkId": { + "type": "string", + "description": "unit of work id" + } + } + } + } + ] + } + }, + "/services/UserListService1.svc/GetData": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/UserListServiceGetDataResponse" + } + } + }, + "summary": "Get User List", + "description": "Get User List Data from Replicon", + "operationId": "UserListServiceGetData", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "page" + }, + "pagesize": { + "type": "string", + "description": "page size" + }, + "columnUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "column uris" + }, + "sort": { + "type": "array", + "items": {}, + "description": "sort" + }, + "filterExpression": { + "type": "object", + "description": "filter expression" + } + } + } + } + ] + } + }, + "/services/TaskService1.svc/GetDescendantTaskDetails": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": {} + } + }, + "summary": "Get Descendant Task Details", + "operationId": "GetDescendantTaskDetails", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "parentUri": { + "type": "string", + "description": "parent uri" + } + } + } + } + ], + "description": "Get Hierarchial Task Details from Replicon" + } + }, + "/services/TaskService1.svc/CreateTaskHierarchyOrApplyModifications": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/CreateTaskHierarchyOrApplyModificationsResponse" + } + } + }, + "summary": "Create Task Hierarchy Or Apply Modifications", + "operationId": "CreateTaskHierarchyOrApplyModifications", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "project": { + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "project uri" + }, + "name": { + "type": "string", + "description": "project name" + }, + "code": { + "type": "string", + "description": "project code" + }, + "parameterCorrelationId": { + "type": "string", + "description": "parameter correlation id" + } + }, + "description": "project" + }, + "taskHierarchy": { + "type": "array", + "items": { + "type": "object", + "properties": { + "target": { + "type": "object", + "description": "target" + }, + "parameterCorrelationId": { + "type": "string", + "description": "task parameter correlation id" + }, + "taskModificationToApply": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "task name to apply" + }, + "codeToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "task code to apply" + } + }, + "description": "code to apply" + }, + "descriptionToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "task description to apply" + } + }, + "description": "description to apply" + }, + "isClosed": { + "type": "string", + "description": "is task closed" + }, + "timeEntryStartDateToApply": { + "type": "object", + "properties": { + "date": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "format": "int32", + "description": "year of task start date" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month of task start date" + }, + "day": { + "type": "integer", + "format": "int32", + "description": "day of task start date" + } + }, + "description": "task strat date" + } + }, + "description": "time entry start date to apply" + }, + "timeEntryEndDateToApply": { + "type": "object", + "properties": { + "date": { + "type": "object", + "properties": { + "year": { + "type": "integer", + "format": "int32", + "description": "year of task end date" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "year of task end date" + }, + "day": { + "type": "integer", + "format": "int32", + "description": "year of task end date" + } + }, + "description": "task end date" + } + }, + "description": "time entry end date to apply" + }, + "timeAndExpenseEntryTypeToApply": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "time and expense entry type value" + } + }, + "description": "time and expense entry type to apply" + }, + "isTimeEntryAllowed": { + "type": "string", + "description": "is time entry allowed" + }, + "costTypeToApply": { + "type": "object", + "description": "cost type to apply" + }, + "estimatedHoursToApply": { + "type": "object", + "description": "estimated hours to apply" + }, + "estimatedCostToApply": { + "type": "object", + "description": "estimated cost to apply" + }, + "resourceAssignmentModifications": { + "type": "object", + "properties": { + "resourcesToAdd": { + "type": "array", + "items": { + "type": "string" + }, + "description": "resources to add" + }, + "resourcesToRemove": { + "type": "array", + "items": { + "type": "string" + }, + "description": "resources to remove" + } + }, + "description": "resource assignment modifications" + }, + "customFieldsToApply": { + "type": "array", + "items": {}, + "description": "custom fields to apply" + }, + "keyValuesToApply": { + "type": "array", + "items": {}, + "description": "key values to apply" + }, + "objectExtensionFieldsToApply": { + "type": "array", + "items": {}, + "description": "object extension fields to apply" + } + }, + "description": "task modification to apply" + } + } + }, + "description": "task hierarchy" + }, + "taskModificationOptionUri": { + "type": "string", + "description": "task modification option uri" + }, + "unitOfWorkId": { + "type": "string", + "description": "unit of work id" + } + } + } + } + ], + "description": "Create Task Hierarchy Or Apply Modifications to a Replicon Task" + } + }, + "/services/TaskService1.svc/MoveTask": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "summary": "Move Task", + "description": "Move Task to a new Parent", + "operationId": "MoveTask", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "taskUri": { + "type": "string", + "description": "task uri" + }, + "targetUri": { + "type": "string", + "description": "target uri" + }, + "moveTaskMethodUri": { + "type": "string", + "description": "move task method uri" + } + } + } + } + ] + } + }, + "/services/TaskListService1.svc/GetData": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TaskListServiceGetDataResponse" + } + } + }, + "summary": "Task List Service Get Data", + "operationId": "TaskListServiceGetData", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "description": "Get Task List Service Data From Replicon", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "page": { + "type": "string", + "description": "page" + }, + "pagesize": { + "type": "string", + "description": "page size" + }, + "columnUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "column uris" + }, + "sort": { + "type": "array", + "items": {}, + "description": "sort" + }, + "filterExpression": { + "type": "object", + "description": "filter expression" + } + } + } + } + ] + } + }, + "/services/TimesheetService1.svc/GetTimesheetSummary": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GetTimesheetSummaryResponse" + } + } + }, + "summary": "Get Timesheet Summary", + "operationId": "GetTimesheetSummary", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "timesheetUri": { + "type": "string", + "description": "timesheet uri" + } + } + } + } + ], + "description": "Get Timesheet Summary from Replicon" + } + }, + "/services/TaskService1.svc/BulkGetTimeEnteredSummary": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/BulkGetTimeEnteredSummaryResponse" + } + } + }, + "summary": "Get Time Entered Summary", + "operationId": "BulkGetTimeEnteredSummary", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "description": "Get Time Entered by Task Uri from Replicon", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "taskUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "task uris" + } + } + } + } + ] + } + }, + "/webhook-api/api/subscription": { + "x-ms-notification-content": { + "schema": { + "type": "object", + "properties": { + "timesheet": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + }, + "slug": { + "type": "string", + "description": "slug" + } + }, + "description": "timesheet" + }, + "approvalStatusUri": { + "type": "string", + "description": "approval status uri" + }, + "authority": { + "type": "object", + "properties": { + "actingUser": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "user display Text" + }, + "loginName": { + "type": "string", + "description": "user login name" + }, + "uri": { + "type": "string", + "description": "uri" + }, + "slug": { + "type": "string", + "description": "slug" + } + }, + "description": "acting user" + }, + "displayText": { + "type": "string", + "description": "display text" + }, + "actingForUser": { + "type": "string", + "description": "acting For user" + }, + "authorityType": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "authority type display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "authority Type" + } + }, + "description": "authority" + }, + "timesheetStatusUri": { + "type": "string", + "description": "status uri of the timesheet" + } + } + }, + "description": "the response for webhook subscription" + }, + "post": { + "responses": { + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/WebhookSubscriptionResponse" + } + } + }, + "summary": "Subscribe to Event triggers", + "operationId": "WebhookSubscriptionsRestAPI", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "x-ms-trigger": "single", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "eventType": { + "type": "string", + "description": "Event type to subscribe to" + }, + "targetUrl": { + "type": "string", + "description": "target url", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "targetUrl" + } + }, + "required": [ + "targetUrl" + ] + } + } + ], + "description": "Trigger to Subscribe to Web hook eventis in Replicon" + } + }, + "/services/ProjectService1.svc/PutProjectTeamMemberAssignments": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "summary": "Put Project Team Member Assignments", + "operationId": "PutProjectTeamMemberAssignments", + "consumes": [ + "application/json" + ], + "description": "Rewrite Team Member assignment of Project", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "projectUri": { + "type": "string", + "description": "project uri" + }, + "resourceUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "resource uris" + } + } + } + } + ] + } + }, + "/services/TaskService1.svc/PutResourceAssignments": { + "post": { + "responses": { + "200": { + "description": "OK" + } + }, + "summary": "Rewrite Resource Assignment of a task", + "operationId": "PutResourceAssignments", + "consumes": [ + "application/json" + ], + "description": "Update the Resource assignment to a specified task", + "parameters": [ + { + "name": "hostUrl", + "in": "query", + "type": "string", + "required": true, + "description": "Replicon Host Url", + "x-ms-summary": "Host Url for Replicon" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "taskUri": { + "type": "string", + "description": "task uri" + }, + "resourceUris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "resource uris" + } + } + } + } + ] + } + }, + "/DiscoveryService1.svc/GetMyTenantEndpointDetails": { + "post": { + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/TenantEndpointDetails" + } + } + }, + "summary": "Get Tenant End Point Details", + "description": "Get End Point Details of the Tenant", + "operationId": "GetMyTenantEndpointDetails", + "parameters": [] + } + } + }, + "definitions": { + "GetTimesheetSummaryResponse": { + "type": "object", + "properties": { + "d": { + "type": "object", + "properties": { + "actualPayableTimeCalculationStatus": { + "type": "string", + "description": "status of actual payable time calculation" + }, + "actualsByActivity": { + "type": "array", + "items": { + "type": "object", + "properties": { + "activity": { + "type": "object", + "description": "activity" + }, + "totalTimeDuration": { + "$ref": "#/definitions/Duration" + } + } + }, + "description": "actuals by activity" + }, + "actualsByBillingRate": { + "type": "array", + "items": { + "type": "object", + "properties": { + "billingRate": { + "type": "object", + "description": "billing rate" + }, + "totalTimeDuration": { + "$ref": "#/definitions/Duration" + } + } + }, + "description": "actuals by billing rate" + }, + "actualsByDate": { + "type": "array", + "items": { + "type": "object", + "properties": { + "breakDuration": { + "$ref": "#/definitions/Duration" + }, + "date": { + "$ref": "#/definitions/Date" + }, + "hasComments": { + "type": "boolean", + "description": "are comments present" + }, + "isHolidayDayOff": { + "type": "boolean", + "description": "is holiday day" + }, + "isWeeklyDayOff": { + "type": "boolean", + "description": "is weekly off day" + }, + "timeOffDuration": { + "$ref": "#/definitions/Duration" + }, + "totalTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "workingTimeDuration": { + "$ref": "#/definitions/Duration" + } + } + }, + "description": "actuals by date" + }, + "actualsByPaycode": { + "type": "array", + "items": { + "type": "object", + "description": "actuals by paycode item" + }, + "description": "actuals by paycode" + }, + "actualsByProject": { + "type": "array", + "items": { + "type": "object", + "properties": { + "project": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "displayText": { + "type": "string", + "description": "display text" + }, + "name": { + "type": "string", + "description": "name" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "project" + }, + "totalTimeDuration": { + "$ref": "#/definitions/Duration" + } + } + }, + "description": "actuals by project" + }, + "approvalStatus": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "approval status" + }, + "attestationStatusUri": { + "type": "string", + "description": "attestation status uri" + }, + "bankedTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "billableTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "breakDuration": { + "$ref": "#/definitions/Duration" + }, + "dueDate": { + "$ref": "#/definitions/Date" + }, + "nonBillableTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "overtimeDuration": { + "$ref": "#/definitions/Duration" + }, + "scriptCalculationStatus": { + "type": "object", + "properties": { + "lastDataModification": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32", + "description": "day" + }, + "displayText": { + "type": "string", + "description": "display text" + }, + "hour": { + "type": "integer", + "format": "int32", + "description": "hour" + }, + "minute": { + "type": "integer", + "format": "int32", + "description": "minute" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "second" + }, + "timeZone": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "ianaName": { + "type": "string", + "description": "iana name" + }, + "offsetDisplayText": { + "type": "string", + "description": "offset display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "time zone" + }, + "valueInUtc": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32", + "description": "day" + }, + "hour": { + "type": "integer", + "format": "int32", + "description": "hour" + }, + "millisecond": { + "type": "integer", + "format": "int32", + "description": "millisecond" + }, + "minute": { + "type": "integer", + "format": "int32", + "description": "minute" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "second" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "year" + } + }, + "description": "value in utc" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "year" + } + }, + "description": "last data modification time" + }, + "lastFailedAttempt": { + "type": "object", + "description": "last failed attempt" + }, + "lastSuccessfulAttempt": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32", + "description": "day" + }, + "displayText": { + "type": "string", + "description": "display text" + }, + "hour": { + "type": "integer", + "format": "int32", + "description": "hour" + }, + "minute": { + "type": "integer", + "format": "int32", + "description": "minute" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "second" + }, + "timeZone": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "ianaName": { + "type": "string", + "description": "iana name" + }, + "offsetDisplayText": { + "type": "string", + "description": "offset display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "time zone" + }, + "valueInUtc": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32", + "description": "day" + }, + "hour": { + "type": "integer", + "format": "int32", + "description": "hour" + }, + "millisecond": { + "type": "integer", + "format": "int32", + "description": "millisecond" + }, + "minute": { + "type": "integer", + "format": "int32", + "description": "minute" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month" + }, + "second": { + "type": "integer", + "format": "int32", + "description": "second" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "year" + } + }, + "description": "value in utc" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "year" + } + }, + "description": "last successful attempt" + }, + "timesheet": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "timesheet" + }, + "timesheetStatus": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "timesheet status" + } + }, + "description": "script calculation status" + }, + "timeOffTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "timesheetStatus": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "status of timesheet" + }, + "totalTimeDuration": { + "$ref": "#/definitions/Duration" + }, + "workingTimeDuration": { + "$ref": "#/definitions/Duration" + } + }, + "description": "d" + } + } + }, + "BulkGetTimeEnteredSummaryResponse": { + "type": "object", + "properties": { + "d": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taskUri": { + "type": "string", + "description": "task uri" + }, + "timeEnteredActual": { + "$ref": "#/definitions/Duration" + }, + "timeEnteredTotalEstimated": { + "$ref": "#/definitions/Duration" + }, + "timeEnteredTotalEstimatedAtCompletion": { + "$ref": "#/definitions/Duration" + } + } + }, + "description": "d" + } + } + }, + "WebhookSubscriptionResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "identity of the webhook event" + }, + "createdTimestamp": { + "type": "string", + "description": "created time stamp of the webhook event" + }, + "updatedTimestamp": { + "type": "string", + "description": "updated time stamp of the webhook event" + }, + "eventType": { + "type": "string", + "description": "event Type of the webhook event" + }, + "targetUrl": { + "type": "string", + "description": "target Url of the webhook event" + }, + "sharedSecret": { + "type": "string", + "description": "shared Secret of the webhook event" + }, + "authType": { + "type": "string", + "description": "auth Type of the webhook event" + } + } + }, + "ProjectDetailsResponse": { + "type": "object", + "properties": { + "d": { + "type": "array", + "items": { + "type": "object", + "properties": { + "error": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "type" + }, + "displayText": { + "type": "string", + "description": "display text" + } + }, + "description": "error" + }, + "parameterCorrelationId": { + "type": "string", + "description": "parameter correlation id" + }, + "projectDetails": { + "type": "object", + "properties": { + "billingContract": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "billing contract" + }, + "billingType": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "billing type" + }, + "budget": { + "type": "object", + "description": "budget" + }, + "budgetedCost": { + "type": "object", + "description": "budgeted cost" + }, + "budgetedHours": { + "type": "object", + "description": "budgeted hours" + }, + "clientBillingAllocationMethod": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "client billing allocation method" + }, + "clientRepresentative": { + "type": "string", + "description": "client representative" + }, + "clientSchedule": { + "type": "array", + "items": {}, + "description": "client schedule" + }, + "clients": { + "type": "array", + "items": {}, + "description": "clients" + }, + "code": { + "type": "string", + "description": "code" + }, + "costCenter": { + "type": "object", + "description": "cost center" + }, + "costType": { + "type": "object", + "description": "cost type" + }, + "customFields": { + "type": "array", + "items": {}, + "description": "custom fields" + }, + "defaultBillingCurrency": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "name": { + "type": "string", + "description": "name" + }, + "symbol": { + "type": "string", + "description": "symbol" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "default billing currency" + }, + "departmentGroup": { + "type": "object", + "description": "department group" + }, + "description": { + "type": "string", + "description": "description" + }, + "displayText": { + "type": "string", + "description": "display text" + }, + "division": { + "type": "object", + "description": "division" + }, + "employeeTypeGroup": { + "type": "object", + "description": "employee type group" + }, + "estimatedCost": { + "type": "object", + "description": "estimated cost" + }, + "estimatedExpenses": { + "type": "object", + "description": "estimated expenses" + }, + "estimatedHours": { + "type": "object", + "description": "estimated hours" + }, + "estimationMode": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "estimation mode display text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "estimation mode" + }, + "extensionFieldValues": { + "type": "array", + "items": {}, + "description": "extension field values" + }, + "isProjectLeaderApprovalRequired": { + "type": "boolean", + "description": "is project leader approval required for the project" + }, + "isTimeEntryAllowed": { + "type": "boolean", + "description": "is time entry allowed for the project" + }, + "keyValues": { + "type": "array", + "items": { + "type": "object", + "properties": { + "keyUri": { + "type": "string", + "description": "key uri" + }, + "value": { + "type": "object", + "properties": { + "collection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "text" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "collection" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "value" + } + } + }, + "description": "key values" + }, + "location": { + "type": "object", + "description": "location" + }, + "name": { + "type": "string", + "description": "name" + }, + "percentCompleted": { + "type": "integer", + "format": "int32", + "description": "percent completed" + }, + "program": { + "type": "object", + "description": "program" + }, + "projectLeader": { + "type": "object", + "description": "project leader" + }, + "serviceCenter": { + "type": "object", + "description": "service center" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "status": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "name": { + "type": "string", + "description": "name" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "status" + }, + "timeAndExpenseEntryType": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "time and expense entry type display Text" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "time and expense entry type" + }, + "timeAndMaterials": { + "type": "object", + "properties": { + "billingRateFrequency": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "billing rate frequency display Text" + }, + "name": { + "type": "string", + "description": "billing rate name" + }, + "uri": { + "type": "string", + "description": "billing rate uri" + } + }, + "description": "billing rate frequency" + }, + "billingRateFrequencyDuration": { + "type": "object", + "description": "billing rate frequency duration" + } + }, + "description": "time and materials" + }, + "timeEntryDateRange": { + "type": "object", + "properties": { + "endDate": { + "$ref": "#/definitions/Date" + }, + "startDate": { + "$ref": "#/definitions/Date" + } + }, + "description": "time entry date range" + }, + "totalEstimatedContract": { + "type": "object", + "properties": { + "amount": { + "type": "number", + "description": "amount" + }, + "currency": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "total estimated cost currency display text" + }, + "name": { + "type": "string", + "description": "name" + }, + "symbol": { + "type": "string", + "description": "symbol" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "currency" + } + }, + "description": "total estimated contract" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "project details" + } + } + }, + "description": "d" + } + } + }, + "CreateProjectOrApplyModificationsResponse": { + "type": "object", + "properties": { + "d": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "displayText": { + "type": "string", + "description": "displayText" + }, + "name": { + "type": "string", + "description": "name" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "d" + } + } + }, + "CreateTaskHierarchyOrApplyModificationsResponse": { + "type": "object", + "properties": { + "d": { + "type": "array", + "items": { + "type": "object", + "properties": { + "error": { + "type": "object", + "description": "error" + }, + "parameterCorrelationId": { + "type": "string", + "description": "parameter correlation id" + }, + "task": { + "type": "object", + "properties": { + "displayText": { + "type": "string", + "description": "display text" + }, + "parameterCorrelationId": { + "type": "string", + "description": "parameter correlation id" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "task" + } + } + }, + "description": "d" + } + } + }, + "UserListServiceGetDataResponse": { + "type": "object", + "properties": { + "d": { + "type": "object", + "properties": { + "header": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "display name" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "header" + }, + "rows": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cells": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dataType": { + "type": "string", + "description": "data type" + }, + "objectType": { + "type": "string", + "description": "object type" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "textValue": { + "type": "string", + "description": "text value" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "cells" + } + } + }, + "description": "rows" + } + }, + "description": "d" + } + } + }, + "TaskListServiceGetDataResponse": { + "type": "object", + "properties": { + "d": { + "type": "object", + "properties": { + "header": { + "type": "array", + "items": { + "type": "object", + "properties": { + "displayName": { + "type": "string", + "description": "display name" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "header" + }, + "rows": { + "type": "array", + "items": { + "type": "object", + "properties": { + "cells": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dataType": { + "type": "string", + "description": "data type" + }, + "objectType": { + "type": "string", + "description": "object type" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "textValue": { + "type": "string", + "description": "text value" + }, + "uri": { + "type": "string", + "description": "uri" + }, + "cellCollection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "dataType": { + "type": "string", + "description": "data type" + }, + "objectType": { + "type": "string", + "description": "object type" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "textValue": { + "type": "string", + "description": "text value" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "cell collection" + } + } + }, + "description": "cells" + } + } + }, + "description": "rows" + } + }, + "description": "d" + } + } + }, + "Date": { + "type": "object", + "properties": { + "day": { + "type": "integer", + "format": "int32", + "description": "day" + }, + "month": { + "type": "integer", + "format": "int32", + "description": "month" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "year" + } + } + }, + "Duration": { + "type": "object", + "properties": { + "hours": { + "type": "integer", + "format": "int32", + "description": "hours" + }, + "microseconds": { + "type": "integer", + "format": "int32", + "description": "microseconds" + }, + "milliseconds": { + "type": "integer", + "format": "int32", + "description": "milliseconds" + }, + "minutes": { + "type": "integer", + "format": "int32", + "description": "minutes" + }, + "seconds": { + "type": "integer", + "format": "int32", + "description": "seconds" + } + } + }, + "TenantEndpointDetails": { + "type": "object", + "properties": { + "d": { + "type": "object", + "properties": { + "applicationRootUrl": { + "type": "string", + "description": "application root url" + }, + "applicationRootUrls": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rootUrl": { + "type": "string", + "description": "root url" + }, + "uri": { + "type": "string", + "description": "uri" + } + } + }, + "description": "application root urls" + }, + "isLocal": { + "type": "boolean", + "description": "is local" + }, + "tenant": { + "type": "object", + "properties": { + "companyKey": { + "type": "string", + "description": "company key" + }, + "isEnabled": { + "type": "boolean", + "description": "is enabled" + }, + "slug": { + "type": "string", + "description": "slug" + }, + "uri": { + "type": "string", + "description": "uri" + } + }, + "description": "tenant" + } + }, + "description": "d" + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://global.replicon.com/!/oauth2/authorize", + "tokenUrl": "https://global.replicon.com/!/oauth2/token", + "scopes": { + "api": "API" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "API" + ] + } + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.replicon.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.replicon.com/terms-and-conditions/privacy-policy" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Intelligence;Finance" + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Replicon/apiProperties.json b/certified-connectors/Replicon/apiProperties.json new file mode 100644 index 0000000000..4715b52418 --- /dev/null +++ b/certified-connectors/Replicon/apiProperties.json @@ -0,0 +1,60 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "{{ client id }}", + "scopes": [ + "API" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://global.replicon.com/!/oauth2/authorize" + }, + "tokenUrl": { + "value": "https://global.replicon.com/!/oauth2/token" + }, + "refreshUrl": { + "value": "https://global.replicon.com/!/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#3A76C4", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "dynamichosturl", + "title": "Set Host URL", + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@queryParameters('hostUrl')", + "x-ms-apimTemplate-operationName": [ + "BulkGetProjectDetails3", + "CreateProjectOrApplyModifications", + "UserListServiceGetData", + "GetDescendantTaskDetails", + "CreateTaskHierarchyOrApplyModifications", + "TaskListServiceGetData", + "GetTimesheetSummary", + "BulkGetTimeEnteredSummary", + "WebhookSubscriptionsRestAPI", + "PutProjectTeamMemberAssignments", + "PutResourceAssignments", + "MoveTask" + ] + } + } + ], + "publisher": "Replicon Inc", + "stackOwner": "Replicon Inc" + } +} \ No newline at end of file From 9babcfc25586cc4c303d777aa7748c86d485d3c9 Mon Sep 17 00:00:00 2001 From: Adi Winata Date: Wed, 17 Nov 2021 03:56:40 +0700 Subject: [PATCH 134/219] Endpoint update (#1267) * Add new actions * swagger definition * paths definitions updated * Add publisher and stackOwner on API properties * Update field visibility * dummy clientId * endpoint update * remove consume attributes * revert --- .../Tallyfy/apiDefinition.swagger.json | 578 +++++++++++------- 1 file changed, 343 insertions(+), 235 deletions(-) diff --git a/certified-connectors/Tallyfy/apiDefinition.swagger.json b/certified-connectors/Tallyfy/apiDefinition.swagger.json index 8adb12161d..bdea5d4eb2 100644 --- a/certified-connectors/Tallyfy/apiDefinition.swagger.json +++ b/certified-connectors/Tallyfy/apiDefinition.swagger.json @@ -15,8 +15,12 @@ "schemes": [ "https" ], - "consumes": [], - "produces": [], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], "paths": { "/organizations/{org}/users": { "get": { @@ -25,6 +29,9 @@ ], "description": "Get all users belonging to an organization", "operationId": "Get_Organization_Users", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -35,7 +42,14 @@ "required": true, "type": "string", "description": "Organization Id", - "x-ms-summary": "Organization" + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" } ], "responses": { @@ -207,6 +221,9 @@ ], "description": "Get guests in an organization", "operationId": "Get_Guests", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -228,7 +245,8 @@ } } }, - "summary": "Get guests in an organization" + "summary": "Get guests in an organization", + "x-ms-visibility": "internal" } }, "/me/organizations": { @@ -238,6 +256,9 @@ ], "description": "Get user's organizations", "operationId": "Get_User_Organizations", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -493,6 +514,9 @@ ], "description": "Get all tasks that belong to a specific member", "operationId": "Get_User_Tasks", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1022,7 +1046,7 @@ "summary": "Invite a new member to your organization", "description": "Invite a new member to your organization", "operationId": "Invite_User_To_Organization", - "x-ms-visibility": "advanced", + "x-ms-visibility": "important", "parameters": [ { "name": "org", @@ -1063,188 +1087,36 @@ "description": "invitee's work email address", "title": "Email", "x-ms-visibility": "important" - } - }, - "x-ms-visibility": "important", - "required": [ - "email", - "first_name", - "last_name" - ] - }, - "x-ms-visibility": "important" - } - ] - } - }, - "/organizations/{org}/tasks": { - "post": { - "tags": [ - "Task" - ], - "description": "Create Task", - "operationId": "Create_Task", - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "org", - "in": "path", - "required": true, - "type": "string", - "description": "Organization Id", - "x-ms-dynamic-values": { - "operationId": "Get_User_Organizations", - "value-path": "id", - "value-collection": "data", - "value-title": "name" - }, - "x-ms-summary": "Organization", - "x-ms-visibility": "important" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "owners": { - "type": "object", - "properties": { - "users": { - "type": "array", - "items": { - "type": "integer", - "format": "int32", - "description": "Users to assign the task to", - "title": "Users", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "Get_Organization_Users", - "value-path": "id", - "value-collection": "data", - "value-title": "full_name", - "parameters": { - "org": { - "parameter": "org" - } - } - } - }, - "description": "users" - }, - "guests": { - "type": "array", - "items": { - "type": "string", - "title": "Guests", - "x-ms-visibility": "important", - "description": "guest emails to assign the task to (separate emails by comma)" - }, - "description": "guests" - } - }, - "description": "owners" - }, - "task_type": { - "type": "string", - "description": "Task type", - "title": "Task type", - "x-ms-visibility": "important", - "enum": [ - "standard", - "accept_decline" - ], - "default": "standard" }, - "deadline": { + "message": { "type": "string", - "description": "task deadline, in date-time format", - "title": "Task deadline", - "format": "date-time", - "x-ms-visibility": "important", - "default": "@{addDays(utcNow(), 1, 'yyyy-MM-dd HH:mm:ss')}" - }, - "description": { - "type": "string", - "description": "Task's description", - "title": "Task description", + "description": "Message to add", + "title": "Message", "x-ms-visibility": "important" }, - "name": { + "role": { "type": "string", - "description": "task name", - "title": "Task name", + "description": "Role", + "title": "Role", + "enum": [ + "standard", + "admin" + ], "x-ms-visibility": "important" } }, + "x-ms-visibility": "important", "required": [ - "task_type", - "deadline", - "name" - ], - "x-ms-visibility": "important" + "email", + "first_name", + "last_name", + "message", + "role" + ] }, "x-ms-visibility": "important" } - ], - "responses": { - "200": { - "description": "Success response", - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Unique identifier for the created Task", - "title": "Task ID", - "x-ms-visibility": "important" - }, - "title": { - "type": "string", - "description": "Title of the created Task", - "title": "Task Title", - "x-ms-visibility": "important" - }, - "alias": { - "type": "string", - "description": "unique alias of the created Task", - "title": "Task alias", - "x-ms-visibility": "internal" - }, - "deadline": { - "type": "string", - "description": "Deadline of the created Task in date-time format", - "title": "Task Deadline", - "x-ms-visibility": "important" - }, - "description": { - "type": "string", - "description": "Description of the created Task", - "title": "Task Description", - "x-ms-visibility": "important" - }, - "owner_id": { - "type": "integer", - "format": "int32", - "description": "Unique identifier for the creator of the Task", - "title": "Creator ID", - "x-ms-visibility": "internal" - } - }, - "description": "data" - } - } - } - } - }, - "summary": "Create a task", - "x-ms-visibility": "important" + ] } }, "/organizations/{org}/checklists": { @@ -1252,6 +1124,9 @@ "tags": [ "Template" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1285,7 +1160,7 @@ "statistics", "runs,statistics,steps,runs.collaborators" ], - "format": "int10" + "format": "int32" } ], "responses": { @@ -1447,6 +1322,9 @@ "tags": [ "Process" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1483,20 +1361,9 @@ }, "checklist_id": { "type": "string", - "description": "ID of the Blueprint to start the process from", - "title": "Blueprint", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "Get_Checklists", - "value-path": "id", - "value-collection": "data", - "value-title": "title", - "parameters": { - "org": { - "parameter": "org" - } - } - } + "description": "ID of the Blueprint to start the process", + "title": "Blueprint ID", + "x-ms-visibility": "important" }, "summary": { "type": "string", @@ -1770,6 +1637,9 @@ "One off task", "Complete task" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1799,14 +1669,22 @@ "type": "object", "properties": { "task_id": { + "title": "Task ID", "type": "string", - "description": "Task ID" + "description": "Task ID", + "x-ms-visibility": "important" }, "is_approved": { + "title": "Is Approved", "type": "boolean", - "description": "starred" + "description": "starred", + "x-ms-visibility": "important" } - } + }, + "x-ms-visibility": "important", + "required": [ + "task_id" + ] } } ], @@ -1818,7 +1696,8 @@ } } }, - "summary": "Complete One Off Task" + "summary": "Complete One Off Task", + "x-ms-visibility": "important" } }, "/organizations/{org}/completed-tasks/{task}": { @@ -1828,6 +1707,9 @@ "One off task", "Reopen task" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1867,7 +1749,8 @@ } } }, - "summary": "Reopen One Off Task" + "summary": "Reopen One Off Task", + "x-ms-visibility": "important" } }, "/organizations/{org}/runs/{run}/completed-tasks": { @@ -1876,6 +1759,9 @@ "Process Task", "Complete task" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1897,7 +1783,7 @@ "required": true, "type": "string", "description": "Run Id", - "x-ms-summary": "Run", + "x-ms-summary": "Run Id", "x-ms-visibility": "important" }, { @@ -1908,15 +1794,22 @@ "type": "object", "properties": { "task_id": { + "title": "Task ID", "type": "string", "description": "Task ID" }, "is_approved": { + "title": "Is Approved", "type": "boolean", "description": "starred" } - } - } + }, + "x-ms-visibility": "important", + "required": [ + "task_id" + ] + }, + "x-ms-visibility": "important" } ], "responses": { @@ -1927,7 +1820,8 @@ } } }, - "summary": "Complete process task" + "summary": "Complete process task", + "x-ms-visibility": "important" } }, "/organizations/{org}/runs/{run}/completed-tasks/{task}": { @@ -1936,6 +1830,9 @@ "Process Task", "Reopen task" ], + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -1957,7 +1854,7 @@ "required": true, "type": "string", "description": "Run Id", - "x-ms-summary": "Run", + "x-ms-summary": "Run Id", "x-ms-visibility": "important" }, { @@ -1968,24 +1865,6 @@ "description": "Task Id", "x-ms-summary": "Task", "x-ms-visibility": "important" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "task_id": { - "type": "string", - "description": "Task ID" - }, - "is_approved": { - "type": "boolean", - "description": "starred" - } - } - } } ], "responses": { @@ -1996,13 +1875,19 @@ } } }, - "summary": "Reopen One Off Task" + "summary": "Reopen process Task", + "x-ms-visibility": "important" } }, "/organizations/{org}/tasks/{task}/comment": { "post": { "tags": [], - "produces": [], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], "description": "task deadline, in date-time format", "operationId": "Comment_Task", "parameters": [ @@ -2012,6 +1897,12 @@ "required": true, "type": "string", "description": "Organization Id", + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, "x-ms-summary": "Organization", "x-ms-visibility": "important" }, @@ -2041,7 +1932,7 @@ "title": "Comment Label", "type": "string", "description": "Comment label", - "x-ms-visibility": "internal", + "x-ms-visibility": "important", "default": "comment", "enum": [ "comment", @@ -2050,13 +1941,13 @@ ] } }, - "x-ms-visibility": "internal", + "x-ms-visibility": "important", "required": [ "content", "label" ] }, - "x-ms-visibility": "internal" + "x-ms-visibility": "important" } ], "responses": { @@ -2068,7 +1959,182 @@ } }, "summary": "Add comment, report issue, resolve issue on a task", - "x-ms-visibility": "internal" + "x-ms-visibility": "important" + } + }, + "/processes/micro-functions/organizations/{org}/tasks": { + "post": { + "tags": [ + "Task" + ], + "description": "Create Task", + "operationId": "Create_Task", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "org", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id", + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "owners": { + "type": "object", + "properties": { + "users": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "description": "Users to assign the task to", + "title": "Users", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "Get_Organization_Users", + "value-path": "id", + "value-collection": "data", + "value-title": "full_name", + "parameters": { + "org": { + "parameter": "org" + } + } + } + }, + "description": "users" + }, + "guests": { + "type": "array", + "items": { + "type": "string", + "title": "Guests", + "x-ms-visibility": "important", + "description": "guest emails to assign the task to (separate emails by comma)" + }, + "description": "guests" + } + }, + "description": "owners" + }, + "task_type": { + "type": "string", + "description": "Task type", + "title": "Task type", + "x-ms-visibility": "important", + "enum": [ + "task", + "approval", + "email", + "expiring" + ], + "default": "task" + }, + "deadline": { + "type": "string", + "description": "task deadline, in date-time format", + "title": "Task deadline", + "format": "date-time", + "x-ms-visibility": "important", + "default": "addDays(utcNow(), 1, 'yyyy-MM-dd HH:mm:ss')" + }, + "description": { + "type": "string", + "description": "Task's description", + "title": "Task description", + "x-ms-visibility": "important" + }, + "name": { + "type": "string", + "description": "task name", + "title": "Task name", + "x-ms-visibility": "important" + } + }, + "required": [ + "task_type", + "deadline", + "name" + ], + "x-ms-visibility": "important" + }, + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "Success response", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the created Task", + "title": "Task ID", + "x-ms-visibility": "important" + }, + "title": { + "type": "string", + "description": "Title of the created Task", + "title": "Task Title", + "x-ms-visibility": "important" + }, + "alias": { + "type": "string", + "description": "unique alias of the created Task", + "title": "Task alias", + "x-ms-visibility": "internal" + }, + "deadline": { + "type": "string", + "description": "Deadline of the created Task in date-time format", + "title": "Task Deadline", + "x-ms-visibility": "important" + }, + "description": { + "type": "string", + "description": "Description of the created Task", + "title": "Task Description", + "x-ms-visibility": "important" + }, + "owner_id": { + "type": "integer", + "format": "int32", + "description": "Unique identifier for the creator of the Task", + "title": "Creator ID", + "x-ms-visibility": "internal" + } + }, + "description": "data" + } + } + } + } + }, + "summary": "Create a task", + "x-ms-visibility": "important" } }, "/processes/micro-functions/organizations/{org}/tasks/{task}/edit-deadline": { @@ -2080,6 +2146,9 @@ ], "description": "Edit deadline of a task", "operationId": "Edit_Task_Deadline", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -2090,7 +2159,14 @@ "required": true, "type": "string", "description": "Organization Id", - "x-ms-summary": "Organization" + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" }, { "name": "task", @@ -2126,7 +2202,7 @@ } }, "summary": "Edit task deadline", - "x-ms-visibility": "internal" + "x-ms-visibility": "important" } }, "/processes/micro-functions/organizations/{org}/tasks/{task}/remove-guest/{guest}": { @@ -2138,6 +2214,9 @@ ], "description": "Remove guest of a task", "operationId": "Remove_Guest", + "consumes": [ + "application/json" + ], "produces": [ "application/json" ], @@ -2148,7 +2227,14 @@ "required": true, "type": "string", "description": "Organization Id", - "x-ms-summary": "Organization" + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" }, { "name": "task", @@ -2176,7 +2262,7 @@ } }, "summary": "Remove guest assigned", - "x-ms-visibility": "internal" + "x-ms-visibility": "important" } }, "/processes/micro-functions/organizations/{org}/tasks/{task}/remove-assignee/{member}": { @@ -2188,6 +2274,9 @@ ], "description": "Remove assignee of a task", "operationId": "Remove_Assignee", + "consumes": [ + "application/json" + ], "produces": [ "application/text" ], @@ -2198,7 +2287,14 @@ "required": true, "type": "string", "description": "Organization Id", - "x-ms-summary": "Organization" + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" }, { "name": "task", @@ -2226,7 +2322,7 @@ } }, "summary": "Remove assignee", - "x-ms-visibility": "internal" + "x-ms-visibility": "important" } }, "/processes/micro-functions/organizations/{org}/blueprints/{blueprint}/steps/{step}/edit-step-type": { @@ -2239,6 +2335,9 @@ ], "description": "Edit step type", "operationId": "Edit_Step_Type", + "consumes": [ + "application/json" + ], "produces": [ "application/text" ], @@ -2249,7 +2348,14 @@ "required": true, "type": "string", "description": "Organization Id", - "x-ms-summary": "Organization" + "x-ms-dynamic-values": { + "operationId": "Get_User_Organizations", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + }, + "x-ms-summary": "Organization", + "x-ms-visibility": "important" }, { "name": "blueprint", @@ -2257,7 +2363,8 @@ "required": true, "type": "string", "description": "Blueprint id", - "x-ms-summary": "Blueprint Id" + "x-ms-summary": "Blueprint Id", + "x-ms-visibility": "important" }, { "name": "step", @@ -2265,7 +2372,8 @@ "required": true, "type": "string", "description": "Step id", - "x-ms-summary": "Step Id" + "x-ms-summary": "Step Id", + "x-ms-visibility": "important" }, { "name": "body", @@ -2297,7 +2405,7 @@ } }, "summary": "Edit step type", - "x-ms-visibility": "internal" + "x-ms-visibility": "important" } } }, @@ -2985,7 +3093,7 @@ }, "type": { "type": "string", - "example": "Run" + "example": "Run Id" } } }, From 82dc31b5fdb789f8b0a0595511f7c4710ef14f0f Mon Sep 17 00:00:00 2001 From: dox42diegoschleis <75990384+dox42diegoschleis@users.noreply.github.com> Date: Wed, 17 Nov 2021 19:42:32 +0100 Subject: [PATCH 135/219] Revert dox42 Custom Connector to Previous version (#1270) * Add dox42 Custom Connector to certified-connectors folder * Change description of the dox42 Connectorf Make slight adjustment in the README.md * Change Host URL to more generic URL * Make some parameters mandatory to prevent potential errors Co-authored-by: Diego Schleis From d3d1e29645f448d4419d90a580590d9fd1c4ca84 Mon Sep 17 00:00:00 2001 From: depfeife-msft <80135000+depfeife-msft@users.noreply.github.com> Date: Thu, 18 Nov 2021 11:20:49 -0800 Subject: [PATCH 136/219] Open-source SurveyMonkey Connector (#1266) * Open Source SurveyMonkey * Refactoring script.csx * Add final changes to open sourcing * Add categories * Fix read me and the description * Make changes to the apiDefinition for indentation * Add the publisher --- .../SurveyMonkey/apiDefinition.swagger.json | 1050 +++++++++++++++++ .../SurveyMonkey/apiProperties.json | 58 + certified-connectors/SurveyMonkey/readme.md | 36 + certified-connectors/SurveyMonkey/script.csx | 226 ++++ 4 files changed, 1370 insertions(+) create mode 100644 certified-connectors/SurveyMonkey/apiDefinition.swagger.json create mode 100644 certified-connectors/SurveyMonkey/apiProperties.json create mode 100644 certified-connectors/SurveyMonkey/readme.md create mode 100644 certified-connectors/SurveyMonkey/script.csx diff --git a/certified-connectors/SurveyMonkey/apiDefinition.swagger.json b/certified-connectors/SurveyMonkey/apiDefinition.swagger.json new file mode 100644 index 0000000000..64c1dd12cf --- /dev/null +++ b/certified-connectors/SurveyMonkey/apiDefinition.swagger.json @@ -0,0 +1,1050 @@ +{ + "swagger": "2.0", + "info": { + "x-ms-deployment-version": "1.0.0", + "version": "1.0", + "title": "SurveyMonkey", + "description": "SurveyMonkey is the world's leading provider of web-based survey solutions. These solutions are used by companies, organizations, and individuals to gather the insights they need to make more informed decisions.", + "x-ms-api-annotation": { + "status": "Preview" + }, + "contact": { + "name": "Microsoft", + "url": "https://support.microsoft.com" + } + }, + "host": "api.surveymonkey.net", + "basePath": "/v3", + "schemes": [ + "https" + ], + "paths": { + "/surveys": { + "get": { + "summary": "List surveys", + "description": "List the surveys in the account.", + "operationId": "GetSurveys", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Surveys" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/collectors/{collectorId}": { + "get": { + "summary": "Get a collector", + "description": "Get details of a specific collector.", + "operationId": "GetSurveyCollector", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "collectorId", + "in": "path", + "required": true, + "x-ms-summary": "Collector Id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyCollector" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/collectors/{collectorId}/messages": { + "get": { + "summary": "Get messages", + "description": "Get survey messages for a given survey collector.", + "operationId": "GetSurveyMessages", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "collectorId", + "in": "path", + "required": true, + "x-ms-summary": "Collector Id", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyMessages" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/surveys/{surveyId}/collectors": { + "get": { + "summary": "List collectors", + "description": "Get a list of collectors for a given survey.", + "operationId": "GetSurveyCollectors", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "path", + "description": "Select a survey", + "required": true, + "x-ms-summary": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-collection": "data", + "value-path": "id", + "value-title": "title" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyCollectors" + } + } + }, + "deprecated": false, + "x-ms-visibility": "internal" + } + }, + "/surveys/{surveyId}": { + "get": { + "summary": "Get a survey", + "description": "Get details of a specific survey.", + "operationId": "GetSurvey", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "path", + "required": true, + "x-ms-summary": "Survey Id", + "description": "The id of the survey", + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Survey" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced" + } + }, + "/collectors/{collectorId}/messages/{messageId}/send": { + "post": { + "summary": "Schedule an existing invite message", + "description": "Send or schedule to send an existing message to all message recipients.", + "operationId": "SendMessage", + "consumes": [ + "application/json", + "text/json", + "application/xml", + "text/xml", + "application/x-www-form-urlencoded" + ], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "query", + "description": "Select a survey", + "required": true, + "x-ms-summary": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-collection": "data", + "value-path": "id", + "value-title": "title" + }, + "type": "string" + }, + { + "name": "collectorId", + "in": "path", + "description": "Select a collector", + "required": true, + "x-ms-summary": "Collector Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveyCollectors", + "value-collection": "data", + "value-path": "id", + "value-title": "name", + "parameters": { + "surveyId": { + "parameter": "surveyId" + } + } + }, + "type": "string" + }, + { + "name": "messageId", + "in": "path", + "description": "Select a message", + "required": true, + "x-ms-summary": "Message Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveyMessages", + "value-collection": "data", + "value-path": "id", + "value-title": "type", + "parameters": { + "collectorId": { + "parameter": "collectorId" + } + } + }, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "scheduled_date": { + "format": "date-time", + "description": "Time format: yyyy-MM-ddTHH:mm:ss.fffZ (2016-07-20T08:00:00.000Z)", + "type": "string", + "x-ms-summary": "Scheduled date", + "x-ms-visibility": "advanced" + } + } + }, + "x-ms-summary": "Scheduled date" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyMessageResponse" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-no-generic-test": true + } + }, + "/trigger1/surveys": { + "get": { + "summary": "When a new survey is created", + "description": "Triggers a new flow when a survey is created.", + "operationId": "OnSurveyCreated", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/NewSurveys" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, create a survey." + } + }, + "/trigger2/surveys/{surveyId}/collectors": { + "get": { + "summary": "When a new collector is created", + "description": "Triggers a new flow when a collector is created.", + "operationId": "OnSurveyCollectorCreated", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "path", + "description": "Select a survey", + "required": true, + "x-ms-summary": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-collection": "data", + "value-path": "id", + "value-title": "title" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/NewCollectors" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, create a survey collector." + } + }, + "/trigger3/collectors/{collectorId}/responses/bulk": { + "get": { + "summary": "When a new collector response is added", + "description": "Triggers a new flow when a response is added (paid account only).", + "operationId": "OnNewResponseAddedCollector", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "query", + "description": "Select a survey", + "required": true, + "x-ms-summary": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-collection": "data", + "value-path": "id", + "value-title": "title" + }, + "type": "string" + }, + { + "name": "collectorId", + "in": "path", + "description": "Select a collector", + "required": true, + "x-ms-summary": "Collector Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveyCollectors", + "value-collection": "data", + "value-path": "id", + "value-title": "name", + "parameters": { + "surveyId": { + "parameter": "surveyId" + } + } + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyResponses" + } + } + }, + "deprecated": false, + "x-ms-visibility": "advanced", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, respond to a survey." + } + }, + "/trigger4/surveys/{surveyId}/responses/bulk": { + "get": { + "summary": "When a new survey response is added", + "description": "Triggers a new flow when a survey response is added (paid account only).", + "operationId": "OnNewResponseAddedSurvey", + "consumes": [], + "produces": [ + "application/json", + "text/json", + "application/xml", + "text/xml" + ], + "parameters": [ + { + "name": "surveyId", + "in": "path", + "description": "Select a survey", + "required": true, + "x-ms-summary": "Survey Id", + "x-ms-dynamic-values": { + "operationId": "GetSurveys", + "value-collection": "data", + "value-path": "id", + "value-title": "title" + }, + "type": "string" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SurveyResponses" + } + } + }, + "deprecated": false, + "x-ms-visibility": "important", + "x-ms-trigger": "batch", + "x-ms-trigger-hint": "To see it work now, respond to a survey." + } + } + }, + "definitions": { + "Surveys": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "Link to the survey.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The survey identifier.", + "type": "string", + "x-ms-summary": "Survey Id", + "x-ms-visibility": "advanced" + }, + "title": { + "description": "The title of the survey.", + "type": "string", + "x-ms-summary": "Title", + "x-ms-visibility": "important" + } + } + } + } + } + }, + "SurveyCollectors": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "Link to collector.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the collector.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + }, + "id": { + "description": "The collector identifier.", + "type": "string", + "x-ms-summary": "Collector Id", + "x-ms-visibility": "advanced" + } + } + } + } + } + }, + "SurveyCollector": { + "type": "object", + "properties": { + "status": { + "description": "The status of the survey.", + "type": "string", + "x-ms-summary": "Status", + "x-ms-visibility": "important" + }, + "redirect_url": { + "description": "Redirect to this url upon survey completion.", + "type": "string", + "x-ms-summary": "Survey Redirect Url", + "x-ms-visibility": "advanced" + }, + "thank_you_message": { + "description": "Message for thank you page.", + "type": "string", + "x-ms-summary": "Thank You Message", + "x-ms-visibility": "advanced" + }, + "response_count": { + "format": "int32", + "description": "The number of survey responses.", + "type": "integer", + "x-ms-summary": "Response Count", + "x-ms-visibility": "important" + }, + "closed_page_message": { + "description": "Message shown when a survey is closed.", + "type": "string", + "x-ms-summary": "Closed Message", + "x-ms-visibility": "advanced" + }, + "href": { + "description": "Link to the survey collector.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "close_date": { + "description": "Close date of collector.", + "type": "string", + "x-ms-summary": "Close Date", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The collector identifier.", + "type": "string", + "x-ms-summary": "Collector Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the collector.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + }, + "date_modified": { + "format": "date-time", + "description": "The date the collector was last modified.", + "type": "string", + "x-ms-summary": "Modified Date", + "x-ms-visibility": "advanced" + }, + "edit_response_type": { + "description": "Type of response.", + "type": "string", + "x-ms-summary": "Response Type", + "x-ms-visibility": "advanced" + }, + "sender_email": { + "description": "Collector sender email.", + "type": "string", + "x-ms-summary": "Sender Email", + "x-ms-visibility": "advanced" + }, + "date_created": { + "format": "date-time", + "description": "The date the collector was created.", + "type": "string", + "x-ms-summary": "Created Date", + "x-ms-visibility": "advanced" + }, + "disqualification_message": { + "description": "Message for disqualification page.", + "type": "string", + "x-ms-summary": "Disqualification Date", + "x-ms-visibility": "advanced" + }, + "type": { + "description": "Collector type: 'weblink’ or 'email’.", + "type": "string", + "x-ms-summary": "Collector Type", + "x-ms-visibility": "advanced" + } + } + }, + "Survey": { + "type": "object", + "properties": { + "response_count": { + "format": "int32", + "description": "Number of responses survey has received.", + "type": "integer", + "x-ms-summary": "Response Count", + "x-ms-visibility": "important" + }, + "page_count": { + "format": "int32", + "description": "Number of pages in the survey.", + "type": "integer", + "x-ms-summary": "Page Count", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The survey identifier.", + "type": "string", + "x-ms-summary": "Survey Id", + "x-ms-visibility": "advanced" + }, + "question_count": { + "format": "int32", + "description": "Number of questions in survey.", + "type": "integer", + "x-ms-summary": "Question Count", + "x-ms-visibility": "advanced" + }, + "category": { + "description": "Survey category chosen when creating the survey.", + "type": "string", + "x-ms-summary": "Survey Category", + "x-ms-visibility": "advanced" + }, + "preview": { + "description": "Survey preview URL.", + "type": "string", + "x-ms-summary": "Preview Url", + "x-ms-visibility": "advanced" + }, + "language": { + "description": "Survey language.", + "type": "string", + "x-ms-summary": "Language", + "x-ms-visibility": "advanced" + }, + "date_modified": { + "format": "date-time", + "description": "The date the survey was last modified.", + "type": "string", + "x-ms-summary": "Modified Date", + "x-ms-visibility": "advanced" + }, + "title": { + "description": "The title of the survey.", + "type": "string", + "x-ms-summary": "Title", + "x-ms-visibility": "important" + }, + "analyze_url": { + "description": "The URL for the results of the survey.", + "type": "string", + "x-ms-summary": "Analyze Url", + "x-ms-visibility": "important" + }, + "summary_url": { + "description": "The URL for the summary of the survey.", + "type": "string", + "x-ms-summary": "Summary Url", + "x-ms-visibility": "important" + }, + "date_created": { + "format": "date-time", + "description": "The date the survey was created.", + "type": "string", + "x-ms-summary": "Created Date", + "x-ms-visibility": "advanced" + }, + "collect_url": { + "description": "Survey collect URL.", + "type": "string", + "x-ms-summary": "Collect Url", + "x-ms-visibility": "advanced" + }, + "edit_url": { + "description": "Survey edit URL.", + "type": "string", + "x-ms-summary": "Edit Url", + "x-ms-visibility": "advanced" + } + } + }, + "SurveyMessages": { + "type": "object", + "properties": { + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "status": { + "description": "The status of the message.", + "type": "string", + "x-ms-summary": "Message status", + "x-ms-visibility": "important" + }, + "href": { + "description": "Link to message.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "important" + }, + "type": { + "description": "Type of message.", + "type": "string", + "x-ms-summary": "Type", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The message identifier.", + "type": "string", + "x-ms-summary": "Message Id", + "x-ms-visibility": "advanced" + } + } + } + } + } + }, + "SurveyMessageResponse": { + "type": "object", + "properties": { + "is_scheduled": { + "description": "Link to message results.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "scheduled_date": { + "format": "date-time", + "description": "Date message was scheduled to be sent.", + "type": "string", + "x-ms-summary": "Scheduled Date", + "x-ms-visibility": "advanced" + }, + "body": { + "description": "The plain text body of the email message to be sent to recipients.", + "type": "string", + "x-ms-summary": "Message Body", + "x-ms-visibility": "important" + }, + "subject": { + "description": "Subject of the email message to be sent to recipients.", + "type": "string", + "x-ms-summary": "Subject", + "x-ms-visibility": "important" + }, + "recipients": { + "description": "List of recipient ids.", + "type": "array", + "items": { + "type": "string" + }, + "x-ms-summary": "Recipients", + "x-ms-visibility": "advanced" + }, + "recipient_status": { + "description": "The recipient status.", + "type": "string", + "x-ms-summary": "States", + "x-ms-visibility": "advanced" + }, + "type": { + "type": "string", + "x-ms-visibility": "advanced" + } + } + }, + "NewSurveys": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "Link to the survey.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The survey identifier.", + "type": "string", + "x-ms-summary": "Survey Id", + "x-ms-visibility": "important" + }, + "title": { + "description": "The title of the survey.", + "type": "string", + "x-ms-summary": "Title", + "x-ms-visibility": "important" + } + } + } + }, + "NewCollectors": { + "type": "array", + "items": { + "type": "object", + "properties": { + "href": { + "description": "Link to survey collector.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The collector identifier.", + "type": "string", + "x-ms-summary": "Collector Id", + "x-ms-visibility": "advanced" + }, + "name": { + "description": "The name of the collector.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "important" + } + } + } + }, + "SurveyResponses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "total_time": { + "format": "int32", + "description": "Total time spent on the response.", + "type": "integer", + "x-ms-summary": "Time Spent", + "x-ms-visibility": "advanced" + }, + "href": { + "description": "Survey response link.", + "type": "string", + "x-ms-summary": "Link", + "x-ms-visibility": "important" + }, + "ip_address": { + "description": "IP address of responder.", + "type": "string", + "x-ms-summary": "IP Address", + "x-ms-visibility": "advanced" + }, + "id": { + "description": "The response identifier.", + "type": "string", + "x-ms-summary": "Response Id", + "x-ms-visibility": "advanced" + }, + "date_modified": { + "format": "date-time", + "description": "The date the response was last modified.", + "type": "string", + "x-ms-summary": "Modified Date", + "x-ms-visibility": "advanced" + }, + "response_status": { + "description": "Status of the response.", + "type": "string", + "x-ms-summary": "Response Status", + "x-ms-visibility": "advanced" + }, + "custom_value": { + "description": "Custom value associated with a response.", + "type": "string", + "x-ms-summary": "Custom Value", + "x-ms-visibility": "advanced" + }, + "analyze_url": { + "description": "Link to the analyze page to view the response.", + "type": "string", + "x-ms-summary": "Analyze Url", + "x-ms-visibility": "important" + }, + "recipient_id": { + "description": "The recipient identifier.", + "type": "string", + "x-ms-summary": "Recipient Id", + "x-ms-visibility": "advanced" + }, + "collector_id": { + "description": "The collector identifier.", + "type": "string", + "x-ms-summary": "Collector Id", + "x-ms-visibility": "advanced" + }, + "date_created": { + "format": "date-time", + "description": "The date the response was created.", + "type": "string", + "x-ms-summary": "Created Date", + "x-ms-visibility": "important" + }, + "survey_id": { + "description": "The survey identifier.", + "type": "string", + "x-ms-summary": "Survey Id", + "x-ms-visibility": "advanced" + }, + "collection_mode": { + "description": "Response collection mode.", + "type": "string", + "x-ms-summary": "Collection Mode", + "x-ms-visibility": "advanced" + }, + "first_name": { + "type": "string", + "description": "First name of the recepient.", + "x-ms-summary": "First Name", + "x-ms-visibility": "advanced" + }, + "last_name": { + "type": "string", + "description": "Last name of the recepient.", + "x-ms-summary": "Last Name", + "x-ms-visibility": "advanced" + }, + "email_address": { + "type": "string", + "description": "Email Address of the recepient.", + "x-ms-summary": "Email Address", + "x-ms-visibility": "advanced" + }, + "logic_path": { + "type": "object", + "properties": {}, + "description": "Logic path taken during the survey." + }, + "metadata": { + "type": "object", + "properties": { + "contact": { + "type": "object", + "properties": {}, + "description": "contact" + } + }, + "description": "Other associated metadata or custom values." + }, + "page_path": { + "type": "array", + "items": {}, + "description": "The order in which the pages were responded to." + }, + "pages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "questions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "answers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "choice_id": { + "type": "string", + "description": "Choice Id" + } + } + }, + "description": "answers" + } + } + }, + "description": "questions" + } + } + }, + "description": "Pages from the survey and their associated responses." + }, + "edit_url": { + "description": "Link to the survey page to edit the response.", + "type": "string", + "x-ms-summary": "Edit Url", + "x-ms-visibility": "advanced" + } + }, + "x-ms-visibility": "advanced" + } + } + }, + "x-ms-capabilities": { + "testConnection": { + "operationId": "GetSurveys" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.surveymonkey.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.surveymonkey.com/mp/legal/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Productivity" + } + ] +} \ No newline at end of file diff --git a/certified-connectors/SurveyMonkey/apiProperties.json b/certified-connectors/SurveyMonkey/apiProperties.json new file mode 100644 index 0000000000..508cd1c724 --- /dev/null +++ b/certified-connectors/SurveyMonkey/apiProperties.json @@ -0,0 +1,58 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2generic", + "scopes": [ + "View Surveys", + "View Collectors", + "View Responses", + "View Response Details" + ], + "clientId": "<>", + "redirectMode": "direct", + "customParameters": { + "AuthorizationUrlTemplate": { + "value": "https://api.surveymonkey.net/oauth/authorize" + }, + "AuthorizationUrlQueryStringTemplate": { + "value": "?client_id={ClientId}&response_type=code&redirect_uri={RedirectUrl}&state={state}" + }, + "TokenUrlTemplate": { + "value": "https://api.surveymonkey.net/oauth/token" + }, + "TokenUrlQueryStringTemplate": { + "value": "" + }, + "RefreshUrlTemplate": { + "value": null + }, + "RefreshBodyTemplate": { + "value": null + }, + "ScopeListDelimiter": { + "value": " " + } + } + }, + "uiDefinition": { + "displayName": "Log in with your credentials", + "description": "Log in with your credentials", + "tooltip": "Log in with your credentials", + "constraints": { + "required": "true" + } + } + } + }, + "iconBrandColor": "#00BF6F", + "capabilities": [ + "actions", + "triggers" + ], + "publisher": "Microsoft", + "stackOwner": "Microsoft" + } +} \ No newline at end of file diff --git a/certified-connectors/SurveyMonkey/readme.md b/certified-connectors/SurveyMonkey/readme.md new file mode 100644 index 0000000000..c6f1aa5221 --- /dev/null +++ b/certified-connectors/SurveyMonkey/readme.md @@ -0,0 +1,36 @@ +# SurveyMonkey +SurveyMonkey is the world's leading provider of web-based survey solutions. These solutions are used by companies, organizations, and individuals to gather the insights they need to make more informed decisions. + +## Prerequisites +To use this integration, you will need a SurveyMonkey account. + +## Publisher: Microsoft + +## Obtaining Credentials +A SurveyMonkey account (trial or paid) is needed to register an application. You can start a trial [here](https://www.surveymonkey.com/). After that you can go to the [developer page](https://developer.surveymonkey.com/api/v3/#registering-an-app) and register your application there. From there you can grab the app key and secret. + +## Supported Operations +#### Get a survey +Get details of a specific survey. + +#### Schedule an existing invite message +Send or schedule to send an existing message to all message recipients. + +#### When a new collector response is added +Triggers a new flow when a response is added (paid account only). + +#### When a new survey response is added +Triggers a new flow when a survey response is added (paid account only). + +#### When a new survey is created +Triggers a new flow when a survey is created. + +#### When a new collector is created +Triggers a new flow when a collector is created. + + +## Known issues and limitations +The connector is based on integration with [surveymonkey.com](https://www.surveymonkey.com/) portal accounts. Other region-specific instances are not supported. + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps \ No newline at end of file diff --git a/certified-connectors/SurveyMonkey/script.csx b/certified-connectors/SurveyMonkey/script.csx new file mode 100644 index 0000000000..8c5282b309 --- /dev/null +++ b/certified-connectors/SurveyMonkey/script.csx @@ -0,0 +1,226 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + var check = await this.UpdateRequest().ConfigureAwait(false); + if (check == false) + { + var triggerResponse = new HttpResponseMessage(HttpStatusCode.Accepted); + triggerResponse.Headers.Location = SetLocationHeader(string.Empty, string.Empty); + return triggerResponse; + } + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(false); + if (response.IsSuccessStatusCode) + { + await this.UpdateResponse(response).ConfigureAwait(false); + } + return response; + } + + private Uri SetLocationHeader(string triggerState, string excludeIds) + { + var locationUriBuilder = new UriBuilder(this.Context.OriginalRequestUri); + var query = HttpUtility.ParseQueryString(this.Context.OriginalRequestUri.Query); + string newTriggerState = DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + if (!String.IsNullOrEmpty(triggerState)) + { + newTriggerState = triggerState; + } + query["triggerstate"] = newTriggerState; + query["triggerstate_exclude_ids"] = excludeIds; + locationUriBuilder.Query = query.ToString(); + return locationUriBuilder.Uri; + } + + private string SetBody(string content) + { + string body = string.Empty; + if (!String.IsNullOrEmpty(content)) + { + JObject modifiedRequestBody = null; + JObject requestBody = JObject.Parse(content); + + switch (this.Context.OperationId.ToLower()) + { + case "sendmessage": + if (requestBody["scheduled_date"] != null) + { + string scheduled_date = (string)requestBody["scheduled_date"]; + if (!string.IsNullOrWhiteSpace(scheduled_date)) + { + modifiedRequestBody = JObject.Parse("{ 'scheduled_date' : '" + scheduled_date + "' }"); + } + } + break; + + default: + return body; + } + body = (modifiedRequestBody == null) ? "{}" : modifiedRequestBody.ToString(); + } + else + { + switch (this.Context.OperationId.ToLower()) + { + case "sendmessage": + body = "{}"; + break; + } + } + return body; + } + + public JArray GetNewItems(JArray items) + { + var originalQuery = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + var triggerState = originalQuery.Get("triggerstate"); + if (items != null && triggerState != null) + { + var listOfOperations = new List() { "OnNewResponseAddedCollector", "OnNewResponseAddedSurvey" }; + + if (listOfOperations.Contains(this.Context.OperationId, StringComparer.OrdinalIgnoreCase)) + { + string serializedExcludeIds = string.Empty; + var triggerStateExcludes = originalQuery.Get("triggerstate_exclude_ids"); + if (triggerStateExcludes != null) + { + serializedExcludeIds = triggerStateExcludes; + } + if (serializedExcludeIds != string.Empty) + { + var excludeIds = new HashSet(serializedExcludeIds.Split(new char[] { ',' })); + items = new JArray(items.Where(x => !excludeIds.Contains(x["id"].ToString()))); + } + items = (items?.Count > 0 ? items : new JArray()); + } + } + return items; + } + + public string SetTriggerState(JArray newItems, string triggerState, string date) + { + DateTime newTriggerState = DateTime.MinValue; + string excludeIds = string.Empty; + var listOfOperations = new List() { "OnNewResponseAddedCollector", "OnNewResponseAddedSurvey" }; + + if (listOfOperations.Contains(this.Context.OperationId, StringComparer.OrdinalIgnoreCase) && newItems != null) + { + if (newItems.Count > 0) + { + newTriggerState = newItems.Max(x => DateTime.Parse(x["date_modified"].ToString())); + newTriggerState = newTriggerState.AddSeconds(1); + /* now get the ids of any responses with modified date in the same minute as the next trigger date so we can exclude them from the next run */ + excludeIds = string.Join(",", newItems.Where(x => DateTime.Parse(x["date_modified"].ToString()).ToString("yyyy-MM-ddTHH:mmZ") == newTriggerState.ToString("yyyy-MM-ddTHH:mmZ")).Select(y => y["id"].ToString())); + } + } + + if ((newItems == null || newItems.Count == 0) && !String.IsNullOrEmpty(triggerState) && newTriggerState == DateTime.MinValue) + { + newTriggerState = DateTime.Parse(triggerState); + } + else if (newTriggerState == DateTime.MinValue) + { + newTriggerState = DateTime.Parse(date); + } + + return newTriggerState.ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + "|" + excludeIds; + } + + private async Task UpdateRequest() + { + var uriBuilder = new UriBuilder(this.Context.Request.RequestUri); + var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); + string triggerState = query.Get("triggerstate"); + if (!string.IsNullOrEmpty(triggerState)) + { + // initial trigger state to get existing items + triggerState = DateTime.Parse(triggerState).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + + if ("OnSurveyCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedCollector".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedSurvey".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnSurveyCollectorCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + var segments = this.Context.Request.RequestUri.Segments.ToList(); + var removeTrigger = segments.Find(x => x.StartsWith("trigger")); + uriBuilder.Path = uriBuilder.Path.Replace(removeTrigger, string.Empty); + if (!string.IsNullOrEmpty(triggerState)) + { + if ("OnSurveyCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedCollector".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedSurvey".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + query["start_modified_at"] = triggerState; + } + else if ("OnSurveyCollectorCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + query["start_date"] = triggerState; + } + else + { + query["since"] = triggerState; + } + } + else + { + return false; + } + query.Remove("triggerstate"); + query.Remove("triggerstate_exclude_ids"); + } + else + { + var content = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + string body = SetBody(content); + this.Context.Request.Content = new StringContent(body, Encoding.UTF8, "application/json"); + } + query.Remove("surveyId"); + uriBuilder.Query = query.ToString(); + this.Context.Request.RequestUri = uriBuilder.Uri; + + return true; + } + + private async Task UpdateResponse(HttpResponseMessage response) + { + var query = HttpUtility.ParseQueryString(this.Context.OriginalRequestUri.Query); + var triggerState = query.Get("triggerstate"); + if (!String.IsNullOrEmpty(triggerState)) + { + triggerState = DateTime.Parse(triggerState).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); + } + var excludeIds = string.Empty; + + if ("OnSurveyCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedCollector".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedSurvey".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnSurveyCollectorCreated".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + response.Headers.RetryAfter = new RetryConditionHeaderValue(TimeSpan.FromSeconds(60)); + var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); + var body = JObject.Parse(content); + var newItems = body.SelectToken("data") as JArray; + + if ("OnNewResponseAddedCollector".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase) || + "OnNewResponseAddedSurvey".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + newItems = GetNewItems(newItems); + var triggerStates = SetTriggerState(newItems, triggerState, response.Headers?.Date.ToString()); + triggerState = triggerStates.Split('|')[0]; + excludeIds = triggerStates.Split('|')[1]; + } + if (newItems != null && newItems.HasValues) + { + response.Content = new StringContent(newItems.ToString(), Encoding.UTF8, "application/json"); + response.StatusCode = HttpStatusCode.OK; + } + else + { + response.Content = null; + response.StatusCode = HttpStatusCode.Accepted; + } + response.Headers.Location = SetLocationHeader(triggerState, excludeIds); + } + } +} \ No newline at end of file From b217debfc88e2bbbaebff53be13a9d4b32b7d666 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Thu, 18 Nov 2021 23:50:27 +0000 Subject: [PATCH 137/219] Moving connector from Rene's branch to our dev branch (#1273) * Create readme.txt * Delete snowflake directory * Create readme.txt * Add files via upload * Delete custom-connectors/snowflake directory * Create readme.md * Add files via upload * Add files via upload * Update readme.md * Update readme.md * Update readme.md Co-authored-by: rekodus <64546401+rekodus@users.noreply.github.com> --- .../Snowflake/apiDefinition.swagger.json | 630 ++++++++++++++++++ .../Snowflake/apiProperties.json | 51 ++ custom-connectors/Snowflake/icon.png | Bin 0 -> 3660 bytes custom-connectors/Snowflake/readme.md | 13 + .../Snowflake/snowflakeconnector_code.cs | 138 ++++ 5 files changed, 832 insertions(+) create mode 100644 custom-connectors/Snowflake/apiDefinition.swagger.json create mode 100644 custom-connectors/Snowflake/apiProperties.json create mode 100644 custom-connectors/Snowflake/icon.png create mode 100644 custom-connectors/Snowflake/readme.md create mode 100644 custom-connectors/Snowflake/snowflakeconnector_code.cs diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json new file mode 100644 index 0000000000..d0825928b5 --- /dev/null +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -0,0 +1,630 @@ +{ + "swagger": "2.0", + "info": { + "title": "Snowflake REST", + "description": "Snowflake connector based on Snowflake REST API (private preview)", + "version": "1.0" + }, + "host": "@@xxx.snowflakecomputing.com@@", + "basePath": "/api/statements", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success operation", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "resultSetMetaData": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32", + "description": "page" + }, + "pageSize": { + "type": "integer", + "format": "int32", + "description": "pageSize" + }, + "numPages": { + "type": "integer", + "format": "int32", + "description": "numPages" + }, + "numRows": { + "type": "integer", + "format": "int32", + "description": "numRows" + }, + "format": { + "type": "string", + "description": "format" + }, + "rowType": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + }, + "description": "rowType" + } + }, + "description": "resultSetMetaData" + }, + "data": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + }, + "description": "data" + }, + "code": { + "type": "string", + "description": "code" + }, + "statementStatusUrl": { + "type": "string", + "description": "statementStatusUrl" + }, + "sqlState": { + "type": "string", + "description": "sqlState" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + }, + "message": { + "type": "string", + "description": "message" + }, + "createdOn": { + "type": "integer", + "format": "int32", + "description": "createdOn" + } + } + } + }, + "202": { + "description": "Asynchronous execution in progress. Use provided query id to perform query monitoring and management.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + }, + "statementStatusUrl": { + "type": "string", + "description": "statementStatusUrl" + } + } + } + }, + "400": { + "description": "Incoming request does not contain a valid payload.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + }, + "401": { + "description": "Invalid OAuth access token", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + }, + "405": { + "description": "Unsupported HTTP method.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + }, + "422": { + "description": "SQL compilation error.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + }, + "sqlState": { + "type": "string", + "description": "sqlState" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + } + } + } + }, + "429": { + "description": "Too many concurrent requests.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + }, + "default": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + }, + "headers": { + "HTTP/1.1": { + "description": "HTTP/1.1", + "type": "string" + }, + "Date": { + "description": "Date", + "type": "string" + }, + "Content-Type": { + "description": "Content-Type", + "type": "string" + }, + "Content-Length": { + "description": "Content-Length", + "type": "integer" + } + } + } + }, + "summary": "Submit SQL Statement for Execution", + "description": "Submit a SQL Statement for Execution", + "operationId": "ExecuteSqlStatement", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "Accept", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "statement": { + "type": "string", + "description": "statement" + }, + "timeout": { + "type": "integer", + "format": "int32", + "description": "timeout", + "x-ms-visibility": "advanced" + }, + "database": { + "type": "string", + "description": "database" + }, + "schema": { + "type": "string", + "description": "schema" + }, + "warehouse": { + "type": "string", + "description": "warehouse" + }, + "role": { + "type": "string", + "description": "role" + } + } + } + }, + { + "name": "async", + "in": "query", + "type": "boolean", + "default": false, + "x-ms-visibility": "advanced" + }, + { + "name": "requestId", + "in": "query", + "type": "string", + "required": false, + "x-ms-visibility": "advanced" + }, + { + "name": "pageSize", + "in": "query", + "type": "string", + "required": false, + "x-ms-visibility": "advanced" + } + ], + "x-ms-visibility": "important" + } + }, + "/{statementHandle}": { + "get": { + "responses": { + "200": { + "description": "Success operation", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "resultSetMetaData": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32", + "description": "page" + }, + "numPages": { + "type": "integer", + "format": "int32", + "description": "numPages" + }, + "numRows": { + "type": "integer", + "format": "int32", + "description": "numRows" + }, + "format": { + "type": "string", + "description": "format" + }, + "rowType": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": true + }, + "description": "rowType" + } + }, + "description": "resultSetMetaData" + }, + "data": { + "type": "array", + "items": { + "items": { + "type": "object", + "additionalProperties": true + }, + "description": "data" + } + }, + "sqlState": { + "type": "string", + "description": "sqlState" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + }, + "statementStatusUrl": { + "type": "string" + }, + "message": { + "type": "string", + "description": "message" + }, + "code": { + "type": "string", + "description": "code" + }, + "createdOn": { + "type": "integer", + "format": "int32", + "description": "createdOn" + } + } + } + }, + "202": { + "description": "Asynchronous execution in progress. Use provided query id to perform query monitoring and management.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + }, + "statementStatusUrl": { + "type": "string", + "description": "statementStatusUrl" + } + } + } + }, + "429": { + "description": "Too many concurrent requests.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + } + }, + "summary": "Check the Status and Get Results", + "description": "Check the Status of the Execution of a Statement and Get the Results", + "operationId": "GetResults", + "x-ms-visibility": "important", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "Accept", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "statementHandle", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "page", + "in": "query", + "required": true, + "type": "integer", + "default": 0 + } + ] + } + }, + "/{statementHandle}/cancel": { + "post": { + "responses": { + "200": { + "description": "Success", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "sqlState": { + "type": "string", + "description": "sqlState" + }, + "message": { + "type": "string", + "description": "message" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + }, + "statementStatusUrl": { + "type": "string", + "description": "statementStatusUrl" + } + } + } + }, + "422": { + "description": "Statement not found.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + }, + "sqlState": { + "type": "string", + "description": "sqlState" + }, + "statementHandle": { + "type": "string", + "description": "statementHandle" + } + } + } + }, + "429": { + "description": "Too many concurrent requests.", + "x-ms-summary": "Message", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "code" + }, + "message": { + "type": "string", + "description": "message" + } + } + } + } + }, + "summary": "Cancel the Execution of a Statement", + "description": "Cancel the Execution of a Statement", + "operationId": "Cancel", + "parameters": [ + { + "name": "statementHandle", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "Content-Type", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "Accept", + "in": "header", + "default": "application/json", + "type": "string", + "required": true, + "x-ms-visibility": "internal" + }, + { + "name": "requestId", + "in": "query", + "type": "string" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "@@https://login.windows.net/common/oauth2/authorize@@", + "tokenUrl": "@@https://xxx.snowflakecomputing.com/oauth/token-request@@", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/custom-connectors/Snowflake/apiProperties.json b/custom-connectors/Snowflake/apiProperties.json new file mode 100644 index 0000000000..609844cfc6 --- /dev/null +++ b/custom-connectors/Snowflake/apiProperties.json @@ -0,0 +1,51 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "aad", + "clientId": "945e244d-b5ea-4b33-9231-ed9737c5f124", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "AzureActiveDirectoryResourceId": "@@id@@", + "IsOnbehalfofLoginSupported": true + }, + "customParameters": { + "loginUri": { + "value": "https://login.windows.net" + }, + "tenantId": { + "value": "common" + }, + "resourceUri": { + "value": "@@id@@" + }, + "enableOnbehalfOfLogin": { + "value": "false" + } + } + } + }, + "token:TenantId": { + "type": "string", + "metadata": { + "sourceType": "AzureActiveDirectoryTenant" + }, + "uiDefinition": { + "constraints": { + "required": "false", + "hidden": "true" + } + } + } + }, + "iconBrandColor": "#007ee5", + "capabilities": [], + "policyTemplateInstances": [], + "publisher": "Koch, Rene" + } +} \ No newline at end of file diff --git a/custom-connectors/Snowflake/icon.png b/custom-connectors/Snowflake/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..66480b3d07c3538f60bfb3786e8b04b69aa53281 GIT binary patch literal 3660 zcmV-S4zuxzP)oP|Wf2{Qm6v{s6u0yX*Sr`2EiD z`)<|q;r9Jv(DG{3^O@oIVAJ!i=lG7@_I%j%QqJ*s*z`il@QK>>mf`oc>iNO$`mN&k z^9&|V000e}Nkl0*N@5UxZ)jffgGiC2z&|94zX)5e2iFqmY!et$~?pTNv8 z2Yh|4Sg~ToiWMtXtXQ#P#flXx<|9mf-%mpVZtI6j56LLvOPK{hkd<~qRc+Jbt!+^5 zeP!EE0Xb&aVjV2p6!N*D+YH^?T0yaS(FmVJT%vZkKfqZcX`9x)whULYwjYBq@A2!# z9f*fb%TZg`f8j`Hf*u@e2-d`+w&kQP`h1F8YXYYfh}4Kp+TsI9{Js&fJ7s7wkJ~nE zcx|sQ99ZzS|A1xmv}rDlzHQCxx_xCUN&jTa*4Q`2eO|K?3T+Z8Ok>EvXmqz#PR3gy=kGE zRQ#bgMQWJgaFwR#hU>4gOa}nCQ}{iggWX%Ih8faJAne!hB*r=aOWyj*9!^}dlIEK6 z7U=ya4evx>uxIXr+WlAnCg;%KiRSMH!x4^1)>k_!R8Uh4t>X4qS|FbLyobmr!;AED zws3-onqhdGLmCANeyvt9xe>`x#jrDSJYt9;NlNhs{B3tMDryv~^qYpe_pb&Rp8Y*P zHZX$ORhmd8%`bwQKi69OunH{Y1hznC6{1XA^dVTxS`3vN;`=8JYYSSy7>b6Y!w~qB zh2issA3Q_RJVO>34>JnQw)Zf^5?{wmgylyuEEhN+ruhdk%u~(}K2LG4R>Lo0$k2Wf zf~{o}RWm6XWyq>%IhP_my0bVMWXRm(vMG$=)LrvZhIk1PGX(K#tUZs07&2V@uSg0b z$4Zx@5rzy`W{(pRZ0z6-33ATQrr8%Bw$WZa(Y%rSCpfipchRmwf3FF2=#;*3| z7&^_%HsBBxyi}iJ$dKuSk_M6;jN=mw8QQ%!y`2*^G0Bjj?Cr^zp`EF%oVg5faQuK$ z8sZm9V|5-w<}R!u((Bf?kBM4}5pSn3au6>rtzgLT&I9zF9Bq4hopYMH)(yfKBRAWt z7Yg-qspjCu7`UnWzi{$N_?7b$`^>$KvZ-}b{Nu9sfrG31TZUU#!m;804?mOro1eQ? ze^+wt8IP#c@-C)>s0ec^fJq;ogsaXubN}Na{3hrG;OAFP{}VY#W2t&$(ZNs&;OL38 zBjT?&%6A#G8c?kvh(8H!Fc+*?!fe_zYwT3XG2C)Pnn;w#6>)O|GPQ;v>7En(W*Jbm zkTXxgF`NP12l0Ly6~l$-(~x4)lN0RK`-$3|Ip}&i!^~G-aQI_x87VnZ|1=IiN%mBD z8nty#>OxW)31e?SN4VI#%^H9TrcvHIS2;+kY{GqS%QGuif5I=n6dM>YPdFWa*8v() zUR@8}xvCR$j5&`8zi_}i>~tlv%z>SeY^fGKK~5ox7>rW^B9mluu9~LWoi~6UH|Jf~ z_`Ct|iz=xR42##OqD;&xA!BJ51Ei5oTe2w?eg!iOZ{h4W6kQX4ueR_FF>I0jGso5q zlc>WiJ2{2;_h1Y+d|fm8DJ#=Y6o|{aF|QOqQ$!iW@x?O8;-V**^Tj=Bn)Ci|cn(*Z z2X}AB&+(Wr1j*7b8ycBtY#m_|_mj9JHTqM~Gc+C~%n=`A0}k0U7tYZiq;G13;i+5$ z4u2IU0m)XwReJ!O!#kwA@nB#Jm3RjR_B^94(5*@}B4`X1>NCf92EQo+W|5>i(F4p) zuID12-25Qp*q*DDKgh{22Fzk=3lfC6a1I)$d_UKTgJRW*&foF=jRkUr6CMG6%HAk) zEgckt#n)}DXeZMgaVGe;Mn>@p^rzo{%ROsmfssw26$V9xumfK_6=I5Up%r_>AZaiH z)sbQ?TtRAi%w3}QkqIc0Jxs&jf2Eb^Gh;W$MrR|ihPPCwQgrY?E-!QBsv}@5+#Ki8 z>p%;zw(YVe(bND)Br|xYIO){ZiZ3@$#@@V>2FGdc^+bxg!D#(WC=#&Mc;k0^IyR*a zO7t-bP>l5;%OXD-TQ?($7Y&OF6xvWD)Yy)!>1)RE3_5kEvclRK{ZF4_2;YP41~e3V zBN~|(tmplWM|Oh~d}|ak&T?#e;)Z+i5Vt2(m`oq?E1>3J!EdkQj8qoqCa4&{sV0 zcRl71kTAbsdJVDV9_Md{XFfye95Ssrtc=!l^>76p*Iu#@vn4L(o5oxPy^CZiIvA9t zs5HG5L$yc!4zWITDv&;eb;Ddhiiifk2=34;9{)DBY4Dxmq;jKY(-3%pl{u9`eTbj` z4!7^IoY|@w_g_ zG5ZQJ+~p zZ?c7zbpMPX*DGkFU=!wsK#{pHFK*!%I+Z!Ck)t7T=vi+UD0lkI*c0Sxh29UsLfkiK ziR;P(Y=P-4g5rmvCzZrwoS+0XJeC*%jl;3hfX0AB8^J#}H=UgKqu`Qeh7@l*2q|jB z@k5O;a1I;J5n8Q-a~)ON&&80vmoP;Fmg@)p@@b%Xpua;pf+}+? zU~Xb6&|V{gf&K~fiJYi#4=W?jAjSF6m8q{1+eU6TOJ^SF^r|xq(O>rh+iYe zVXRBtRw~S}Xzpzhq}YB?t~3GOfl^K+x%y}aD1jPyR@-B-j3bG93y&dy{35bE8{n-q ziNJNpl(|nG;>*wx%&=q{>2c__!Ie6L>{in$;Ml+n2|?nX(*UxLDDPY;u9=y*D;UV_ z5(_TG1gGx#yqY3Z0;*Y(Nx@79Vck>0QE{!RRm&&p^DZ@I@F!}n)7_j!fCYLM#1}=i zYdii-Ko(0FO-(PDRr-zXP$)Cd8EGqYtqAH5h1cBS0B~!0I7%#HOzWz1um6Qy(VJU? z|EMHx75y4gNUl36AA5pXx@GO*_PfFsqXrPjBB?x+k$=~yEZhUjHuTHJ#oyJ++RnDl zgK#X0;v50I=Bdhs%Xo+HP*Kb60yM|hCOWsHJkHHLAq4V|@kM#wnt9_uc7d2Euu(pN zYp(V(%w)(={{DC7HlWzs{ChFn^1Uy2(ml-i{>0rTI52)UxduFFaN()@X)w_7XdEPg z=Yc{v{IqUSeEOa!w4afS{}ke*RX6i!p5BE_26OSj-)eafX()gv6oK+j8E>5HFDH4UG)HhM|^U z4Te8|uRhs-+}j8*d=1Go!}q*zA$Xf|+^Z`{($iuXz%tHUv&+sxkH6lW)r|n*45O)&}R@|JP^0@^7b~ zxmU?HxylP<_%$SXXTLX`nS8Z6lIJBFes?XEDExjcnb8-IiL4UhQFChs;$*ks8;^!x zJWdO-!%HJy76ealw0G-4a)9wSER$NGi5t^yV#1rmF0WvCj4}UOZW!@1FHXi!`aUOw z)=XZsF)3+&kn$dy%N982`y*qjDFgi+ zE?Tx*DC9=FY!cSO!noom2ru?7H$7JPr}Ji+N2_m$?K;bXEH5sCK9+lV{EJ+QUC?&E zgXBg&0TPFPEOrAe`Fi{pX}jJ?I)4ckW%v1@MKgTQANSEN_WrzQ1-8>cJED4xh*Q~fcwo$CHromS0000 Import an Open API File, select “apiDefinition.swagger.json” +3. Select "icon.png" with the snowflake logo as a picture if you like on tab 1 +4. Enter Client id, Secret, Resource URL on tab 2 +5. Paste the content of file “snowflake_connector_code” into the textbox in step 4 (Code) and make sure that the checkboxes for “ExecuteSqlStatement” and “GetResults” are checked. diff --git a/custom-connectors/Snowflake/snowflakeconnector_code.cs b/custom-connectors/Snowflake/snowflakeconnector_code.cs new file mode 100644 index 0000000000..be7ea2b7e1 --- /dev/null +++ b/custom-connectors/Snowflake/snowflakeconnector_code.cs @@ -0,0 +1,138 @@ +public class Script : ScriptBase +{ + + public override async Task ExecuteAsync() + { + // Check if the operation ID matches what is specified in the OpenAPI definition of the connector + if (this.Context.OperationId == "ExecuteSqlStatement" || + this.Context.OperationId == "GetResults") + { + + return await this.ParseandProcessString().ConfigureAwait(false); + } + + // Handle an invalid operation ID + HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unknown operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task ParseandProcessString() + { + bool rowsAsObjects = true; + + // Use the context to forward/send an HTTP request + HttpResponseMessage response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + // Do the transformation if the response was successful, otherwise return error responses as-is + if (response.IsSuccessStatusCode) + { + //var contentAsString = await this.Context.Request.Content.ReadAsStringAsync().ConfigureAwait(false); + var contentAsString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + + // Parse as JSON object + var contentAsJson = JObject.Parse(contentAsString); + try + { + if (response.StatusCode == HttpStatusCode.Accepted) { + return response; + } + + var rows = contentAsJson["data"]; + + try + { + + + var meta = contentAsJson["resultSetMetaData"]; + try + { + var cols = meta["rowType"]; + + if (rowsAsObjects) + { + JArray newRows = new JArray(); + JProperty newData = new JProperty("data", newRows); + foreach (var row in rows) + { + JObject newRow = new JObject(); + int i = 1; + + foreach (var col in cols) + { + var name = col["name"]; + string type = col["type"].ToString(); + + switch (type) + { + case "fixed": + long myLong = long.Parse( row[i].ToString()); + newRow.Add(new JProperty(name.ToString(), myLong)); + break; + case "float": + float myFloat = float.Parse(row[i].ToString()); + newRow.Add(new JProperty(name.ToString(), myFloat)); + break; + case "boolean": + bool myBool = bool.Parse(row[i].ToString()); + newRow.Add(new JProperty(name.ToString(), myBool)); + break; + default: + if (type.ToString().IndexOf("time") >= 0) + { + + double unixTimeStamp = Convert.ToDouble(row[i].ToString()); + + DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); + dateTime = dateTime.AddSeconds(unixTimeStamp); + + newRow.Add(new JProperty(name.ToString(), dateTime.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"))); + } + else + { + var val = row[i]; + newRow.Add(new JProperty(name.ToString(), val)); + } + break; + } + i++; + + } + + newRows.Add(newRow); + + } + + rows.Replace(newRows); + response.Content = CreateJsonContent(contentAsJson.ToString()); + } + } + catch (Exception){ + response.ReasonPhrase = "Problem with schema (rowType )"; + response.Headers.Add("ErrorMessage", "Problem with schema (rowType )"); + response.StatusCode = System.Net.HttpStatusCode.InternalServerError; + return response; + } + } + catch (Exception) + { + response.ReasonPhrase = "Problem with schema (resultSetMetaData )"; + response.Headers.Add("ErrorMessage", "Problem with schema (resultSetMetaData )"); + response.StatusCode = System.Net.HttpStatusCode.InternalServerError; + return response; + } + + } + catch (Exception) + { + response.ReasonPhrase = "Problem with schema (data)"; + response.Headers.Add("ErrorMessage", "Problem with schema (data)"); + response.StatusCode = System.Net.HttpStatusCode.InternalServerError; + return response; + } + + } + + return response; + + } +} \ No newline at end of file From 823f8f187e3eaf97283d160ff7f719747b79b49a Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Fri, 19 Nov 2021 15:22:15 +0000 Subject: [PATCH 138/219] Changed name of script file --- .../Snowflake/{snowflakeconnector_code.cs => script.cs} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename custom-connectors/Snowflake/{snowflakeconnector_code.cs => script.cs} (97%) diff --git a/custom-connectors/Snowflake/snowflakeconnector_code.cs b/custom-connectors/Snowflake/script.cs similarity index 97% rename from custom-connectors/Snowflake/snowflakeconnector_code.cs rename to custom-connectors/Snowflake/script.cs index be7ea2b7e1..fe77f7cce0 100644 --- a/custom-connectors/Snowflake/snowflakeconnector_code.cs +++ b/custom-connectors/Snowflake/script.cs @@ -135,4 +135,4 @@ private async Task ParseandProcessString() return response; } -} \ No newline at end of file +} From 541f3731f73d7d3fc5e28356dca043edd9cddea8 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Fri, 19 Nov 2021 16:34:25 +0000 Subject: [PATCH 139/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 37 +++++++++++++++++++-------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index ff9d48fd07..0de14e25ee 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -1,13 +1,28 @@ This is an experimental connector for Snowflake based on the new Snowflake REST API. It is based on OAUTH with Azure AD but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. This more convenient to use in power automate. -Prerequisite for the installation of the connector is the proper configuration of the Snowflake for OAUTH with an external Azure AD service provider. This configuration process should have produced the following parameters: -- Client id -- Secret -- Resource URL - -Installation: -1. Open apiDefinition.swagger.json, replace @@xxx.snowflakecomputing.com@@, @@https://xxx.snowflakecomputing.com/oauth/token-request@@ with your own values -2. New Custom Connector => Import an Open API File, select “apiDefinition.swagger.json” -3. Select "icon.png" with the snowflake logo as a picture if you like on tab 1 -4. Enter Client id, Secret, Resource URL on tab 2 -5. Paste the content of file “snowflake_connector_code” into the textbox in step 4 (Code) and make sure that the checkboxes for “ExecuteSqlStatement” and “GetResults” are checked. +## Getting Help or Providing Feedback +If you have any issues, requests for functionality, or have general feedback, please fill out this [form](aka.ms/snowflakeconnector) and we will get back to you. + +## Pre-requisites +Set up Azure AD authentication for Snowflake by following the steps [here](https://docs.snowflake.com/en/user-guide/oauth-azure.html). + +Steps 1, 3, and 4 are setup configuration required on the Snowflake server. +Step 2 is required for the connector. The values from this step will be used when setting up the connector. + +## Using the Connector +1. To use this connector, go to Power Automate and click **Data** on the left navigation page. Then, click **Custom connectors**. +2. Wait for the page to load. Then, click **+New custom connector**. +3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. +4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. +5. Click **Create connector**. +6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: +- Client ID: OAUTH_CLIENT_ID +- Client Secret: OAUTH_CLIENT_SECRET +- Resource URI: Application ID URI +7. + +## Supported Operations +The connector supports the following operations: +- Submit SQL Statement for Execution +- Check the Status and Get Results +- Cancel the Execution of a Statement From a707aeaf89dd739837742f35618472d3dea77fc0 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 15:45:32 +0000 Subject: [PATCH 140/219] Fixing the host url --- custom-connectors/Snowflake/apiDefinition.swagger.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json index d0825928b5..25413d99eb 100644 --- a/custom-connectors/Snowflake/apiDefinition.swagger.json +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -5,7 +5,7 @@ "description": "Snowflake connector based on Snowflake REST API (private preview)", "version": "1.0" }, - "host": "@@xxx.snowflakecomputing.com@@", + "host": "snowflakecomputing.com", "basePath": "/api/statements", "schemes": [ "https" @@ -627,4 +627,4 @@ } ], "tags": [] -} \ No newline at end of file +} From 9c15214f4aa8a815e8f855a03fe5b6325de4e796 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 16:06:51 +0000 Subject: [PATCH 141/219] Draft #2 of the Snowflake connector --- custom-connectors/Snowflake/readme.md | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 0de14e25ee..5af305269f 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -1,5 +1,11 @@ This is an experimental connector for Snowflake based on the new Snowflake REST API. It is based on OAUTH with Azure AD but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. This more convenient to use in power automate. +## Supported Operations +The connector supports the following operations: +- Submit SQL Statement for Execution +- Check the Status and Get Results +- Cancel the Execution of a Statement + ## Getting Help or Providing Feedback If you have any issues, requests for functionality, or have general feedback, please fill out this [form](aka.ms/snowflakeconnector) and we will get back to you. @@ -14,15 +20,16 @@ Step 2 is required for the connector. The values from this step will be used whe 2. Wait for the page to load. Then, click **+New custom connector**. 3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. 4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. -5. Click **Create connector**. -6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: +5. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI -7. +6. Go to **Step 3: Definition** and click "Create Connector." +7. In GitHub, open up the files within the Snwoflake folder and find the one titled "script.cs." Open the file and copy the contents of the file. +8. Go to **Step 4: Code (Preview)**, click the "Code Disabled" toggle so that it turns to "Code Enabled," and paste in the contents of "script.cs." +9. Click "Update connector" on the top right of the menu. +10. + +## Sample Flow + -## Supported Operations -The connector supports the following operations: -- Submit SQL Statement for Execution -- Check the Status and Get Results -- Cancel the Execution of a Statement From 9479bbae7750ef66809a556adb8c8035ee25afc6 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 17:40:30 +0000 Subject: [PATCH 142/219] Changed name from script.cs to script.csx --- custom-connectors/Snowflake/{script.cs => script.csx} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename custom-connectors/Snowflake/{script.cs => script.csx} (100%) diff --git a/custom-connectors/Snowflake/script.cs b/custom-connectors/Snowflake/script.csx similarity index 100% rename from custom-connectors/Snowflake/script.cs rename to custom-connectors/Snowflake/script.csx From 1f71fb7198c8eea178b74301bc2fa86e02514e96 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 17:43:07 +0000 Subject: [PATCH 143/219] Removed script work --- custom-connectors/Snowflake/readme.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 5af305269f..262b91203a 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -25,10 +25,7 @@ Step 2 is required for the connector. The values from this step will be used whe - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI 6. Go to **Step 3: Definition** and click "Create Connector." -7. In GitHub, open up the files within the Snwoflake folder and find the one titled "script.cs." Open the file and copy the contents of the file. -8. Go to **Step 4: Code (Preview)**, click the "Code Disabled" toggle so that it turns to "Code Enabled," and paste in the contents of "script.cs." -9. Click "Update connector" on the top right of the menu. -10. +7. ## Sample Flow From 471c88f46ab227f62ba5d15f0128438d006a8f89 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:38:55 +0000 Subject: [PATCH 144/219] Removed line 388 which was a duplicate of items --- custom-connectors/Snowflake/apiDefinition.swagger.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json index 25413d99eb..1e522c6bce 100644 --- a/custom-connectors/Snowflake/apiDefinition.swagger.json +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -385,12 +385,10 @@ "data": { "type": "array", "items": { - "items": { "type": "object", "additionalProperties": true }, "description": "data" - } }, "sqlState": { "type": "string", From 9db6b159f4a43a80516395ac50b47d52c8dc0b42 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:39:43 +0000 Subject: [PATCH 145/219] Added your instance to the host URL --- custom-connectors/Snowflake/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json index 1e522c6bce..071b6397c2 100644 --- a/custom-connectors/Snowflake/apiDefinition.swagger.json +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -5,7 +5,7 @@ "description": "Snowflake connector based on Snowflake REST API (private preview)", "version": "1.0" }, - "host": "snowflakecomputing.com", + "host": "YOURINSTANCE.snowflakecomputing.com", "basePath": "/api/statements", "schemes": [ "https" From 9705c61bcd66c830aa0f499f41b0370b901e44d5 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:41:08 +0000 Subject: [PATCH 146/219] Update apiDefinition.swagger.json --- custom-connectors/Snowflake/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json index 071b6397c2..9dd028d10e 100644 --- a/custom-connectors/Snowflake/apiDefinition.swagger.json +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -5,7 +5,7 @@ "description": "Snowflake connector based on Snowflake REST API (private preview)", "version": "1.0" }, - "host": "YOURINSTANCE.snowflakecomputing.com", + "host": "YourInstance.snowflakecomputing.com", "basePath": "/api/statements", "schemes": [ "https" From a6df720e3bdf3f0433f84f84ab8576069a3c0067 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:42:54 +0000 Subject: [PATCH 147/219] Added instruction to modify the YourInstance in the swagger file --- custom-connectors/Snowflake/readme.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 262b91203a..0fb59c9b90 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -20,12 +20,13 @@ Step 2 is required for the connector. The values from this step will be used whe 2. Wait for the page to load. Then, click **+New custom connector**. 3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. 4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. -5. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: +5. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. +6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI -6. Go to **Step 3: Definition** and click "Create Connector." -7. +7. Go to **Step 3: Definition** and click "Create Connector." +8. ## Sample Flow From 42c15accb3e5e542a8d97073c7073ed3d30ae03a Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:50:29 +0000 Subject: [PATCH 148/219] Added a placeholder for Resource URI --- custom-connectors/Snowflake/apiProperties.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-connectors/Snowflake/apiProperties.json b/custom-connectors/Snowflake/apiProperties.json index 609844cfc6..1f2d3ab1c9 100644 --- a/custom-connectors/Snowflake/apiProperties.json +++ b/custom-connectors/Snowflake/apiProperties.json @@ -22,7 +22,7 @@ "value": "common" }, "resourceUri": { - "value": "@@id@@" + "value": "https://YourApplicationIDURI" }, "enableOnbehalfOfLogin": { "value": "false" @@ -48,4 +48,4 @@ "policyTemplateInstances": [], "publisher": "Koch, Rene" } -} \ No newline at end of file +} From f6298d3432894e4852d624010ba99a494f4ab74d Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:52:32 +0000 Subject: [PATCH 149/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 0fb59c9b90..1fdf05951d 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -25,8 +25,9 @@ Step 2 is required for the connector. The values from this step will be used whe - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI -7. Go to **Step 3: Definition** and click "Create Connector." -8. +7. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." +8. Now, you can go to test your connector in **Step 5: Test**, if you'd like. +9. Begin using your custom connector in your environment to build apps and flows! ## Sample Flow From 2f33cb163ee5484bce3879a7accfe575dd01a28e Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 29 Nov 2021 11:36:53 -0500 Subject: [PATCH 150/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 1fdf05951d..b039a1ec84 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -1,4 +1,4 @@ -This is an experimental connector for Snowflake based on the new Snowflake REST API. It is based on OAUTH with Azure AD but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. This more convenient to use in power automate. +This is the private preview version of the Snowflake connector based on the new Snowflake REST API. It is based on OAUTH with Azure AD but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. ## Supported Operations The connector supports the following operations: From 46c4c2231a89d72245136ed55584fe98a177c047 Mon Sep 17 00:00:00 2001 From: dox42diegoschleis <75990384+dox42diegoschleis@users.noreply.github.com> Date: Mon, 29 Nov 2021 22:54:06 +0100 Subject: [PATCH 151/219] Revert to previous commit (Attempt #2) (#1285) * Add dox42 Custom Connector to certified-connectors folder * Change description of the dox42 Connectorf Make slight adjustment in the README.md * Change Host URL to more generic URL * Make some parameters mandatory to prevent potential errors Co-authored-by: Diego Schleis From b23581dfd8bfe11158644017d535f042fb5e1238 Mon Sep 17 00:00:00 2001 From: Yannick Reekmans Date: Mon, 29 Nov 2021 22:57:24 +0100 Subject: [PATCH 152/219] Bug fixes: (#1282) - added missing properties reassignEnabled & actionUrlExpirationPeriodInDays to two methods - fixed return property type from boolean to integer for pageNumber - fixed return schema for DownloadPackage - added missing method DownloadDocumentFromPackage --- .../Connective eSignatures/Readme.md | 1 + .../apiDefinition.swagger.json | 62 ++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/certified-connectors/Connective eSignatures/Readme.md b/certified-connectors/Connective eSignatures/Readme.md index 8376e09e24..63331778d0 100644 --- a/certified-connectors/Connective eSignatures/Readme.md +++ b/certified-connectors/Connective eSignatures/Readme.md @@ -32,6 +32,7 @@ The available actions can be grouped into different groups | | [Get Package List](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/Packagelist.html) | | Miscellaneous actions | [Skip Signers](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SkipSigners.html) | | | [Download Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/DownloadPackage.html) | +| | [Download Document from Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/DownloadDocumentfromPackage.html) | | | [Package Expiry Extension](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/PackageExpiryExtension.html) | | | [Send Package Reminder](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | | | [Delete Package](https://documentation-archive.connective.eu/en-us/eSignatures5.5/api/SendPackageReminders.html) | diff --git a/certified-connectors/Connective eSignatures/apiDefinition.swagger.json b/certified-connectors/Connective eSignatures/apiDefinition.swagger.json index 344a4f081a..270cbf3231 100644 --- a/certified-connectors/Connective eSignatures/apiDefinition.swagger.json +++ b/certified-connectors/Connective eSignatures/apiDefinition.swagger.json @@ -631,6 +631,14 @@ "type": "boolean", "description": "This parameter determines whether packages can be downloaded from the WYSIWYS before signing" }, + "ReassignEnabled": { + "type": "boolean", + "description": "This parameter determines whether packages can be reassigned from the WYSIWYS to another approver/signer." + }, + "ActionUrlExpirationPeriodInDays": { + "type": "integer", + "description": "This parameter determines after how many days the action URLs must expire when they are not used." + }, "ExpiryTimestamp": { "type": "string", "description": "Reference given by the calling application. This parameter will not be used by the eSignatures Portal" @@ -908,6 +916,14 @@ "type": "boolean", "description": "This parameter determines whether packages can be downloaded from the WYSIWYS before signing." }, + "ReassignEnabled": { + "type": "boolean", + "description": "This parameter determines whether packages can be reassigned from the WYSIWYS to another approver/signer." + }, + "ActionUrlExpirationPeriodInDays": { + "type": "integer", + "description": "This parameter determines after how many days the action URLs must expire when they are not used." + }, "ExpiryTimestamp": { "type": "string", "description": "The date and time when this package expires and can no longer be signed." @@ -1081,7 +1097,7 @@ "description": "Detected or specified label" }, "PageNumber": { - "type": "boolean", + "type": "integer", "description": "The page on which the location was found." } } @@ -1342,7 +1358,8 @@ "200": { "description": "The package gets downloaded successfully.", "schema": { - "type": "string" + "type": "string", + "format": "binary" } }, "404": { @@ -1355,6 +1372,47 @@ "x-ms-visibility": "advanced" } }, + "/packages/{id}/download/{documentId}": { + "get": { + "summary": "Download Document from Package", + "description": "The signed documents in a package can be downloaded one by one by an external system using this call. Each document will be downloaded as a PDF, or as an XML file stream, depending on the value of the DocumentType parameter.", + "operationId": "DownloadDocumentFromPackage", + "parameters": [ + { + "name": "id", + "in": "path", + "type": "string", + "required": true, + "description": "Unique id for the signing package", + "x-ms-summary": "Unique id for the signing package" + }, + { + "name": "documentId", + "in": "path", + "type": "string", + "required": true, + "description": "Unique id of the document contained in the package", + "x-ms-summary": "Unique id of the document contained in the package" + } + ], + "responses": { + "200": { + "description": "The document gets downloaded successfully.", + "schema": { + "type": "string", + "format": "binary" + } + }, + "404": { + "description": "The document cannot be found or is not part of the specified package." + }, + "409": { + "description": "The package hasn't been fully signed." + } + }, + "x-ms-visibility": "advanced" + } + }, "/packages/{id}/expirytimestamp": { "put": { "summary": "Expiry Time Stamp", From 6779e14ed7620f2aeae0ccb4135ef8fbfc67e4fe Mon Sep 17 00:00:00 2001 From: rescojj <92038751+janjanusik@users.noreply.github.com> Date: Tue, 30 Nov 2021 00:31:20 +0100 Subject: [PATCH 153/219] Add Generate Report (#1277) --- .../RescoCloud/apiDefinition.swagger.json | 95 ++++++++++++++++++- .../RescoCloud/apiProperties.json | 3 +- 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/certified-connectors/RescoCloud/apiDefinition.swagger.json b/certified-connectors/RescoCloud/apiDefinition.swagger.json index d75f0b3918..43250dadee 100644 --- a/certified-connectors/RescoCloud/apiDefinition.swagger.json +++ b/certified-connectors/RescoCloud/apiDefinition.swagger.json @@ -399,7 +399,7 @@ }, "/q/": { "get": { - "summary": "List Questionnaires", + "summary": "Questionnaires List", "description": "Get list of questionnaires", "operationId": "Schema-Questionnaires", "x-ms-visibility": "internal", @@ -452,7 +452,7 @@ }, "/q/$schema/{questionnaire}": { "get": { - "summary": "Questionnaire Schema", + "summary": "Questionnaire schema", "description": "Get questionnaire schema", "operationId": "Schema-Questionnaire", "x-ms-visibility": "internal", @@ -482,7 +482,7 @@ }, "/q/{questionnaire}": { "get": { - "summary": "List of Questionnaire Records", + "summary": "List questionnaires", "description": "Get list of questionnaire records", "operationId": "Record-List-Questionnaire", "parameters": [ @@ -557,7 +557,7 @@ }, "/q/{questionnaire}({id})": { "get": { - "summary": "Get of Questionnaire Record", + "summary": "Get questionnaire", "description": "Get of questionaire record by ID", "operationId": "Record-Get-Questionnaire", "produces": [ @@ -593,6 +593,60 @@ } } }, + "/{entity}('{id}')/RescoCrm.GenerateReport(format='{extension}',id={report})": { + "get": { + "summary": "Generate report", + "description": "Generate report", + "operationId": "GenerateReport", + "produces": [ + "application/octet-stream" + ], + "parameters": [ + { + "$ref": "#/parameters/Parameter.Entity" + }, + { + "$ref": "#/parameters/Record.Id" + }, + { + "$ref": "#/parameters/Parameter.Report" + }, + { + "$ref": "#/parameters/List.Extension" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "format": "binary", + "title": "Report content", + "type": "string", + "x-ms-summary": "Report content" + }, + "headers": { + "x-resco-filename":{ + "type": "string", + "description": "The name of the report file", + "x-ms-summary": "File name" + }, + "Content-Disposition": { + "type": "string", + "description": "Content Disposition." + }, + "Content-Type": { + "description": "The mime type of the exported report.", + "x-ms-summary": "Content Type", + "type": "string" + } + } + }, + "500": { + "$ref": "#/responses/error" + } + } + } + }, "/$hook": { "x-ms-notification-content": { "schema": { @@ -815,6 +869,24 @@ "value-title": "title" } }, + "Parameter.Report": { + "name": "report", + "in": "path", + "required": true, + "type": "string", + "description": "Name of the report", + "x-ms-summary": "Report Name", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "Record-List", + "value-path": "id", + "value-collection": "value", + "value-title": "name", + "parameters": { + "entity": "resco_mobilereport" + } + } + }, "Definition.Entity": { "in": "query", "name": "$entitySet", @@ -951,6 +1023,21 @@ "Update", "Delete" ] + }, + "List.Extension": { + "name": "extension", + "in": "path", + "required": true, + "type": "string", + "description": "Format of file", + "x-ms-summary": "Format", + "x-ms-url-encoding": "single", + "enum": [ + "pdf", + "html", + "word", + "excel" + ] } }, "responses": { diff --git a/certified-connectors/RescoCloud/apiProperties.json b/certified-connectors/RescoCloud/apiProperties.json index 257b88e5b1..64e431780b 100644 --- a/certified-connectors/RescoCloud/apiProperties.json +++ b/certified-connectors/RescoCloud/apiProperties.json @@ -251,7 +251,8 @@ "Record-Update", "User-Get", "TriggerCreate", - "TriggerDelete" + "TriggerDelete", + "GenerateReport" ], "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('server')/odata/v4/@connectionParameters('organization')/" } From 9a98dc91e2a3e09a5ea55b77f17286f7c35c1221 Mon Sep 17 00:00:00 2001 From: WorkSpan-Engineering <66989254+WorkSpan-Engineering@users.noreply.github.com> Date: Tue, 30 Nov 2021 05:23:45 +0530 Subject: [PATCH 154/219] WorkSpan connector new actions to support report API (#1271) * WorkSpan connector new trigger and actions New Action: Update External Id New Action: Get External Id New Actions: New Bulkload Action for ALL objects (leads/ accounts) New Action: Get Status New Action: Object Audit New Trigger: Submit to Partner Center Usability Enhancements: Enabled selection of integration by dynamically fetching list of integrations. No need to add integration_id * Update apiDefinition.swagger.json * Update apiProperties.json * Update apiProperties.json * Removed extra space * ReportFilter enum change Co-authored-by: Milind --- .../WorkSpan/apiDefinition.swagger.json | 377 +++++++++++++++++- .../WorkSpan/apiProperties.json | 24 +- 2 files changed, 374 insertions(+), 27 deletions(-) diff --git a/certified-connectors/WorkSpan/apiDefinition.swagger.json b/certified-connectors/WorkSpan/apiDefinition.swagger.json index 521a11de6c..bc3ec5c4d3 100644 --- a/certified-connectors/WorkSpan/apiDefinition.swagger.json +++ b/certified-connectors/WorkSpan/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "WorkSpan", "description": "WorkSpan is a collaborative platform to plan, execute, and drive revenue with partners. Manage your partner programs and partner initiatives on WorkSpan, and connect seamlessly with internal and partner applications. You can integrate your CRM, Partner Center, Collaboration tools and Productivity tools to WorkSpan.", - "version": "1.1.0", + "version": "1.2.0", "contact": { "name": "WorkSpan API Support", "url": "https://support.workspan.com", @@ -32,9 +32,9 @@ "securityDefinitions": { "workspan_auth": { "type": "oauth2", + "flow": "accessCode", "authorizationUrl": "https://api.workspan.com/oauth/authorize", "tokenUrl": "https://api.workspan.com/oauth/token", - "flow": "accessCode", "scopes": {} } }, @@ -293,14 +293,14 @@ } ], "responses": { + "200": { + "description": "successful operation" + }, "400": { "description": "Invalid ID supplied" }, "404": { "description": "subscriber not found" - }, - "200": { - "description": "successful operation" } }, "x-ms-visibility": "internal" @@ -354,6 +354,12 @@ } }, "/event/v1/subscriber/object_integration_event": { + "x-ms-notification-content": { + "schema": { + "$ref": "#/definitions/wsobject_event_payload" + }, + "description": "Schema of object event" + }, "post": { "operationId": "SubscribeObjectEvent", "x-ms-trigger": "single", @@ -401,7 +407,8 @@ "object.update", "object.delete", "object.stage_change", - "object.partner_center_referral_submit" + "object.partner_center_referral_submit", + "report.submit" ] } }, @@ -462,15 +469,15 @@ "description": "Error when subscribing to event" } } - }, + } + }, + "/event/v1/subscriber/submit_to_partner_center": { "x-ms-notification-content": { "schema": { "$ref": "#/definitions/wsobject_event_payload" }, "description": "Schema of object event" - } - }, - "/event/v1/subscriber/submit_to_partner_center": { + }, "post": { "operationId": "SubmitToPartnerCenterObjectEvent", "x-ms-trigger": "single", @@ -558,12 +565,6 @@ "description": "Error when subscribing to event" } } - }, - "x-ms-notification-content": { - "schema": { - "$ref": "#/definitions/wsobject_event_payload" - }, - "description": "Schema of object event" } }, "/event/v1/metadata/integration/{integration_id}": { @@ -1118,6 +1119,119 @@ "application/json" ] } + }, + "/report/v1/list": { + "post": { + "operationId": "GetReportList", + "summary": "Get list of reports", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "page": { + "type": "object", + "properties": { + "number": { + "type": "integer", + "format": "int32", + "description": "number" + }, + "size": { + "type": "integer", + "format": "int32", + "description": "size" + } + }, + "description": "page" + } + } + } + } + ], + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "List Report Success", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id" + }, + "name": { + "type": "string", + "description": "name" + } + } + } + }, + "400": { + "description": "API Error" + }, + "404": { + "description": "report not defined" + } + }, + "description": "List reports", + "x-ms-visibility": "important" + } + }, + "/report/v1/{reportId}/data": { + "post": { + "operationId": "GetReportData", + "summary": "Read report data", + "description": "Read report data", + "parameters": [ + { + "in": "path", + "name": "reportId", + "required": true, + "format": "int64", + "type": "integer", + "x-ms-url-encoding": "single", + "description": "Report Id", + "x-ms-summary": "Report Id" + }, + { + "name": "request_body", + "in": "body", + "schema": { + "$ref": "#/definitions/ReportDataRequest" + }, + "description": "Request body for report read request" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Read Report Success", + "schema": { + "$ref": "#/definitions/ReportDataResponse" + } + }, + "400": { + "description": "API Error" + }, + "404": { + "description": "report not defined" + } + } + } } }, "definitions": { @@ -1521,6 +1635,235 @@ "field_name": "partner_center.integration_status", "status_code": "LINKED" } + }, + "ReportListRequest": { + "properties": { + "page": { + "$ref": "#/definitions/ReportPageDto" + } + }, + "type": "object" + }, + "PageDto": { + "properties": { + "number": { + "format": "int64", + "minimum": 0, + "type": "integer", + "default": 0 + }, + "size": { + "format": "int64", + "maximum": 10000, + "minimum": 1, + "type": "integer", + "default": 500 + } + }, + "required": [ + "number", + "size" + ], + "type": "object" + }, + "ReportListResponse": { + "properties": { + "endOfList": { + "type": "boolean" + }, + "results": { + "items": { + "$ref": "#/definitions/ReportBaseDto" + }, + "type": "array" + } + }, + "type": "object" + }, + "PersonBaseDto": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "ReportBaseDto": { + "properties": { + "createdAt": { + "format": "date-time", + "type": "string" + }, + "createdBy": { + "$ref": "#/definitions/PersonBaseDto" + }, + "description": { + "type": "string" + }, + "id": { + "format": "int64", + "type": "integer" + }, + "modifiedAt": { + "format": "date-time", + "type": "string" + }, + "modifiedBy": { + "$ref": "#/definitions/PersonBaseDto" + }, + "name": { + "type": "string" + }, + "reportStatus": { + "enum": [ + "DRAFT", + "PUBLISHED" + ], + "type": "string" + } + }, + "required": [ + "id", + "name" + ], + "type": "object" + }, + "ReportPageDto": { + "properties": { + "number": { + "format": "int64", + "minimum": 0, + "type": "integer", + "default": 0 + }, + "size": { + "format": "int64", + "maximum": 10000, + "minimum": 1, + "type": "integer", + "default": 500 + } + }, + "required": [ + "number", + "size" + ], + "type": "object" + }, + "ReportDataRequest": { + "properties": { + "filters": { + "$ref": "#/definitions/ReportFilterContainer" + }, + "page": { + "$ref": "#/definitions/ReportPageDto" + } + }, + "type": "object" + }, + "ReportDataResponse": { + "properties": { + "endOfList": { + "type": "boolean" + }, + "results": { + "items": { + "additionalProperties": true + }, + "type": "array" + }, + "version": { + "format": "int64", + "type": "integer" + } + }, + "type": "object" + }, + "ReportFieldFilter": { + "properties": { + "colId": { + "type": "string" + }, + "filter": { + "$ref": "#/definitions/ReportFilter" + }, + "type": { + "enum": [ + "TEXT", + "TEXT_REPEATED", + "TEXT_PG_ARRAY", + "BOOLEAN", + "NUMBER", + "DECIMAL", + "DATE", + "DATE_OFFSET", + "DATE_TIME", + "DATE_TIME_OFFSET", + "CURRENCY" + ], + "type": "string" + } + }, + "type": "object" + }, + "ReportFilter": { + "properties": { + "negate": { + "type": "boolean", + "title": "", + "enum": [ + true, + false + ] + }, + "op": { + "enum": [ + "EQUAL_TO", + "IS_EMPTY", + "CONTAIN", + "START_WITH", + "END_WITH", + "IN", + "GREATER_THAN", + "LESS_THAN", + "GREATER_THAN_OR_EQUAL_TO", + "LESS_THAN_OR_EQUAL_TO", + "BETWEEN", + "OFFSET" + ], + "type": "string" + } + }, + "type": "object" + }, + "ReportFilterContainer": { + "properties": { + "fieldFilters": { + "items": { + "$ref": "#/definitions/ReportFieldFilter" + }, + "type": "array" + }, + "op": { + "enum": [ + "AND", + "OR" + ], + "type": "string" + } + }, + "type": "object" + } + }, + "security": [ + { + "oauth2_auth": [] } - } + ] } diff --git a/certified-connectors/WorkSpan/apiProperties.json b/certified-connectors/WorkSpan/apiProperties.json index 1178712512..5cbbaec792 100644 --- a/certified-connectors/WorkSpan/apiProperties.json +++ b/certified-connectors/WorkSpan/apiProperties.json @@ -132,50 +132,54 @@ "templateId": "routerequesttoendpoint", "title": "Route subscribe request", "parameters": { + "x-ms-apimTemplateParameter.newPath": "/event/v1/subscriber", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ "SubscribeObjectEvent" - ], - "x-ms-apimTemplateParameter.newPath": "/event/v1/subscriber" + ] } }, { "templateId": "routerequesttoendpoint", "title": "Route Submit to Partner Center event subscriber to common subscribe endpoint", "parameters": { + "x-ms-apimTemplateParameter.newPath": "/event/v1/subscriber", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ "SubmitToPartnerCenterObjectEvent" - ], - "x-ms-apimTemplateParameter.newPath": "/event/v1/subscriber" + ] } }, { "templateId": "routerequesttoendpoint", "title": "Route bulkload_opportunity request for fileupload", "parameters": { + "x-ms-apimTemplateParameter.newPath": "/bulk/v1/bulkload_opportunity", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ "BulkloadOpportunityFileAttachment" - ], - "x-ms-apimTemplateParameter.newPath": "/bulk/v1/bulkload_opportunity" + ] } }, { "templateId": "routerequesttoendpoint", "title": "Route bulkload_data in attachment request for fileupload", "parameters": { + "x-ms-apimTemplateParameter.newPath": "/bulk/v1/bulkload", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", "x-ms-apimTemplate-operationName": [ "BulkloadDataFileAttachment" - ], - "x-ms-apimTemplateParameter.newPath": "/bulk/v1/bulkload" + ] } }, { "templateId": "setheader", "title": "Set env header to redirect to sandbox host", "parameters": { - "x-ms-apimTemplate-policySection": "Request", "x-ms-apimTemplateParameter.name": "x-ws-env", "x-ms-apimTemplateParameter.value": "@connectionParameters('token:HostName','')", - "x-ms-apimTemplateParameter.existsAction": "override" + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" } }, { From ee0425c186281c1ac600e7aaa779525138898086 Mon Sep 17 00:00:00 2001 From: Niklas Gromann Date: Tue, 30 Nov 2021 00:56:00 +0100 Subject: [PATCH 155/219] Jedox OData Hub Connector (#1249) * Added the Jedox OData Hub Connector * Updated description and version * Fixed minor issues with the apiDefinition and readme - Removed unused basic_auth properties - Removed linebreaks from the description - Added missing sections to the readme * Removed x-components from apiDefinition.swagger.json * Removed error responses from apiDefinition.swagger.json --- .../apiDefinition.swagger.json | 3100 +++++++++++++++++ .../Jedox OData Hub/apiProperties.json | 56 + .../Jedox OData Hub/readme.md | 52 + 3 files changed, 3208 insertions(+) create mode 100644 certified-connectors/Jedox OData Hub/apiDefinition.swagger.json create mode 100644 certified-connectors/Jedox OData Hub/apiProperties.json create mode 100644 certified-connectors/Jedox OData Hub/readme.md diff --git a/certified-connectors/Jedox OData Hub/apiDefinition.swagger.json b/certified-connectors/Jedox OData Hub/apiDefinition.swagger.json new file mode 100644 index 0000000000..b7835f8e5c --- /dev/null +++ b/certified-connectors/Jedox OData Hub/apiDefinition.swagger.json @@ -0,0 +1,3100 @@ +{ + "swagger": "2.0", + "info": { + "contact": { + "email": "support@jedox.com", + "name": "Jedox Support", + "url": "https://support.jedox.com/" + }, + "description": "Connect to your Jedox OData Hub. Fetch data from the Olap server, stream data from the Integrator server or execute loads and jobs.", + "title": "Jedox OData Hub", + "version": "21.4.0" + }, + "host": "cloud.jedox.com", + "basePath": "/", + "schemes": [ + "https" + ], + "paths": { + "/Databases": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/DatabaseArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Databases" + ], + "description": "Get a list of databases found in the server. System and config databases are excluded from the list, but can be requested by providing the ID.", + "operationId": "Databases", + "summary": "Get databases" + } + }, + "/Databases({DatabaseId})": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "no error", + "schema": { + "$ref": "#/definitions/Database" + } + } + }, + "tags": [ + "Databases" + ], + "description": "Get the database with the given ID.", + "operationId": "DatabaseById", + "summary": "Get database by id" + } + }, + "/Databases({DatabaseId})/Cubes": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/CubeArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Cubes" + ], + "description": "Get a list of cubes in the given database. To prevent issues with the URL encodings, Attribute cubes will be renamed, e.g. \\#_Years to ATT_Years.", + "operationId": "Cubes", + "summary": "Get cubes" + } + }, + "/Databases({DatabaseId})/Cubes({CubeId})": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the cube", + "in": "path", + "name": "CubeId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Cubes", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Cube Id", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/Cube" + } + } + }, + "tags": [ + "Cubes" + ], + "description": "Get the cube with the given ID in the given database. To prevent issues with the URL encodings, Attribute cubes will be renamed, e.g. \\#_Years to ATT_Years.", + "operationId": "CubeById", + "summary": "Get cube by ID" + } + }, + "/Databases({DatabaseId})/Cubes({CubeId})/Cells": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the cube", + "in": "path", + "name": "CubeId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Cubes", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Cube Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).\n> Currently the /Cells functions only support basic operations. Complex formulas might return an invalid result. For complex filtering, please use Views.\n", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + }, + { + "default": true, + "description": "If set to true, the result will only contain base elements. If set to false, it will also contain consolidated elements.", + "in": "query", + "name": "baseonly", + "required": false, + "type": "boolean", + "x-ms-summary": "Base Elements Only", + "x-ms-visibility": "advanced" + }, + { + "default": false, + "description": "If set to true, rules will be applied to the resulting cells.", + "in": "query", + "name": "userules", + "required": false, + "type": "boolean", + "x-ms-summary": "Use Rules", + "x-ms-visibility": "advanced" + }, + { + "default": true, + "description": "If set to true, numeric cells with a value of 0 and empty string cells will be removed from the result.", + "in": "query", + "name": "zerosupression", + "required": false, + "type": "boolean", + "x-ms-summary": "Supress Zeros", + "x-ms-visibility": "advanced" + }, + { + "default": false, + "description": "If set to true, the service will return the entire result instead of a single page. With this option set to true, the response might take multiple minutes depending on the cube's size.", + "in": "query", + "name": "disablepaging", + "required": false, + "type": "boolean", + "x-ms-summary": "Disable Paging", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/CellArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Cells" + ], + "description": "Get the cells from a cube. This returns the cells' values and element names. If the cell has a string value, the value is instead stored in the stringValue field. Element names are stored in dynamic properties.", + "operationId": "CubeCells", + "summary": "Get cube cells" + } + }, + "/Databases({DatabaseId})/Dimensions": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/DimensionArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Dimensions" + ], + "description": "Get a list of dimensions in the given database.", + "operationId": "Dimensions", + "summary": "Get dimensions" + } + }, + "/Databases({DatabaseId})/Dimensions({DimensionId})": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the dimension", + "in": "path", + "name": "DimensionId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Dimensions", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Dimension Id", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/Dimension" + } + } + }, + "tags": [ + "Dimensions" + ], + "description": "Get the dimension with the given ID in the given database.", + "operationId": "DimensionById", + "summary": "Get dimension by ID" + } + }, + "/Databases({DatabaseId})/Dimensions({DimensionId})/Elements": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the dimension", + "in": "path", + "name": "DimensionId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Dimensions", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Dimension Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/ElementArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Elements" + ], + "description": "Get a list of elements in the given dimension.", + "operationId": "Elements", + "summary": "Get elements" + } + }, + "/Databases({DatabaseId})/Dimensions({DimensionId})/Elements({ElementId})": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the dimension", + "in": "path", + "name": "DimensionId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Dimensions", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Dimension Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Numeric ID of the element", + "in": "path", + "name": "ElementId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + }, + "DimensionId": { + "parameter": "DimensionId" + } + }, + "operationId": "Elements", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Element Id", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/Element" + } + } + }, + "tags": [ + "Elements" + ], + "description": "Returns the element with the given ID in the given dimension.", + "operationId": "ElementById", + "summary": "Get element by ID" + } + }, + "/Databases({DatabaseId})/Views": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/ViewArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Views" + ], + "description": "Get a list of stored views in the given database.", + "operationId": "Views", + "summary": "Get stored views" + } + }, + "/Databases({DatabaseId})/Views({ViewId})": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "UUID of the view", + "format": "uuid", + "in": "path", + "name": "ViewId", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Views", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "View Id", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/View" + } + } + }, + "tags": [ + "Views" + ], + "description": "Get the view with the given ID in the given database.", + "operationId": "ViewById", + "summary": "Get stored view by ID" + } + }, + "/Databases({DatabaseId})/Views({ViewId})/Cells": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Numeric ID of the database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "Databases", + "value-collection": "value", + "value-path": "Id", + "value-title": "Name" + }, + "x-ms-summary": "Database Id", + "x-ms-url-encoding": "single" + }, + { + "description": "UUID of the view", + "format": "uuid", + "in": "path", + "name": "ViewId", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "Views", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "View Id", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).\n> Currently the /Cells functions only support basic operations. Complex formulas might return an invalid result.\n", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + }, + { + "default": false, + "description": "If set to true, the result will only contain base elements. If set to false, it will also contain consolidated elements.", + "in": "query", + "name": "baseonly", + "required": false, + "type": "boolean", + "x-ms-summary": "Base Elements Only", + "x-ms-visibility": "advanced" + }, + { + "default": false, + "description": "If set to true, rules will be applied to the resulting cells.", + "in": "query", + "name": "userules", + "required": false, + "type": "boolean", + "x-ms-summary": "Use Rules", + "x-ms-visibility": "advanced" + }, + { + "default": true, + "description": "If set to true, numeric cells with a value of 0 and empty string cells will be removed from the result.", + "in": "query", + "name": "zerosupression", + "required": false, + "type": "boolean", + "x-ms-summary": "Supress Zeros", + "x-ms-visibility": "advanced" + }, + { + "default": false, + "description": "If set to true, the service will return the entire result instead of a single page. With this option set to true, the response might take multiple minutes depending on the view's size.", + "in": "query", + "name": "disablepaging", + "required": false, + "type": "boolean", + "x-ms-summary": "Disable Paging", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/ViewCellArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Cells" + ], + "description": "Get all cells from a view. This returns the cells' values and element names. If the cell has a string value, the value is instead stored in the stringValue field. Element names are stored in dynamic properties.", + "operationId": "ViewCells", + "summary": "Get stored view cells" + } + }, + "/Integrator": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorProjectGroupArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "IntegratorProjectGroups" + ], + "description": "Get a list of integrator project groups found in the server.", + "operationId": "IntegratorProjectGroups", + "summary": "Get Integrator project groups" + } + }, + "/Integrator('{GroupIdentifier}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "no error", + "schema": { + "$ref": "#/definitions/IntegratorProjectGroup" + } + } + }, + "tags": [ + "IntegratorProjectGroups" + ], + "description": "Get the project group with the given ID.", + "operationId": "IntegratorProjectsById", + "summary": "Get Integrator project group by identifier" + } + }, + "/Integrator('{GroupIdentifier}')/Projects": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorProjectArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "IntegratorProjects" + ], + "description": "Get a list of integrator projects found in the server.", + "operationId": "IntegratorProjects", + "summary": "Get Integrator projects" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "no error", + "schema": { + "$ref": "#/definitions/IntegratorProject" + } + } + }, + "tags": [ + "IntegratorProjects" + ], + "description": "Get the integrator project with the given name.", + "operationId": "IntegratorProjectsByName", + "summary": "Get Integrator project by name" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Extracts": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorComponentArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Extracts" + ], + "description": "Get a list of extracts in the given integrator project.", + "operationId": "Extracts", + "summary": "Get extracts" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Extracts('{ExtractName}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the extract", + "in": "path", + "name": "ExtractName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Extracts", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Extract Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorComponent" + } + } + }, + "tags": [ + "Extracts" + ], + "description": "Get the extract with the given name in the given integrator project.", + "operationId": "ExtractByName", + "summary": "Get extract by Name" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Extracts('{ExtractName}')/Rows": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the extract", + "in": "path", + "name": "ExtractName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Extracts", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Extract Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorExtractComponentRowArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Extracts" + ], + "description": "Stream the rows of the extract with the given name in the given integrator project.", + "operationId": "ExtractRows", + "summary": "Get extract rows" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Jobs": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorComponentArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Jobs" + ], + "description": "Get a list of jobs in the given integrator project.", + "operationId": "Jobs", + "summary": "Get jobs" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Jobs('{JobName}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the job", + "in": "path", + "name": "JobName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Jobs", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Job Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorComponent" + } + } + }, + "tags": [ + "Jobs" + ], + "description": "Get the jobs with the given name in the given integrator project.", + "operationId": "JobByName", + "summary": "Get job by name" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Jobs('{JobName}')/Run": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the job", + "in": "path", + "name": "JobName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Jobs", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Job Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorRunResult" + } + } + }, + "tags": [ + "Jobs" + ], + "description": "Run the job with the given name in the given integrator project. The execution will be added to the queue.", + "operationId": "RunJob", + "summary": "Run job" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Jobs('{JobName}')/Run(Variables='{Variables}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the job", + "in": "path", + "name": "JobName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Jobs", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Job Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Variable names and values seperated by an equal sign. If a variable is omitted, the default value will be used. Multiple variables must be seperated by commas. Example: Variables='SourceDB=Demo,TargetDB=Biker'\n", + "in": "path", + "name": "Variables", + "required": true, + "type": "string", + "x-ms-summary": "Variables", + "x-ms-url-encoding": "double" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorRunResult" + } + } + }, + "tags": [ + "Jobs" + ], + "description": "Run the job with the given name in the given integrator project. The execution will be added to the queue.", + "operationId": "RunJobWithVariables", + "summary": "Run job with variables" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Loads": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorComponentArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Loads" + ], + "description": "Get a list of loads in the given integrator project.", + "operationId": "Loads", + "summary": "Get loads" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Loads('{LoadName}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the load", + "in": "path", + "name": "LoadName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Loads", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Load Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorComponent" + } + } + }, + "tags": [ + "Loads" + ], + "description": "Get the transform with the given name in the given integrator project.", + "operationId": "LoadByName", + "summary": "Get load by name" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Loads('{LoadName}')/Run()": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the load", + "in": "path", + "name": "LoadName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Loads", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Load Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorRunResult" + } + } + }, + "tags": [ + "Loads" + ], + "description": "Run the load with the given name in the given integrator project. The execution will be added to the queue.", + "operationId": "RunLoad", + "summary": "Run load" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Loads('{LoadName}')/Run(Variables='{Variables}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the load", + "in": "path", + "name": "LoadName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Loads", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Load Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Variable names and values seperated by an equal sign. If a variable is omitted, the default value will be used. Multiple variables must be seperated by commas. Example: Variables='SourceDB=Demo,TargetDB=Biker'\n", + "in": "path", + "name": "Variables", + "required": true, + "type": "string", + "x-ms-summary": "Variables", + "x-ms-url-encoding": "double" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorRunResult" + } + } + }, + "tags": [ + "Loads" + ], + "description": "Run the load with the given name in the given integrator project. The execution will be added to the queue.", + "operationId": "RunLoadWithVariables", + "summary": "Run load with variables" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Transforms": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorComponentArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Transforms" + ], + "description": "Get a list of transforms in the given integrator project.", + "operationId": "Transforms", + "summary": "Get transforms" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Transforms('{TransformName}')": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the transform", + "in": "path", + "name": "TransformName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Transforms", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Transform Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "$ref": "#/definitions/IntegratorComponent" + } + } + }, + "tags": [ + "Transforms" + ], + "description": "Get the transform with the given name in the given integrator project.", + "operationId": "TransformByName", + "summary": "Get transform by name" + } + }, + "/Integrator('{GroupIdentifier}')/Projects('{ProjectName}')/Transforms('{TransformName}')/Rows": { + "get": { + "produces": [ + "application/json; odata.metadata=minimal; odata.streaming=true" + ], + "parameters": [ + { + "default": "globalprojects", + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "operationId": "IntegratorProjectGroups", + "value-collection": "value", + "value-path": "Id", + "value-title": "FriendlyName" + }, + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the Integrator project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + } + }, + "operationId": "IntegratorProjects", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the transform", + "in": "path", + "name": "TransformName", + "required": true, + "type": "string", + "x-ms-dynamic-values": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "Transforms", + "value-collection": "value", + "value-path": "Name", + "value-title": "Name" + }, + "x-ms-summary": "Transform Name", + "x-ms-url-encoding": "single" + }, + { + "description": "Limits the number of items returned by the given number. The service returns the number of available items up to but not greater than the specified value n.", + "in": "query", + "minimum": 1, + "name": "$top", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Top Count", + "x-ms-visibility": "advanced" + }, + { + "description": "Excludes the first n items of the queried collection from the result. The service returns items starting at position n+1.", + "in": "query", + "minimum": 1, + "name": "$skip", + "required": false, + "type": "integer", + "x-example": 20, + "x-ms-summary": "Skip Count", + "x-ms-visibility": "advanced" + }, + { + "description": "The $filter system query option restricts the set of items returned. For a list of available operations and functions see the [OData Documentation](http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part1-protocol/odata-v4.0-errata03-os-part1-protocol-complete.html#_Ref356810738).", + "in": "query", + "name": "$filter", + "required": false, + "type": "string", + "x-example": "Type eq 'Normal'", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "properties": { + "value": { + "$ref": "#/definitions/IntegratorTransformComponentRowArray" + } + }, + "type": "object" + } + } + }, + "tags": [ + "Transforms" + ], + "description": "Stream the rows of the transform with the given name in the given integrator project.", + "operationId": "TransformRows", + "summary": "Get transform Rows" + } + }, + "/service/powerapps/schema/databases/{DatabaseId}/cubes/{CubeId}/cells": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "The identifier of the Olap database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-summary": "Database Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The identifier of the Olap cube", + "in": "path", + "name": "CubeId", + "required": true, + "type": "integer", + "x-ms-summary": "Cube Identifier", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "type": "object" + } + } + }, + "tags": [ + "Service" + ], + "description": "Service request for getting the schema used for the result of cube cells.", + "operationId": "GetCubeCellResultSchema", + "summary": "Get Cube Cell Result Schema", + "x-ms-visibility": "internal" + } + }, + "/service/powerapps/schema/databases/{DatabaseId}/views/{ViewId}/cells": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "The identifier of the Olap database", + "in": "path", + "name": "DatabaseId", + "required": true, + "type": "integer", + "x-ms-summary": "Database Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The identifier of the stored view", + "format": "uuid", + "in": "path", + "name": "ViewId", + "required": true, + "type": "string", + "x-ms-summary": "View Identifier", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "type": "object" + } + } + }, + "tags": [ + "Service" + ], + "description": "Service request for getting the schema used for the result of view cells.", + "operationId": "GetViewCellResultSchema", + "summary": "Get View Cell Result Schema", + "x-ms-visibility": "internal" + } + }, + "/service/powerapps/schema/integrator/{GroupIdentifier}/{ProjectName}/extracts/{ExtractName}/rows": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the extract", + "in": "path", + "name": "ExtractName", + "required": true, + "type": "string", + "x-ms-summary": "Extract Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "type": "object" + } + } + }, + "tags": [ + "Service" + ], + "description": "Service request for getting the schema used for the result of extract rows.", + "operationId": "GetExtractRowsResultSchema", + "summary": "Get Extract Rows Result Schema", + "x-ms-visibility": "internal" + } + }, + "/service/powerapps/schema/integrator/{GroupIdentifier}/{ProjectName}/transforms/{TransformName}/rows": { + "get": { + "produces": [ + "application/json" + ], + "parameters": [ + { + "description": "The identifier of the Integrator project group", + "in": "path", + "name": "GroupIdentifier", + "required": true, + "type": "string", + "x-ms-summary": "Group Identifier", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the project", + "in": "path", + "name": "ProjectName", + "required": true, + "type": "string", + "x-ms-summary": "Project Name", + "x-ms-url-encoding": "single" + }, + { + "description": "The name of the transform", + "in": "path", + "name": "TransformName", + "required": true, + "type": "string", + "x-ms-summary": "Transform Name", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "No error", + "schema": { + "type": "object" + } + } + }, + "tags": [ + "Service" + ], + "description": "Service request for getting the schema used for the result of transform rows.", + "operationId": "GetTransformRowsResultSchema", + "summary": "Get Transform Rows Result Schema", + "x-ms-visibility": "internal" + } + } + }, + "definitions": { + "Cell": { + "type": "object", + "x-ms-dynamic-schema": { + "parameters": { + "CubeId": { + "parameter": "CubeId" + }, + "DatabaseId": { + "parameter": "DatabaseId" + } + }, + "operationId": "GetCubeCellResultSchema", + "value-path": "items" + } + }, + "CellArray": { + "items": { + "$ref": "#/definitions/Cell" + }, + "type": "array" + }, + "Cube": { + "properties": { + "FilledCellCount": { + "format": "int64", + "type": "integer" + }, + "Id": { + "format": "int64", + "type": "integer" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "CubeArray": { + "items": { + "$ref": "#/definitions/Cube" + }, + "type": "array" + }, + "Database": { + "properties": { + "CubeCount": { + "format": "int64", + "type": "integer" + }, + "DimensionCount": { + "format": "int64", + "type": "integer" + }, + "Id": { + "format": "int64", + "type": "integer" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "DatabaseArray": { + "items": { + "$ref": "#/definitions/Database" + }, + "type": "array" + }, + "Dimension": { + "properties": { + "ElementCount": { + "format": "int64", + "type": "integer" + }, + "Id": { + "format": "int64", + "type": "integer" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "DimensionArray": { + "items": { + "$ref": "#/definitions/Dimension" + }, + "type": "array" + }, + "Element": { + "properties": { + "Id": { + "format": "int64", + "type": "integer" + }, + "Name": { + "type": "string" + }, + "Position": { + "format": "int64", + "type": "integer" + }, + "Type": { + "type": "string" + }, + "Weight": { + "format": "float", + "type": "number", + "x-nullable": true + } + }, + "type": "object" + }, + "ElementArray": { + "items": { + "$ref": "#/definitions/Element" + }, + "type": "array" + }, + "Error": { + "properties": { + "error": { + "type": "string" + } + }, + "type": "object" + }, + "IntegratorComponent": { + "properties": { + "Description": { + "type": "string" + }, + "ModificationDate": { + "format": "date-time", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string" + } + }, + "type": "object" + }, + "IntegratorComponentArray": { + "items": { + "$ref": "#/definitions/IntegratorComponent" + }, + "type": "array" + }, + "IntegratorExtractComponentRow": { + "type": "object", + "x-ms-dynamic-schema": { + "parameters": { + "ExtractName": { + "parameter": "ExtractName" + }, + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + } + }, + "operationId": "GetExtractRowsResultSchema", + "value-path": "items" + } + }, + "IntegratorExtractComponentRowArray": { + "items": { + "$ref": "#/definitions/IntegratorExtractComponentRow" + }, + "type": "array" + }, + "IntegratorProject": { + "properties": { + "Description": { + "type": "string" + }, + "ModificationDate": { + "format": "date-time", + "type": "string" + }, + "Name": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "IntegratorProjectArray": { + "items": { + "$ref": "#/definitions/IntegratorProject" + }, + "type": "array" + }, + "IntegratorProjectGroup": { + "properties": { + "Description": { + "type": "string" + }, + "Developer": { + "type": "string" + }, + "FriendlyName": { + "type": "string" + }, + "Id": { + "type": "string" + }, + "Name": { + "type": "string" + }, + "Namespace": { + "type": "string" + }, + "Version": { + "type": "string" + } + }, + "type": "object" + }, + "IntegratorProjectGroupArray": { + "items": { + "$ref": "#/definitions/IntegratorProjectGroup" + }, + "type": "array" + }, + "IntegratorRunResult": { + "properties": { + "errors": { + "type": "integer" + }, + "executionType": { + "type": "string" + }, + "id": { + "type": "integer" + }, + "startDate": { + "format": "date-time", + "type": "string" + }, + "status": { + "type": "string" + }, + "traceAvailable": { + "type": "boolean" + }, + "warnings": { + "type": "integer" + } + }, + "type": "object" + }, + "IntegratorTransformComponentRow": { + "type": "object", + "x-ms-dynamic-schema": { + "parameters": { + "GroupIdentifier": { + "parameter": "GroupIdentifier" + }, + "ProjectName": { + "parameter": "ProjectName" + }, + "TransformName": { + "parameter": "TransformName" + } + }, + "operationId": "GetTransformRowsResultSchema", + "value-path": "items" + } + }, + "IntegratorTransformComponentRowArray": { + "items": { + "$ref": "#/definitions/IntegratorTransformComponentRow" + }, + "type": "array" + }, + "View": { + "properties": { + "CreationDate": { + "format": "date-time", + "type": "string" + }, + "CubeId": { + "format": "int64", + "type": "integer" + }, + "CubeName": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "FriendlyName": { + "type": "string" + }, + "Global": { + "type": "boolean" + }, + "Id": { + "format": "uuid", + "type": "string" + }, + "UserName": { + "type": "string", + "x-nullable": true + } + }, + "type": "object" + }, + "ViewArray": { + "items": { + "$ref": "#/definitions/View" + }, + "type": "array" + }, + "ViewCell": { + "type": "object", + "x-ms-dynamic-schema": { + "parameters": { + "DatabaseId": { + "parameter": "DatabaseId" + }, + "ViewId": { + "parameter": "ViewId" + } + }, + "operationId": "GetViewCellResultSchema", + "value-path": "items" + } + }, + "ViewCellArray": { + "items": { + "$ref": "#/definitions/ViewCell" + }, + "type": "array" + } + }, + "securityDefinitions": { + "basic_auth": { + "description": "To perform the requests below you need to provide your Jedox login credentials using Basic Authentication. Example using Curl (do not forget to replace the placeholders with the curly brackets): \n\n``` bash\ncurl --user {name}:{password} https://odata.{InstanceId}.cloud.jedox.com/Databases \n```\n\nIf there are no credentials given or the given credentials are incorrect, the server will respond with the status code `401 (Unauthorized)`\n", + "type": "basic" + } + }, + "tags": [ + { + "name": "Databases" + }, + { + "name": "Cubes" + }, + { + "name": "Views" + }, + { + "name": "Dimensions" + }, + { + "name": "Elements" + }, + { + "name": "Cells" + }, + { + "name": "IntegratorProjectGroups" + }, + { + "name": "IntegratorProjects" + }, + { + "name": "Extracts" + }, + { + "name": "Transforms" + }, + { + "name": "Loads" + }, + { + "name": "Jobs" + } + ], + "x-ms-capabilities": { + "testConnection": { + "operationId": "Databases" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://jedox.com" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.jedox.com/en/trust/data-protection-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Business Intelligence;Data" + } + ] +} diff --git a/certified-connectors/Jedox OData Hub/apiProperties.json b/certified-connectors/Jedox OData Hub/apiProperties.json new file mode 100644 index 0000000000..780386a450 --- /dev/null +++ b/certified-connectors/Jedox OData Hub/apiProperties.json @@ -0,0 +1,56 @@ +{ + "properties": { + "connectionParameters": { + "instanceUrl": { + "type": "string", + "uiDefinition": { + "constraints": { + "tabIndex": 1, + "clearText": true, + "required": "true" + }, + "description": "Provide the URL of the OData Hub instance.", + "displayName": "OData Hub URL", + "tooltip": "Instance Id of your cloud instance. For example \"https://odata.live-mycompany.cloud.jedox.com\"." + } + }, + "username": { + "type": "securestring", + "uiDefinition": { + "displayName": "Username", + "description": "Username for your cloud instance", + "constraints": { + "tabIndex": 2, + "clearText": true, + "required": "true" + } + } + }, + "password": { + "type": "securestring", + "uiDefinition": { + "displayName": "Password", + "description": "Password for your cloud instance", + "constraints": { + "tabIndex": 3, + "clearText": false, + "required": "true" + } + } + } + }, + "policyTemplateInstances": [ + { + "parameters": { + "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('instanceUrl')" + }, + "templateId": "dynamicHostUrl", + "title": "Set host from connection parameter" + } + ], + "iconBrandColor": "#E8EAEF", + "capabilities": [], + "publisher": "Jedox", + "stackOwner": "Jedox" + } +} \ No newline at end of file diff --git a/certified-connectors/Jedox OData Hub/readme.md b/certified-connectors/Jedox OData Hub/readme.md new file mode 100644 index 0000000000..8fb333778d --- /dev/null +++ b/certified-connectors/Jedox OData Hub/readme.md @@ -0,0 +1,52 @@ + +## Jedox OData Hub Connector +The Jedox OData Hub exposes functionality from different Jedox components into a powerful REST Api using the OData V4 standard. + +## Publisher: Jedox GmbH + +## Prerequisites +You will need the following to proceed: +* An active Jedox Instance +* A license including usage of the Jedox OData Hub + +## Supported Operations +The connector supports the following operations: +* `Get databases`: Get a list of databases found in the server. System and config databases are excluded from the list, but can be requested by providing the ID. +* `Get database by id`: Get the database with the given ID. +* `Get cubes`: Get a list of cubes in the given database. To prevent issues with the URL encodings, Attribute cubes will be renamed, e.g. \#_Years to ATT_Years. +* `Get cube by ID`: Get the cube with the given ID in the given database. To prevent issues with the URL encodings, Attribute cubes will be renamed, e.g. \#_Years to ATT_Years. +* `Get cube cells`: Get the cells from a cube. This returns the cells' values and element names. If the cell has a string value, the value is instead stored in the stringValue field. Element names are stored in dynamic properties. +* `Get dimensions`: Get a list of dimensions in the given database. +* `Get dimension by ID`: Get the dimension with the given ID in the given database. +* `Get elements`: Get a list of elements in the given dimension. +* `Get element by ID`: Returns the element with the given ID in the given dimension. +* `Get stored views`: Get a list of stored views in the given database. +* `Get stored view by ID`: Get the view with the given ID in the given database. +* `Get stored view cells`: Get all cells from a view. This returns the cells' values and element names. If the cell has a string value, the value is instead stored in the stringValue field. Element names are stored in dynamic properties. +* `Get Integrator project groups`: Get a list of integrator project groups found in the server. +* `Get Integrator project group by identifier`: Get the project group with the given ID. +* `Get Integrator projects`: Get a list of integrator projects found in the server. +* `Get Integrator project by name`: Get the integrator project with the given name. +* `Get extracts`: Get a list of extracts in the given integrator project. +* `Get extract by Name`: Get the extract with the given name in the given integrator project. +* `Get extract rows`: Stream the rows of the extract with the given name in the given integrator project. +* `Get jobs`: Get a list of jobs in the given integrator project. +* `Get job by name`: Get the jobs with the given name in the given integrator project. +* `Run job`: Run the job with the given name in the given integrator project. The execution will be added to the queue. +* `Run job with variables`: Run the job with the given name in the given integrator project. The execution will be added to the queue. +* `Get loads`: Get a list of loads in the given integrator project. +* `Get load by name`: Get the transform with the given name in the given integrator project. +* `Run load`: Run the load with the given name in the given integrator project. The execution will be added to the queue. +* `Run load with variables`: Run the load with the given name in the given integrator project. The execution will be added to the queue. +* `Get transforms`: Get a list of transforms in the given integrator project. +* `Get transform by name`: Get the transform with the given name in the given integrator project. +* `Get transform Rows`: Stream the rows of the transform with the given name in the given integrator project. + +## Obtaining Credentials +This connector uses basic authentication. To sign in use your credentials of the corresponding Jedox instance. SAML users are currently not supported. + +## Known Issues and Limitations +- SAML users are currently not supported. + +## More Information +You can find more information in [our Knowledgebase](https://knowledgebase.jedox.com/integration/odata-hub/odata-powerplatform.htm). \ No newline at end of file From da2703aa345d3d77f797d34524438d6084a887b8 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 30 Nov 2021 10:51:04 -0500 Subject: [PATCH 156/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index b039a1ec84..b5e4bb8753 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -20,7 +20,7 @@ Step 2 is required for the connector. The values from this step will be used whe 2. Wait for the page to load. Then, click **+New custom connector**. 3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. 4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. -5. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. +5. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). 6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET From 954cde051e15812d71c0022eb4631295c8fb0d3e Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 30 Nov 2021 10:52:23 -0500 Subject: [PATCH 157/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index b5e4bb8753..4421ac9cd2 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -21,13 +21,14 @@ Step 2 is required for the connector. The values from this step will be used whe 3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. 4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. 5. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). -6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, fill in the following fields from the values in Pre-requisities: +6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, in the OAuth 2.0 section, choose **Azure Active Directory** from the **Identity Provider** dropdown. +7. Fill in the following fields from the values in Pre-requisities: - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI -7. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." -8. Now, you can go to test your connector in **Step 5: Test**, if you'd like. -9. Begin using your custom connector in your environment to build apps and flows! +8. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." +9. Now, you can go to test your connector in **Step 5: Test**, if you'd like. +10. Begin using your custom connector in your environment to build apps and flows! ## Sample Flow From 3b07b9b983d7b76af0adcba412d37fccf593c932 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 30 Nov 2021 11:01:09 -0500 Subject: [PATCH 158/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 4421ac9cd2..f5e4cdb917 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -1,4 +1,4 @@ -This is the private preview version of the Snowflake connector based on the new Snowflake REST API. It is based on OAUTH with Azure AD but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. +This is the private preview version of the Snowflake connector based on the [Snowflake SQL REST API](https://docs.snowflake.com/en/developer-guide/sql-api/index.html). It is based on OAUTH with Azure AD, but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. ## Supported Operations The connector supports the following operations: From 033d7e725d44959a46c8eb5b10945286d12a2a0b Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 30 Nov 2021 11:07:56 -0500 Subject: [PATCH 159/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index f5e4cdb917..15db6b6a45 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -7,7 +7,7 @@ The connector supports the following operations: - Cancel the Execution of a Statement ## Getting Help or Providing Feedback -If you have any issues, requests for functionality, or have general feedback, please fill out this [form](aka.ms/snowflakeconnector) and we will get back to you. +If you have any issues, requests for functionality, or have general feedback, please fill out this [form](http://aka.ms/snowflakeconnector) and we will get back to you. ## Pre-requisites Set up Azure AD authentication for Snowflake by following the steps [here](https://docs.snowflake.com/en/user-guide/oauth-azure.html). From 68df5f5e2193a8a3ad505cfa72ebd43a25573c3f Mon Sep 17 00:00:00 2001 From: Srihari Padmanabhan <90345666+sriharip-docusign@users.noreply.github.com> Date: Tue, 30 Nov 2021 11:34:51 -0800 Subject: [PATCH 160/219] Auto generate document id in the script (#1288) * FLOW-44 feature to create a net new envelope (while still supporting create envelope using template) * New action to add documents to envelope * add schema to parse add documents response as dynamic fields * backport the script changes made in prod connector to demo connector * update input param names for add document action * remove unused advanced params from add recipient action * add document operation: auto gen document id * remove base64 encoding until the errors are fixed * remove merge tags --- .../DocuSignDemo/apiDefinition.swagger.json | 74 ++++--------------- certified-connectors/DocuSignDemo/script.csx | 18 +++++ 2 files changed, 32 insertions(+), 60 deletions(-) diff --git a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json index 41e2747c0e..9cb9b601dd 100644 --- a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json +++ b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json @@ -605,16 +605,6 @@ "x-ms-test-value": "test@email.com", "x-ms-visibility": "important", "type": "string" - }, - { - "name": "newRecipient", - "in": "body", - "description": "New recipient", - "required": true, - "schema": { - "$ref": "#/definitions/AddRecipientToEnvelopeRequest" - }, - "x-ms-summary": "Data for a recipient" } ], "responses": { @@ -1049,30 +1039,35 @@ "type": "array", "items": { "type": "object", + "required": [ + "documentBase64", + "fileExtension", + "name" + ], "properties": { "documentBase64": { "type": "string", - "description": "documentBase64" - }, - "documentId": { - "type": "string", - "description": "documentId" + "x-ms-summary": "Base64 *", + "description": "Base64 of document content" }, "fileExtension": { "type": "string", - "description": "fileExtension" + "x-ms-summary": "type *", + "description": "pdf, docx etc." }, "name": { "type": "string", - "description": "name" + "x-ms-summary": "name *", + "description": "document name" }, "order": { "type": "string", - "description": "order" + "x-ms-summary": "order", + "description": "1" } } }, - "description": "documents" + "x-ms-summary": "document" } } } @@ -1389,47 +1384,6 @@ "value-path": "Schema/Items" } }, - "AddRecipientToEnvelopeRequest": { - "type": "object", - "properties": { - "signers": { - "type": "array", - "items": { - "$ref": "#/definitions/SignerRequest" - }, - "x-ms-summary": "Signer", - "x-ms-visibility": "advanced" - } - }, - "x-ms-test-value": { - "signers": [ - { - "name": "test name", - "email": "clconn@microsoft.com", - "routingOrder": "1", - "roleName": "manager", - "recipientId": "insert recipientId" - } - ] - } - }, - "SignerRequest": { - "type": "object", - "properties": { - "routingOrder": { - "description": "The signing order of the recipient in the document.", - "type": "string", - "x-ms-summary": "Signing Order", - "x-ms-visibility": "important" - }, - "roleName": { - "description": "The role of the signer.", - "type": "string", - "x-ms-summary": "Role", - "x-ms-visibility": "important" - } - } - }, "OnEnvelopeStatusChangesResponse": { "type": "object", "properties": { diff --git a/certified-connectors/DocuSignDemo/script.csx b/certified-connectors/DocuSignDemo/script.csx index d9820ee7cd..24e3069918 100644 --- a/certified-connectors/DocuSignDemo/script.csx +++ b/certified-connectors/DocuSignDemo/script.csx @@ -277,6 +277,19 @@ public class Script : ScriptBase return body; } + private JObject AddDocumentsToEnvelopeBodyTransformation(JObject body) + { + var documents = body["documents"] as JArray; + + for (var i = 0; i < documents.Count; i++) + { + documents[i]["documentId"] = $"{i + 1}"; + } + + body["documents"] = documents; + return body; + } + private async Task UpdateApiEndpoint() { string content = string.Empty; @@ -368,6 +381,11 @@ public class Script : ScriptBase await this.TransformRequestJsonBody(this.AddRecipientToEnvelopeBodyTransformation).ConfigureAwait(false); } + if ("AddDocumentsToEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) + { + await this.TransformRequestJsonBody(this.AddDocumentsToEnvelopeBodyTransformation).ConfigureAwait(false); + } + if ("RemoveRecipientFromEnvelope".Equals(this.Context.OperationId, StringComparison.OrdinalIgnoreCase)) { var newBody = new JObject(); From 5c5580d12cb7ae016be126f20d0bfa70818743e7 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Thu, 2 Dec 2021 10:33:09 -0500 Subject: [PATCH 161/219] Update apiDefinition.swagger.json --- custom-connectors/Snowflake/apiDefinition.swagger.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom-connectors/Snowflake/apiDefinition.swagger.json b/custom-connectors/Snowflake/apiDefinition.swagger.json index 9dd028d10e..d711cc4aca 100644 --- a/custom-connectors/Snowflake/apiDefinition.swagger.json +++ b/custom-connectors/Snowflake/apiDefinition.swagger.json @@ -614,8 +614,8 @@ "oauth2_auth": { "type": "oauth2", "flow": "accessCode", - "authorizationUrl": "@@https://login.windows.net/common/oauth2/authorize@@", - "tokenUrl": "@@https://xxx.snowflakecomputing.com/oauth/token-request@@", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://yourinstance.snowflakecomputing.com/oauth/token-request", "scopes": {} } }, From d0ac0aeed65e3aef87eef342a6dcc86d0c6f3162 Mon Sep 17 00:00:00 2001 From: AfriSR <83464318+AfriSR@users.noreply.github.com> Date: Mon, 6 Dec 2021 21:49:13 +0100 Subject: [PATCH 162/219] Mensagia (Independent Publisher) v1.0 (#1234) * Mensagia (Independent Publisher) v1.0 * Delete Mensagia directory * Mensagia (Independent Publisher) v1.0 * Update apiDefinition.swagger.json * Changed "Clave de API" to "apiKey" By default, the Power Automate client generates the name of this key in the language of the device * Delete settings.json * Changed publisher name * Changed the contact data * Changed the publisher and added Stack Owner * Changed the iconBrandColor * More details in the Credentials section * Changed iconBrandColor to #da3b01 * Changed unicode characters * Changed apiProperties.json identation * Update apiProperties.json * Changed Identation --- .../Mensagia/Readme.md | 39 + .../Mensagia/apiDefinition.swagger.json | 2343 +++++++++++++++++ .../Mensagia/apiProperties.json | 25 + 3 files changed, 2407 insertions(+) create mode 100644 independent-publisher-connectors/Mensagia/Readme.md create mode 100644 independent-publisher-connectors/Mensagia/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Mensagia/apiProperties.json diff --git a/independent-publisher-connectors/Mensagia/Readme.md b/independent-publisher-connectors/Mensagia/Readme.md new file mode 100644 index 0000000000..7526a19576 --- /dev/null +++ b/independent-publisher-connectors/Mensagia/Readme.md @@ -0,0 +1,39 @@ +# Mensagia +Mensagia offer reliable SMS, Email and Voice for business automation communication. + +## Publisher: Sistemes Informàtics ICON, S.L. + +## Stack Owner: Sinergyne Global Communications, S.L. + +## Prerequisites +You will need the following to proceed: +* A Mensagia "API Client" account created by an user type "Manager". +* Make sure you have enough balance in your Mensagia account. + +## Obtaining Credentials +If you are a Manager user, you can create an sub-user "API Client" within the portal of your [Mensagia account](https://mensagia.com/dashboard). This step is essential to be able to obtain an API key that allows you to use this connector. [More info](https://mensagia.com/docs/tipos-de-usuarios/1039). + +## Supported Operations + +### Contacts + +#### Create a Contact +Create a contact insise your Mensagia's account. [More info](https://api.mensagia.com/docs/v1#contactos-crear-un-contacto). + +### SMS + +#### Send SMS +Send an SMS to your contacts through your Mensagia account. [More info](https://api.mensagia.com/docs/v1#envios-sms-envio-simple). + +#### Send SMS Campaigns +Send SMS Campaigns to your contacts through your Mensagia account. [More info](https://api.mensagia.com/docs/v1#envios-sms-envio-masivo-campanas). + +### Email + +#### Send Transactional Email +Send a Transactional email to your contacts using your custom templates from Mensagia. [More info](https://api.mensagia.com/docs/v1#email-envio-simple-transactional). + +### Voice + +#### Send Voice Message +Carry out Voice campaigns to telephone numbers in Spain. The recipients of the voice campaign can be: agendas, agendas and telephone numbers, or telephone numbers. [More info](https://api.mensagia.com/docs/v1#voz-campanas-de-voz). diff --git a/independent-publisher-connectors/Mensagia/apiDefinition.swagger.json b/independent-publisher-connectors/Mensagia/apiDefinition.swagger.json new file mode 100644 index 0000000000..13c3e29110 --- /dev/null +++ b/independent-publisher-connectors/Mensagia/apiDefinition.swagger.json @@ -0,0 +1,2343 @@ +{ + "swagger": "2.0", + "info":{ + "title": "Mensagia", + "description": "Mensagia offer reliable SMS, Email and Voice for business automation communication.", + "version": "1.0", + "contact":{ + "name": "Sistemas Informaticos ICON, S.L.", + "email": "asanteliz@iconsl.com", + "url": "https://www.iconsl.com/" + } + }, + "x-ms-connector-metadata":[ + { + "propertyName": "Website", + "propertyValue": "https://mensagia.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://mensagia.com/legal#privacidad" + }, + { + "propertyName": "Categories", + "propertyValue": "Communication" + } + ], + "host": "api.mensagia.com", + "basePath": "/v1", + "schemes":[ + "https" + ], + "consumes":[ + "application/json" + ], + "produces":[ + "application/json" + ], + "paths":{ + "/api_configurations":{ + "get":{ + "responses":{ + "200":{ + "description": "OK", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "name":{ + "type": "string", + "description": "Name", + "title": "Name" + }, + "sender_id":{ + "type": "integer", + "format": "int32", + "description": "Sender ID", + "title": "Sender ID" + }, + "sender_name":{ + "type": "string", + "description": "Sender Name", + "title": "Sender Name" + }, + "callback_url":{ + "type": "string", + "description": "Callback URL", + "title": "Callback URL" + }, + "allow_service_number_alias":{ + "type": "boolean", + "description": "Determines if the configuration allows alias", + "title": "Allow Service Number Alias" + }, + "created_at":{ + "type": "string", + "description": "Configuration created at", + "title": "Created At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination Link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "meta" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "operationId": "api_configurations", + "summary": "Get Configurations", + "description": "Get configurations names stored into your Mensagia's account.", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ], + "x-ms-visibility": "internal" + } + }, + "/agendas":{ + "get":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "name":{ + "type": "string", + "description": "Name", + "title": "Name" + }, + "total_users":{ + "type": "integer", + "format": "int32", + "description": "Total users", + "title": "Total Users" + }, + "busy":{ + "type": "integer", + "format": "int32", + "description": "Agenda is body", + "title": "Agenda is Busy" + }, + "created_at":{ + "type": "string", + "description": "Created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Updated at", + "title": "Updated At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "meta" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Get Agendas", + "description": "Get all agendas stored into your Mensagia's account.", + "x-ms-visibility": "internal", + "operationId": "get_agendas", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ] + } + }, + "/email/sender_address":{ + "get":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "name":{ + "type": "string", + "description": "Name", + "title": "Name" + }, + "email":{ + "type": "string", + "description": "Email", + "title": "Email" + }, + "domain_id":{ + "type": "integer", + "format": "int32", + "description": "Domain ID", + "title": "Domain ID" + }, + "created_at":{ + "type": "string", + "description": "Created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Updated at", + "title": "Updated At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "meta" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Get Sender Address", + "description": "Get a list with the emails enabled in your Mensagia account to send.", + "operationId": "get_sender_address", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "API-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ], + "x-ms-visibility": "internal" + } + }, + "/email/templates":{ + "get":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "name":{ + "type": "string", + "description": "Name", + "title": "Name" + }, + "screenshot_url":{ + "type": "string", + "description": "Streenshot URL", + "title": "Screenshot URL" + }, + "created_at":{ + "type": "string", + "description": "Created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Updated at", + "title": "Updated At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "meta" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Get Templates", + "description": "Get a list of the email templates stored into your Mensagia's account.", + "operationId": "get_email_templates", + "x-ms-visibility": "internal", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ] + } + }, + "/voice/audio_library":{ + "get":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "name":{ + "type": "string", + "description": "Name", + "title": "Name" + }, + "screenshot_url":{ + "type": "string", + "description": "Streenshot URL", + "title": "Screenshot URL" + }, + "created_at":{ + "type": "string", + "description": "Created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Updated at", + "title": "Updated At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "meta" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Get Templates", + "description": "Get a list of the audio files stored into your Mensagia's account.", + "operationId": "get_audio_library", + "x-ms-visibility": "internal", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ] + } + }, + "/voice/numbers":{ + "get":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "ID", + "title": "ID" + }, + "number":{ + "type": "string", + "description": "Number", + "title": "Number" + }, + "created_at":{ + "type": "string", + "description": "Created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Updated at", + "title": "Updated At" + } + } + }, + "description": "data" + }, + "meta":{ + "type": "object", + "properties":{ + "pagination":{ + "type": "object", + "properties":{ + "total":{ + "type": "integer", + "format": "int32", + "description": "Total", + "title": "Total" + }, + "count":{ + "type": "integer", + "format": "int32", + "description": "Count", + "title": "Count" + }, + "per_page":{ + "type": "integer", + "format": "int32", + "description": "Results per page", + "title": "Per Page" + }, + "current_page":{ + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current Page" + }, + "total_pages":{ + "type": "integer", + "format": "int32", + "description": "Total pages", + "title": "Total Pages" + }, + "links":{ + "type": "array", + "items":{ + "description": "Pagination link", + "title": "Link", + "type": "string" + }, + "description": "links" + } + }, + "description": "Pagination" + } + }, + "description": "Metadata" + } + } + } + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Get Templates", + "description": "Get a list of the allowed phone numbers stored into your Mensagia's account.", + "operationId": "get_voice_numbers", + "x-ms-visibility": "internal", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + } + ] + } + }, + "/push/simple":{ + "post":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "object", + "properties":{ + "configuration_id":{ + "type": "integer", + "format": "int32", + "description": "Sending header ID", + "title": "Configuration ID" + }, + "id":{ + "type": "integer", + "format": "int32", + "description": "Message ID", + "title": "Message ID" + }, + "name":{ + "type": "string", + "description": "Message's name", + "title": "Message Name" + }, + "message":{ + "type": "string", + "description": "Message's body", + "title": "Message body" + }, + "price":{ + "type": "number", + "format": "float", + "description": "Message's price", + "title": "Price" + }, + "price_with_packs":{ + "type": "number", + "format": "float", + "description": "Price with packs", + "title": "Price with Packs" + }, + "push_sender_name":{ + "type": "string", + "description": "Push sender name", + "title": "Sender Header" + }, + "route_name":{ + "type": "string", + "description": "Route name", + "title": "Route Name" + }, + "total_messages_sent":{ + "type": "integer", + "format": "int32", + "description": "Total messages sent", + "title": "Messages Sent" + }, + "total_messages_sent_with_packs":{ + "type": "integer", + "format": "int32", + "description": "Total messages sent with packs", + "title": "Messages Sent Packs" + }, + "dlrs":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "message_id":{ + "type": "string", + "description": "Message ID", + "title": "Message ID" + }, + "number":{ + "type": "string", + "description": "Receptor's number", + "title": "To Number" + }, + "messages_sent":{ + "type": "integer", + "format": "int32", + "description": "Total messages to number", + "title": "Messages Sent" + }, + "in_SMS_blacklist":{ + "type": "boolean", + "description": "Determines if the contact is in the SMS Blacklist", + "title": "Is in SMS Blacklist" + } + } + }, + "description": "dlrs" + }, + "callback_url":{ + "type": "string", + "description": "Callback URL", + "title": "Callback URL" + }, + "start_date":{ + "type": "string", + "description": "Start Date", + "title": "Start Date" + } + }, + "description": "data" + } + } + } + }, + "400":{ + "description": "Validation Fail" + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Send SMS", + "description": "Send SMS's to your contacts through your Mensagia account.", + "operationId": "send_sms", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "API-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required":true, + "schema":{ + "type": "object", + "properties":{ + "configuration_name":{ + "type": "string", + "description": "Select the name that will appear in the header of your SMS.", + "title": "Configuration Name", + "x-ms-dynamic-values":{ + "operationId": "api_configurations", + "value-path": "name", + "value-collection": "data", + "value-title": "sender_name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + }, + "x-ms-visibility": "important" + }, + "message":{ + "type": "string", + "description": "Text to be sent (no more than 160 characters).", + "title": "Message", + "x-ms-visibility": "important" + }, + "numbers":{ + "type": "string", + "description": "The mobile number of the recipient of this message. IMPORTANT: The number must have the corresponding country prefix.", + "title": "Numbers", + "x-ms-visibility": "important" + }, + "start_date":{ + "type": "string", + "description": "Sending date in the format 'YYYY-MM-DD hh:mm'. If you don't specify this parameter, the message will be sent immediately.", + "title": "Start Date", + "x-ms-visibility": "advanced" + }, + "url_parameters":{ + "type": "string", + "description": "Link tagging if there is a shortened link, Landing or Form in the message.", + "title": "URL Paremeters", + "x-ms-visibility": "advanced" + }, + "url_extrafields_mode":{ + "type": "string", + "description": "If you include shortened links or landings in your shipments, you can choose what value the custom fields will show when the recipient views the content.", + "title": "URL Extrafields Mode", + "x-ms-visibility": "advanced" + } + }, + "required":[ + "configuration_name", + "message", + "numbers" + ] + } + } + ] + } + }, + "/push/campaigns":{ + "post":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "object", + "properties":{ + "configuration_id":{ + "type": "integer", + "format": "int32", + "description": "Sending header ID", + "title": "Configuration ID" + }, + "id":{ + "type": "integer", + "format": "int32", + "description": "Message ID", + "title": "Message ID" + }, + "name":{ + "type": "string", + "description": "Message's name", + "title": "Message Name" + }, + "message":{ + "type": "string", + "description": "Message's body", + "title": "Message body" + }, + "price":{ + "type": "number", + "format": "float", + "description": "Message's price", + "title": "Price" + }, + "price_with_packs":{ + "type": "number", + "format": "float", + "description": "Price with packs", + "title": "Price with Packs" + }, + "push_sender_name":{ + "type": "string", + "description": "Push sender name", + "title": "Sender Header" + }, + "route_name":{ + "type": "string", + "description": "Route name", + "title": "Route Name" + }, + "total_messages_sent":{ + "type": "integer", + "format": "int32", + "description": "Total messages sent", + "title": "Messages Sent" + }, + "total_messages_sent_with_packs":{ + "type": "integer", + "format": "int32", + "description": "Total messages sent with packs", + "title": "Messages Sent Packs" + }, + "dlrs":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "message_id":{ + "type": "string", + "description": "Message ID", + "title": "Message ID" + }, + "number":{ + "type": "string", + "description": "Receptor's number", + "title": "To Number" + }, + "messages_sent":{ + "type": "integer", + "format": "int32", + "description": "Total messages to number", + "title": "Messages Sent" + }, + "in_SMS_blacklist":{ + "type": "boolean", + "description": "Determines if the contact is in the SMS Blacklist", + "title": "Is in SMS Blacklist" + } + } + }, + "description": "dlrs" + }, + "callback_url":{ + "type": "string", + "description": "Callback URL", + "title": "Callback URL" + }, + "start_date":{ + "type": "string", + "description": "Start Date", + "title": "Start Date" + } + }, + "description": "data" + } + } + } + }, + "400":{ + "description": "Validation Fail" + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Send SMS Campaigns", + "description": "Send SMS Campaigns to your contacts through your Mensagia account.", + "operationId": "send_sms_campaigns", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "API-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required":true, + "schema":{ + "type": "object", + "properties":{ + "configuration_name":{ + "type": "string", + "description": "Select the name that will appear in the header of your SMS.", + "title": "Configuration Name", + "x-ms-dynamic-values":{ + "operationId": "api_configurations", + "value-path": "name", + "value-collection": "data", + "value-title": "sender_name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + }, + "x-ms-visibility": "important" + }, + "message":{ + "type": "string", + "description": "Text to be sent (no more than 160 characters).", + "title": "Message", + "x-ms-visibility": "important" + }, + "name":{ + "type": "string", + "description": "The name of your campaign", + "title": "Campaign's name", + "x-ms-visibility": "important" + }, + "available_groups":{ + "type": "string", + "description": "Assign the group to which the campaign will be directed.", + "title": "Available Group", + "x-ms-dynamic-values":{ + "operationId": "get_agendas", + "value-path": "id", + "value-collection": "data", + "value-title": "name" + } + }, + "start_date":{ + "type": "string", + "description": "Sending date in the format 'YYYY-MM-DD hh:mm'. If you don't specify this parameter, the message will be sent immediately.", + "title": "Start Date", + "format": "date-time", + "x-ms-visibility": "advanced" + }, + "smsxblock":{ + "type": "integer", + "format": "int32", + "description": "Number of recipients per block. Mandatory in the presence of 'Minutes Per Block'. If the two parameters are sent, the campaign configuration is defined as 'custom configuration' and the value of the parameters 'Days' and 'Time Intervals' will be considered.", + "title": "Calls per Block" + }, + "minutesxblock":{ + "type": "integer", + "format": "int32", + "description": "Every few minutes the block of recipients chosen in 'Calls Per Block' will be sent. Mandatory in the presence of 'Calls Per Block'. If the two parameters are sent, the campaign configuration is defined as 'custom configuration' and the value of the parameters 'Days' and 'Time Intervals' will be considered.", + "title": "Minutes per Block" + }, + "days":{ + "type": "string", + "description": "A list of days of the week separated by commas and without spaces on which calls can be made. (1,2,3,4,5,6,7)", + "title": "Days" + }, + "time_intervals":{ + "type": "string", + "description": "A list of time intervals separated by commas and without spaces, in which the call can be sent. It will only be taken into account if 'Minutes Per Block' and 'Calls Per Block' are sent.(hh:mm-hh:mm,hh:mm-hh:mm...)", + "title": "Time Intervals" + }, + "url_parameters":{ + "type": "string", + "description": "Link tagging if there is a shortened link, Landing or Form in the message.", + "title": "URL Paremeters", + "x-ms-visibility": "advanced" + }, + "url_extrafields_mode":{ + "type": "string", + "description": "If you include shortened links or landings in your shipments, you can choose what value the custom fields will show when the recipient views the content.", + "title": "URL Extrafields Mode", + "x-ms-visibility": "advanced" + } + }, + "required":[ + "configuration_name", + "message", + "available_groups" + ] + } + } + ] + } + }, + "/email/simple":{ + "post":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "object", + "properties":{ + "app_configuration_id":{ + "type": "integer", + "format": "int32", + "description": "App Configuration ID", + "title": "App Configuration ID" + }, + "start_date":{ + "type": "string", + "description": "Start Date", + "title": "Start Date" + }, + "domain_id":{ + "type": "integer", + "format": "int32", + "description": "ID of the registered Domain from which the mail is sent.", + "title": "Domain ID" + }, + "sender_address_id":{ + "type": "integer", + "format": "int32", + "description": "Sender Address ID", + "title": "Sender Address ID" + }, + "from":{ + "type": "string", + "description": "Sender of the message.", + "title": "From" + }, + "from_name":{ + "type": "string", + "description": "Name of the person sending the message.", + "title": "Sender Name" + }, + "to":{ + "type": "object", + "properties":{ + "valids":{ + "type": "array", + "items":{ + "type": "string", + "description": "Valid Addresses", + "title": "Valid Addresses" + }, + "description": "Valids Emails,", + "title": "Valids Emails" + }, + "discardeds":{ + "type": "array", + "items":{ + "type": "string", + "description": "Discarted address", + "title": "Discarted address" + }, + "description": "Discarted Emails,", + "title": "Discarted Emails" + }, + "blacklisteds":{ + "type": "array", + "items":{ + "description": "Blacklisted", + "title": "Blacklisted", + "type": "string" + }, + "description": "Blacklisted,", + "title": "Blacklisted Emails" + } + }, + "description": "Details of the recipients of the message.", + "title": "To" + }, + "subject":{ + "type": "string", + "description": "Subject of your email.", + "title": "Subject" + }, + "attachments":{ + "type": "array", + "items":{ + "type": "string", + "description": "Attachment URL", + "title": "Attachment URL" + }, + "description": "attachments" + } + }, + "description": "data" + } + } + } + }, + "400":{ + "description": "Validation Fail" + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Send Transactional Email", + "description": "Send a Transactional email to your contacts using your custom templates from Mensagia.", + "operationId": "send_transactional_email", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Api-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required":true, + "schema":{ + "type": "object", + "properties":{ + "from":{ + "type": "string", + "description": "An email address that will act as the sender. It must be a sending address created on the platform, or a sending address with a domain validated and authenticated on the platform.", + "title": "From", + "x-ms-dynamic-values":{ + "operationId": "get_sender_address", + "value-path": "email", + "value-collection": "data", + "value-title": "name", + "parameters":{ + "Accept": "application/json", + "API-source": "Power-Automate" + } + } + }, + "from_name":{ + "type": "string", + "description": "Send this field if you want to use a different sender name than the one stored in a sending address on the platform if you will use one that is already created.", + "title": "From Name" + }, + "to":{ + "type": "string", + "description": "The email address to which the shipment is made.", + "title": "To" + }, + "subject":{ + "type": "string", + "description": "The subject to send.", + "title": "Subject" + }, + "html":{ + "type": "string", + "description": "The HTML to send. Required without Template parameter.", + "title": "HTML" + }, + "template_id":{ + "type": "integer", + "description": "You can use an email template configured in your Mensagia account to obtain the HTML for sending. If this parameter is sent, the HTML parameter will be ignored.", + "title": "Template", + "format": "int64", + "x-ms-dynamic-values":{ + "operationId": "get_email_templates", + "value-path": "id", + "value-collection": "data", + "value-title": "name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + } + }, + "start_date":{ + "type": "string", + "description": "Shipment date in the format 'YYYY-MM-DD hh:mm'. If you do not send this parameter, the sending will be made immediately.", + "title": "Send At" + }, + "url_parameters":{ + "type": "string", + "description": "Tagging of links in the content of the email.", + "title": "URL Parameters" + }, + "attachments":{ + "type": "string", + "description": "A comma separated list of URLs with the files to attach. You can attach up to 5M in files.", + "title": "Attachments" + } + }, + "required":[ + "from", + "to", + "subject" + ] + } + } + ] + } + }, + "/voice/messages":{ + "post":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "object", + "properties":{ + "configuration_id":{ + "type": "integer", + "format": "int32", + "description": "Sender's header name", + "title": "Sender name" + }, + "id":{ + "type": "integer", + "format": "int32", + "description": "Voice campaign ID", + "title": "Voice Campaign ID" + }, + "name":{ + "type": "string", + "description": "Voice's campaign name", + "title": "Voice Campaign Name" + }, + "active":{ + "type": "integer", + "format": "int32", + "description": "Determines if the campaign is currently active", + "title": "Is Campaign Active" + }, + "state_id":{ + "type": "integer", + "format": "int32", + "description": "Determines the sending status identification", + "title": "State ID" + }, + "state_name":{ + "type": "string", + "description": "Status name", + "title": "Status" + }, + "message":{ + "type": "string", + "description": "Body of the message sent", + "title": "Voice Message" + }, + "start_date":{ + "type": "string", + "description": "Scheduled date for sending", + "title": "Start Date" + }, + "vm_validated_phone_id":{ + "type": "integer", + "format": "int32", + "description": "Validated phone ID to send the Campaign", + "title": "Validated Phone ID" + }, + "vm_validated_phone_number":{ + "type": "string", + "description": "Validated phone number", + "title": "Validated Phone Number" + }, + "groups":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "Group ID", + "title": "Agenda ID" + }, + "name":{ + "type": "string", + "description": "Agenda Name", + "title": "Agenda Name" + } + } + }, + "description": "Agendas to which the campaign is directed.", + "title": "Agendas" + }, + "numbers":{ + "type": "string", + "description": "Numbers to which the campaign is directed.", + "title": "Numbers" + }, + "vm_timeout":{ + "type": "integer", + "format": "int32", + "description": "Call's timeout", + "title": "Timeout" + }, + "max_retries":{ + "type": "integer", + "format": "int32", + "description": "Maximum number of call's retries", + "title": "Max Retries" + }, + "min_retry_minutes":{ + "type": "integer", + "format": "int32", + "description": "Minimum minutes interval to wait until the next try.", + "title": "Minimum Retries Minutes" + }, + "max_retry_minutes":{ + "type": "integer", + "format": "int32", + "description": "Maximum minutes interval to wait until the next try.", + "title": "Max Retries Minutes" + }, + "response_codes":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "code":{ + "type": "string", + "description": "Code's name", + "title": "Code" + }, + "action":{ + "type": "string", + "description": "Code's action", + "title": "Action" + }, + "transfer_to":{ + "type": "string", + "description": "Specifies the number to which the call will be redirected if necessary.", + "title": "Transfer To" + }, + "vm_validated_phone_id":{ + "type": "string", + "description": "Validated phone ID", + "title": "Validated Phone ID" + } + } + }, + "description": "Response codes assigned to the call.", + "title": "Response Codes" + }, + "response_codes_timeout":{ + "type": "string", + "description": "Response Codes Timeout", + "title": "Response Codes Timeout" + }, + "callback_url":{ + "type": "string", + "description": "Callback url", + "title": "Callback URL" + }, + "type":{ + "type": "string", + "description": "Call's Type", + "title": "Type" + }, + "callsxblock":{ + "type": "integer", + "format": "int32", + "description": "Calls per Block", + "title": "Calls per Block" + }, + "minutesxblock":{ + "type": "integer", + "format": "int32", + "description": "Minutes per Block", + "title": "Minutes per Block" + }, + "days_allowed":{ + "type": "array", + "items":{ + "type": "string", + "description": "Days allowed to send the voice campaign", + "title": "Days Allowed" + }, + "description": "Days allowed to send the voice campaign,", + "title": "Days Allowed" + }, + "time_intervals_allowed":{ + "type": "array", + "items":{ + "type": "string", + "description": "Time Interval Item", + "title": "Time Interval Item" + }, + "description": "Time intervals allowed to send the voice campaign,", + "title": "Time Intervals Allowed" + }, + "ring_timeout":{ + "type": "integer", + "format": "int32", + "description": "Maximum time in which the call ring will sound until the attempt is completed.", + "title": "Voice Ring Timeout" + } + }, + "description": "data" + } + } + } + }, + "400":{ + "description": "Validation Fail" + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Send Voice Message", + "description": "This method allows you to carry out Voice campaigns to telephone numbers in Spain. The recipients of the voice campaign can be: agendas, agendas and telephone numbers, or telephone numbers.", + "operationId": "send_voice_message", + "x-ms-visibility": "advanced", + "parameters":[ + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "API-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required":true, + "schema":{ + "type": "object", + "properties":{ + "name":{ + "type": "string", + "description": "The name for the new voice campaign.", + "title": "Name" + }, + "vm_validated_phone_id":{ + "type": "integer", + "description": "The phone that will be used in this voice campaign.", + "title": "Validated Phone", + "format": "int32", + "x-ms-dynamic-values":{ + "operationId": "get_voice_numbers", + "value-path": "id", + "value-collection": "data", + "value-title": "number", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + } + }, + "type_locution":{ + "type": "object", + "properties":{ + "type":{ + "type": "string", + "title": "Type Locution", + "enum":[ + "text2speech", + "file" + ], + "description": "The type of voiceover that will be used in this voice campaign." + } + }, + "required":[ + "type" + ] + }, + "message":{ + "type": "string", + "description": "The text to be synthesized to reproduce in the call. Mandatory field if text2speech is the type of speech chosen.", + "title": "Message" + }, + "message_language":{ + "type": "string", + "description": "The code of the language with which you want to synthesize the text that will be reproduced in the call. Mandatory field if text2speech is the type of speech chosen.", + "title": "Message Language", + "enum":[ + "en", + "en-gb", + "en-au", + "en-in", + "en-gb-wls", + "es", + "ca", + "zh-cn", + "zh-tw", + "da", + "nl", + "fr", + "de", + "it", + "ja", + "ko", + "no", + "pl", + "pt-pt", + "pt-br", + "ru", + "sv", + "fi", + "tr", + "wls" + ], + "default": "en" + }, + "voice_file_id":{ + "type": "string", + "description": "The audio library file that will be used as a voiceover. Mandatory field if file is the type of speech chosen.", + "title": "Voice File", + "x-ms-dynamic-values":{ + "operationId": "get_audio_library", + "value-path": "id", + "value-collection": "data", + "value-title": "name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + } + }, + "numbers":{ + "type": "string", + "description": "A list of phone numbers separated by commas, without spaces and with the international prefix.", + "title": "Numbers" + }, + "available_groups":{ + "type": "string", + "description": "List of contacts to whom the campaign will be sent.", + "title": "Available Groups", + "x-ms-dynamic-values":{ + "operationId": "get_agendas", + "value-path": "id", + "value-collection": "data", + "value-title": "name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + } + }, + "vm_timeout":{ + "type": "integer", + "description": "Maximum call duration in minutes.", + "title": "Call Timeout", + "format": "int32", + "default":30 + }, + "max_retries":{ + "type": "integer", + "description": "Number of retries to perform if the recipient of the call does not answer.", + "title": "Max Retries", + "format": "int32", + "enum":[ + 0, + 1, + 2, + 3, + 4 + ], + "default":0 + }, + "minutes_retry_1":{ + "type": "integer", + "description": "Interval in minutes in which the first retry will be made after the first call is not answered. This field is mandatory if \"Max Retries\" is greater than 1.", + "title": "Minutes in retry 1", + "format": "int32", + "enum":[ + 1, + 2, + 5, + 10, + 20, + 30, + 60, + 120, + 240, + 480, + 960, + 1440 + ] + }, + "minutes_retry_2":{ + "type": "integer", + "description": "Interval in minutes in which the first retry will be made after the first call is not answered. This field is mandatory if \"Max Retries\" is greater than 2.", + "title": "Minutes in retry 2", + "format": "int32", + "enum":[ + 1, + 2, + 5, + 10, + 20, + 30, + 60, + 120, + 240, + 480, + 960, + 1440 + ] + }, + "minutes_retry_3":{ + "type": "integer", + "description": "Interval in minutes in which the first retry will be made after the first call is not answered. This field is mandatory if \"Max Retries\" is greater than 3.", + "title": "Minutes in retry 3", + "format": "int32", + "enum":[ + 1, + 2, + 5, + 10, + 20, + 30, + 60, + 120, + 240, + 480, + 960, + 1440 + ] + }, + "minutes_retry_4":{ + "type": "integer", + "description": "Interval in minutes in which the first retry will be made after the first call is not answered. This field is mandatory if \"Max Retries\" is greater than 4.", + "title": "Minutes in retry 4", + "format": "int32", + "enum":[ + 1, + 2, + 5, + 10, + 20, + 30, + 60, + 120, + 240, + 480, + 960, + 1440 + ] + }, + "ring_timeout":{ + "type": "integer", + "format": "int32", + "description": "Time in seconds in which the recipient's phone will ring for you to pick up the call.", + "title": "Ring Timeout" + }, + "response_codes":{ + "type": "string", + "description": "(JSON) Response codes that can be pressed by the recipient that will generate an action on the call.", + "title": "Response Codes" + }, + "response_codes_timeout":{ + "type": "integer", + "format": "int32", + "description": "Time in seconds in which the recipient will be able to press a reply code. This field is mandatory in the presence of 'Response Codes'", + "title": "Response Codes Timeout" + }, + "start_date":{ + "type": "string", + "description": "Campaign start date in the format 'YYYY-MM-DD hh:mm'. If you don't send this parameter, the campaign will start two minutes after the creation of the new campaign.", + "title": "Start Date" + }, + "callsxblock":{ + "type": "integer", + "format": "int32", + "description": "Number of recipients per block. Mandatory in the presence of 'Minutes Per Block'. If the two parameters are sent, the campaign configuration is defined as 'custom configuration' and the value of the parameters 'Days' and 'Time Intervals' will be considered.", + "title": "Calls per Block" + }, + "minutesxblock":{ + "type": "integer", + "format": "int32", + "description": "Every few minutes the block of recipients chosen in 'Calls Per Block' will be sent. Mandatory in the presence of 'Calls Per Block'. If the two parameters are sent, the campaign configuration is defined as 'custom configuration' and the value of the parameters 'Days' and 'Time Intervals' will be considered.", + "title": "Minutes per Block" + }, + "days":{ + "type": "integer", + "description": "A list of days of the week separated by commas and without spaces on which calls can be made. (1,2,3,4,5,6,7)", + "format": "int32", + "enum":[ + 1, + 2, + 5, + 10, + 20, + 30, + 60, + 120, + 240, + 480, + 960, + 1440 + ], + "title": "Days" + }, + "time_intervals":{ + "type": "string", + "description": "A list of time intervals separated by commas and without spaces, in which the call can be sent. It will only be taken into account if 'Minutes Per Block' and 'Calls Per Block' are sent.(hh:mm-hh:mm,hh:mm-hh:mm...)", + "title": "Time Intervals" + } + }, + "required":[ + "vm_validated_phone_id", + "type_locution", + "name" + ] + } + } + ] + } + }, + "/contacts":{ + "post":{ + "responses":{ + "200":{ + "description": "Ok", + "schema":{ + "type": "object", + "properties":{ + "data":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "Contact's ID in Mensagia", + "title": "Contact ID" + }, + "number":{ + "type": "string", + "description": "Contact's Number", + "title": "Contact Number" + }, + "push_operator_destination_id":{ + "type": "string", + "description": "Contact's Push operator destination", + "title": "Push Operator" + }, + "name":{ + "type": "string", + "description": "Contact's name", + "title": "Contact Name" + }, + "email":{ + "type": "string", + "description": "Contact's email", + "title": "Contact Email" + }, + "city":{ + "type": "string", + "description": "Contact's location", + "title": "Contact Location" + }, + "language":{ + "type": "string", + "description": "Contact's language", + "title": "Contact Language" + }, + "country_id":{ + "type": "integer", + "format": "int32", + "description": "Contact's Country ID", + "title": "Contact Country" + }, + "country_name":{ + "type": "string", + "description": "Contact's country name", + "title": "Country Name" + }, + "in_sms_blacklist":{ + "type": "boolean", + "description": "Determines if the contact is in the SMS Blacklist", + "title": "Is in SMS Blacklist" + }, + "in_voice_blacklist":{ + "type": "boolean", + "description": "Determines if the contact is in the Voice Blacklist", + "title": "Is in Voice Blacklist" + }, + "in_mail_blacklist":{ + "type": "boolean", + "description": "Determines if the contact is in the Email Blacklist", + "title": "Is in Email Blacklist" + }, + "created_at":{ + "type": "string", + "description": "Contact created at", + "title": "Created At" + }, + "updated_at":{ + "type": "string", + "description": "Contact updated at", + "title": "Updated At" + }, + "groups":{ + "type": "object", + "properties":{ + "data":{ + "type": "array", + "items":{ + "type": "object", + "properties":{ + "id":{ + "type": "integer", + "format": "int32", + "description": "Group ID", + "title": "Group ID" + }, + "name":{ + "type": "string", + "description": "Group Name", + "title": "Group Name" + }, + "total_users":{ + "type": "integer", + "format": "int32", + "description": "Total Group's Users", + "title": "Total Group's Users" + }, + "busy":{ + "type": "integer", + "format": "int32", + "description": "Group is Busy", + "title": "Group is Busy" + }, + "created_at":{ + "type": "string", + "description": "Group Created At", + "title": "Group Created At" + }, + "updated_at":{ + "type": "string", + "description": "Group Updated At", + "title": "Group Updated At" + } + } + }, + "description": "data" + } + }, + "description": "groups" + } + }, + "description": "data" + } + } + } + }, + "400":{ + "description": "Validation Fail" + }, + "403":{ + "description": "Forbidden" + }, + "500":{ + "description": "Internal Server Error" + }, + "default":{ + "description": "Operation Failed." + } + }, + "summary": "Create a Contact", + "description": "Create a contact insise your Mensagia's account.", + "operationId": "create_contact", + "parameters":[ + { + "name": "in_mail_blacklist", + "in": "query", + "required":false, + "type": "boolean", + "default":false, + "description": "Specify if your contact is on the Email blacklist.", + "x-ms-summary": "Is in Mail Blacklist" + }, + { + "name": "in_sms_blacklist", + "in": "query", + "required":false, + "type": "boolean", + "default":false, + "description": "Specify if your contact is on in_voice_blacklist.", + "x-ms-summary": "Is in SMS Blacklist" + }, + { + "name": "in_voice_blacklist", + "in": "query", + "required":false, + "type": "boolean", + "default":false, + "description": "Specify if your contact is on the Voice blacklist.", + "x-ms-summary": "Is in Voice Blacklist" + }, + { + "name": "Accept", + "in": "header", + "required":true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "API-source", + "in": "header", + "required":true, + "type": "string", + "default": "Power-Automate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required":true, + "schema":{ + "type": "object", + "properties":{ + "number":{ + "type": "string", + "description": "The contact's mobile number without blank spaces, with the international prefix and without the + sign.", + "title": "Number" + }, + "name":{ + "type": "string", + "description": "Name of the contact within Mensagia.", + "title": "Name" + }, + "email":{ + "type": "string", + "description": "Contact email within Mensagia.", + "title": "Email" + }, + "city":{ + "type": "string", + "description": "Location of your contact.", + "title": "City" + }, + "language":{ + "type": "string", + "description": "Contact's language in ISO code.", + "title": "Language", + "enum":[ + "en", + "en-gb", + "en-au", + "en-in", + "en-gb-wls", + "es", + "ca", + "zh-cn", + "zh-tw", + "da", + "nl", + "fr", + "de", + "it", + "ja", + "ko", + "no", + "pl", + "pt-pt", + "pt-br", + "ru", + "sv", + "fi", + "tr", + "wls" + ], + "default": "en" + }, + "groups":{ + "type": "string", + "description": "Add your contact to an address book", + "title": "Agenda", + "x-ms-dynamic-values":{ + "operationId": "get_agendas", + "value-path": "id", + "value-collection": "data", + "value-title": "name", + "parameters":{ + "Accept": "application/json", + "Api-source": "Power-Automate" + } + } + } + }, + "required":[ + "email", + "number" + ] + } + } + ] + } + } + }, + "definitions":{}, + "parameters":{}, + "responses":{}, + "securityDefinitions":{ + "apiKey":{ + "type": "apiKey", + "in": "query", + "name": "api_token" + } + }, + "security":[ + { + "apiKey":[] + } + ], + "tags":[] +} diff --git a/independent-publisher-connectors/Mensagia/apiProperties.json b/independent-publisher-connectors/Mensagia/apiProperties.json new file mode 100644 index 0000000000..8217d2bfb7 --- /dev/null +++ b/independent-publisher-connectors/Mensagia/apiProperties.json @@ -0,0 +1,25 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "Api Key", + "description": "The API Key for this api", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [ + "actions" + ], + "publisher": "Sistemas Informaticos ICON, S.L.", + "stackOwner": "Sinergyne Global Communications, S.L." + } +} From 21814b9bf55c9d29487c4d2ada57199b3e20aebd Mon Sep 17 00:00:00 2001 From: Mario Trueba Cantero Date: Tue, 7 Dec 2021 00:39:54 +0100 Subject: [PATCH 163/219] Updated swagger definition due to API changes (#1250) * Add files via upload * Delete independent-publisher-connectors/LibreBor directory * Updated LibreBor connector with latest * Changed the iconBrandColor * Delete settings.json * Removed Unicodes and expanded the descriptions as requested * Deleted icon.png * Changed type of Capital from Integer to Number --- .../LibreBor/apiDefinition.swagger.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json b/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json index f09b17a453..ede1121810 100644 --- a/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json +++ b/independent-publisher-connectors/LibreBor/apiDefinition.swagger.json @@ -596,7 +596,7 @@ "x-nullable": true }, "capital": { - "type": "integer", + "type": "number", "example": 3000, "x-nullable": true }, @@ -741,7 +741,7 @@ "example": "C/ CALLE DE EJEMPLO 12 2B (MALAGA)." }, "capital": { - "type": "integer", + "type": "number", "example": 3000 }, "purpose": { From 7f310525f2ed1cea810843a28e40f2ff42071c41 Mon Sep 17 00:00:00 2001 From: rescojj <92038751+janjanusik@users.noreply.github.com> Date: Tue, 7 Dec 2021 01:32:53 +0100 Subject: [PATCH 164/219] Update README.md (#1308) --- certified-connectors/RescoCloud/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/certified-connectors/RescoCloud/README.md b/certified-connectors/RescoCloud/README.md index 578dfde087..1c194aca04 100644 --- a/certified-connectors/RescoCloud/README.md +++ b/certified-connectors/RescoCloud/README.md @@ -24,6 +24,9 @@ This connector supports the following operations: * `Delete record`: Delete record by specific ID. * `Update record`: Update record by specific ID. * `Get current user`: Get current user record associated with login credentials. +* `List questionnaires`: Get list of questionnaires. +* `Get questionnaire`: Get questionnaire by specific ID. +* `Generate report`: Generate report into the selected format. ## Supported Triggers From 60aa87474d87c1c24307ea1017f64e5910a09037 Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Tue, 7 Dec 2021 03:34:28 +0300 Subject: [PATCH 165/219] Removed Get attachment action that does not work properly in the Preview environment of MS Power Automate (#1300) --- certified-connectors/Plumsail Forms/Readme.md | 1 - .../Plumsail Forms/apiDefinition.swagger.json | 34 ------------------- 2 files changed, 35 deletions(-) diff --git a/certified-connectors/Plumsail Forms/Readme.md b/certified-connectors/Plumsail Forms/Readme.md index 743abb6fe9..692d9c868f 100644 --- a/certified-connectors/Plumsail Forms/Readme.md +++ b/certified-connectors/Plumsail Forms/Readme.md @@ -17,5 +17,4 @@ paconn create --api-def apiDefinition.swagger.json --api-prop apiProperties.json ## Supported Operations * `Form is submitted`: a trigger that fires when the specified form is submitted * `Delete submission`: an action that deletes the specified submission -* `Download attachment`: an action that downloads the specified attachment * `Delete attachment`: an action that deletes the specified attachment diff --git a/certified-connectors/Plumsail Forms/apiDefinition.swagger.json b/certified-connectors/Plumsail Forms/apiDefinition.swagger.json index 9b0a7bc110..699ec3dbae 100644 --- a/certified-connectors/Plumsail Forms/apiDefinition.swagger.json +++ b/certified-connectors/Plumsail Forms/apiDefinition.swagger.json @@ -19,40 +19,6 @@ "produces": [], "paths": { "/api/attachments": { - "get": { - "tags": [ - "Attachments" - ], - "operationId": "DownloadAttachment", - "consumes": [], - "produces": [ - "application/octet-stream" - ], - "parameters": [ - { - "name": "fileUrl", - "in": "query", - "required": true, - "type": "string", - "x-ms-summary": "File URL", - "description": "File URL" - } - ], - "responses": { - "200": { - "description": "The contents of the attachment", - "schema": { - "format": "binary", - "title": "Result file", - "description": "The contents of the attachment", - "type": "string" - } - } - }, - "x-ms-visibility": "important", - "summary": "Download attachment", - "description": "Downloads an attachment by its URL" - }, "delete": { "tags": [ "Attachments" From 2f214d06e9aa74565b96c572360a677fc7e24c9c Mon Sep 17 00:00:00 2001 From: Encodian <45834050+Encodian@users.noreply.github.com> Date: Tue, 7 Dec 2021 00:35:53 +0000 Subject: [PATCH 166/219] Encodian Nov 21 Release #2 (#1289) * Encodian March 21 Release * Encodian April 21 Release * Encodian May 21 Release * Encodian June 21 Release * Encodian - June 21 Release #2 * Encodian - August Release #1 * Encodian - Nov 21 Release * Encodian - Nov 21 Release #2 --- certified-connectors/Encodian/Readme.md | 36 +- .../Encodian/apiDefinition.swagger.json | 329 +++++++++++++++++- 2 files changed, 348 insertions(+), 17 deletions(-) diff --git a/certified-connectors/Encodian/Readme.md b/certified-connectors/Encodian/Readme.md index d76b46f46f..3e28fceb4f 100644 --- a/certified-connectors/Encodian/Readme.md +++ b/certified-connectors/Encodian/Readme.md @@ -69,17 +69,17 @@ Split a PDF Document into multiple PDF Documents using barcodes - https://suppor ### Convert Word to PDF Form Convert the Word document provided (Legacy Form Controls Only) to a PDF form document. - https://support.encodian.com/hc/en-gb/articles/360012307133-Convert-Word-to-PDF-Form -### Add Text Watermark -Add a text watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012230494-Add-Text-Watermark +### Add Text Watermark to PDF +Add a text watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012230494 -### Add Image Watermark -Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012484094-Add-Image-Watermark +### Add Image Watermark to PDF +Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012484094 -### Add Text Watermark (Advanced) -Add a text watermark to the specified PDF document using the advanced options - https://support.encodian.com/hc/en-gb/articles/360012345813-Add-Text-Watermark-Advanced +### Add Text Watermark to PDF (Advanced) +Add a text watermark to the specified PDF document using the advanced options - https://support.encodian.com/hc/en-gb/articles/360012345813 -### Add Image Watermark (Advanced) -Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012485874-Add-Image-Watermark-Advanced +### Add Image Watermark to PDF (Advanced) +Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012485874 ### Image Clean Up (Document) Execute image clean up activities focussed on text based images such as Deskew, Rotate, Despeckle + more. @@ -171,3 +171,23 @@ Create a Hash-based message authentication code (HMAC) using a secret key - http ### Create Hash Code Create a Hashcode / message digest - https://support.encodian.com/hc/en-gb/articles/360013996077-Create-Hash-Code +### Add Text Watermark to Image +Add a Text Watermark to the image provided - https://support.encodian.com/hc/en-gb/articles/360013560398-Add-Text-Watermark-To-Image + +### Compare Word Documents +Compare differences between Microsoft Word and PDF Documents - https://support.encodian.com/hc/en-gb/articles/360018576278-Compare-Word-Documents + +### Populate Word Document +Populate a Microsoft Word Document (DOCX) with the JSON data provided - https://support.encodian.com/hc/en-gb/articles/360019620578-Populate-Word-Document + +### Compress PDF +Compress and optimise a PDF document - https://support.encodian.com/hc/en-gb/articles/360019994857-Compress-PDF + +### Send to Encodian Filer +Send data to an Encodian Filer endpoint - https://support.encodian.com/hc/en-gb/articles/4404097189905-Send-to-Encodian-Filer + +### Add Text Watermark to Word +Add a text watermark to the specified Microsoft Word document - https://support.encodian.com/hc/en-gb/articles/4411284008593 + +### Add Image Watermark to Word +Add an image watermark to the specified Microsoft Word document - https://support.encodian.com/hc/en-gb/articles/4411329161361 \ No newline at end of file diff --git a/certified-connectors/Encodian/apiDefinition.swagger.json b/certified-connectors/Encodian/apiDefinition.swagger.json index dca1cdc5b4..258def7bf6 100644 --- a/certified-connectors/Encodian/apiDefinition.swagger.json +++ b/certified-connectors/Encodian/apiDefinition.swagger.json @@ -795,8 +795,8 @@ } }, "x-ms-visibility": "important", - "summary": "Add Text Watermark", - "description": "Add a text watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012230494-Add-Text-Watermark" + "summary": "Add Text Watermark to PDF", + "description": "Add a text watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012230494" } }, "/api/v1/Core/AddImageWatermark": { @@ -840,8 +840,8 @@ } }, "x-ms-visibility": "important", - "summary": "Add Image Watermark", - "description": "Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012484094-Add-Image-Watermark" + "summary": "Add Image Watermark to PDF", + "description": "Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012484094" } }, "/api/v1/Core/AddTextWatermarkAdvanced": { @@ -885,8 +885,8 @@ } }, "x-ms-visibility": "important", - "summary": "Add Text Watermark (Advanced)", - "description": "Add a text watermark to the specified PDF document using the advanced options - https://support.encodian.com/hc/en-gb/articles/360012345813-Add-Text-Watermark-Advanced-" + "summary": "Add Text Watermark to PDF (Advanced)", + "description": "Add a text watermark to the specified PDF document using the advanced options - https://support.encodian.com/hc/en-gb/articles/360012345813" } }, "/api/v1/Core/AddImageWatermarkAdvanced": { @@ -930,8 +930,8 @@ } }, "x-ms-visibility": "important", - "summary": "Add Image Watermark (Advanced)", - "description": "Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012485874-Add-Image-Watermark-Advanced-" + "summary": "Add Image Watermark to PDF (Advanced)", + "description": "Add an image watermark to the specified PDF document using the standard options - https://support.encodian.com/hc/en-gb/articles/360012485874" } }, "/api/v1/Core/ImageCleanUpDocument": { @@ -2755,6 +2755,7 @@ { "name": "operation", "in": "body", + "description": "Request object, refer to schema definition: DtoEncodianSendToFiler", "required": false, "schema": { "$ref": "#/definitions/DtoEncodianSendToFiler" @@ -2783,6 +2784,96 @@ "description": "Send data to an Encodian Filer endpoint - https://support.encodian.com/hc/en-gb/articles/4404097189905-Send-to-Encodian-Filer" } }, + "/api/v1/Core/AddTextWatermarkWord": { + "post": { + "tags": [ + "Core" + ], + "operationId": "AddTextWatermarkWord", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "operation", + "in": "body", + "description": "Request object, refer to schema definition: DtoAddTextWatermarkWord", + "required": false, + "schema": { + "$ref": "#/definitions/DtoAddTextWatermarkWord" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DtoResponseAddTextWatermarkWord" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/DtoResponseAddTextWatermarkWord" + } + }, + "400": { + "description": "Bad request" + } + }, + "x-ms-visibility": "important", + "summary": "Add Text Watermark to Word", + "description": "Add a text watermark to the specified Microsoft Word document - https://support.encodian.com/hc/en-gb/articles/4411284008593" + } + }, + "/api/v1/Core/AddImageWatermarkWord": { + "post": { + "tags": [ + "Core" + ], + "operationId": "AddImageWatermarkWord", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "operation", + "in": "body", + "description": "Request object, refer to schema definition: DtoAddImageWatermarkWord", + "required": false, + "schema": { + "$ref": "#/definitions/DtoAddImageWatermarkWord" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/DtoResponseAddImageWatermarkWord" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/DtoResponseAddImageWatermarkWord" + } + }, + "400": { + "description": "Bad request" + } + }, + "x-ms-visibility": "important", + "summary": "Add Image Watermark to Word", + "description": "Add an image watermark to the specified Microsoft Word document - https://support.encodian.com/hc/en-gb/articles/4411329161361" + } + }, "/api/v1/DynamicSchema/GetDynamicSchemaCreateBarcode": { "get": { "tags": [ @@ -12476,7 +12567,7 @@ "description": "Sets a specfic format for parsing DateTime values." }, "populationOptions": { - "default": "Default", + "default": "InlineErrors", "enum": [ "Default", "AllowMissingMembers", @@ -12783,6 +12874,226 @@ } } }, + "DtoAddTextWatermarkWord": { + "required": [ + "fileName", + "fileContent", + "text" + ], + "type": "object", + "properties": { + "fileName": { + "type": "string", + "x-ms-summary": "Filename", + "description": "The filename of the source Microsoft Word file, the file extension is mandatory: 'file.docx' and not 'file'" + }, + "fileContent": { + "format": "byte", + "type": "string", + "x-ms-summary": "File Content", + "description": "The file content of the source Microsoft Word file" + }, + "text": { + "type": "string", + "x-ms-summary": "Text", + "description": "The text to embed as a watermark within the Microsoft Word file" + }, + "orientation": { + "default": "Horizontal", + "enum": [ + "Horizontal", + "Diagonal" + ], + "type": "string", + "x-ms-summary": "Orientation", + "description": "Set the orientation of the text watermark" + }, + "cultureName": { + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Culture Name", + "description": "Change the thread culture used to process the request" + }, + "font": { + "default": "Calibri", + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Font", + "description": "Set the font type applied to the text watermark, the default font is set to Calibri" + }, + "textColour": { + "default": "#808080", + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Text Colour", + "description": "Set the HTML colour applied to the text watermark, the default colour is set to #808080 (Grey)" + }, + "textSize": { + "format": "int32", + "default": 0, + "type": "integer", + "x-ms-visibility": "advanced", + "x-ms-summary": "Text Size", + "description": "Set the font size applied to the text watermark, The default size is set to 0 (Auto)" + }, + "isSemiTransparent": { + "default": false, + "type": "boolean", + "x-ms-visibility": "advanced", + "x-ms-summary": "Semi Transparent", + "description": "Set whether the text watermark should be semi transparent" + } + } + }, + "DtoResponseAddTextWatermarkWord": { + "type": "object", + "properties": { + "HttpStatusCode": { + "format": "int32", + "type": "integer", + "x-ms-summary": "HTTP Status Code", + "description": "The HTTP Status code for the response." + }, + "HttpStatusMessage": { + "type": "string", + "x-ms-summary": "HTTP Status Message", + "description": "The HTTP Status message for the response." + }, + "OperationId": { + "type": "string", + "x-ms-summary": "Operation ID", + "description": "The unique ID assigned to this operation." + }, + "Errors": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + }, + "x-ms-summary": "Errors", + "description": "An array of error messages should an error occur." + }, + "Operation Status": { + "type": "string", + "x-ms-summary": "Operation Status", + "description": "Indicates whether the operation has completed, has been queued or has failed." + }, + "Filename": { + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "Filename", + "description": "The filename of the document." + }, + "FileContent": { + "format": "byte", + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "File Content", + "description": "The processed document." + } + } + }, + "DtoAddImageWatermarkWord": { + "required": [ + "fileName", + "fileContent", + "watermarkFilename", + "watermarkFileContent" + ], + "type": "object", + "properties": { + "fileName": { + "type": "string", + "x-ms-summary": "Filename", + "description": "The filename of the source Microsoft Word file, the file extension is mandatory: 'file.docx' and not 'file'" + }, + "fileContent": { + "format": "byte", + "type": "string", + "x-ms-summary": "File Content", + "description": "The file content of the source Microsoft Word file" + }, + "watermarkFilename": { + "type": "string", + "x-ms-summary": "Watermark Filename", + "description": "The filename for the watermark image file, the file extension is mandatory: 'file.jpg' and not 'file'" + }, + "watermarkFileContent": { + "format": "byte", + "type": "string", + "x-ms-summary": "Watermark File Content", + "description": "The content of the watermark image file" + }, + "cultureName": { + "type": "string", + "x-ms-visibility": "advanced", + "x-ms-summary": "Culture Name", + "description": "Change the thread culture used to process the request" + }, + "scale": { + "format": "double", + "type": "number", + "x-ms-visibility": "advanced", + "x-ms-summary": "Scale", + "description": "Sets the scale factor expressed as a fraction of the image. The default value is 1, valid values range from 0 to 65.5" + }, + "isSemiTransparent": { + "default": false, + "type": "boolean", + "x-ms-visibility": "advanced", + "x-ms-summary": "Semi Transparent", + "description": "Set whether the text watermark should be semi transparent" + } + } + }, + "DtoResponseAddImageWatermarkWord": { + "type": "object", + "properties": { + "HttpStatusCode": { + "format": "int32", + "type": "integer", + "x-ms-summary": "HTTP Status Code", + "description": "The HTTP Status code for the response." + }, + "HttpStatusMessage": { + "type": "string", + "x-ms-summary": "HTTP Status Message", + "description": "The HTTP Status message for the response." + }, + "OperationId": { + "type": "string", + "x-ms-summary": "Operation ID", + "description": "The unique ID assigned to this operation." + }, + "Errors": { + "uniqueItems": false, + "type": "array", + "items": { + "type": "string" + }, + "x-ms-summary": "Errors", + "description": "An array of error messages should an error occur." + }, + "Operation Status": { + "type": "string", + "x-ms-summary": "Operation Status", + "description": "Indicates whether the operation has completed, has been queued or has failed." + }, + "Filename": { + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "Filename", + "description": "The filename of the document." + }, + "FileContent": { + "format": "byte", + "type": "string", + "x-ms-visibility": "important", + "x-ms-summary": "File Content", + "description": "The processed document." + } + } + }, "DtoResponseMgmtGetSubscriptionStatus": { "type": "object", "properties": { From a444ca918cb9ec2b1fe7ff0124a0869bba75d126 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 17:56:59 -0500 Subject: [PATCH 167/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 45 ++++++++++++++++++++------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 15db6b6a45..fbfe6d46a5 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -9,26 +9,47 @@ The connector supports the following operations: ## Getting Help or Providing Feedback If you have any issues, requests for functionality, or have general feedback, please fill out this [form](http://aka.ms/snowflakeconnector) and we will get back to you. -## Pre-requisites -Set up Azure AD authentication for Snowflake by following the steps [here](https://docs.snowflake.com/en/user-guide/oauth-azure.html). +## Pre-requisites for Using the Connector +Set up Azure AD authentication for Snowflake by following these steps: +1. In [Step 1: Configure the OAuth Resource in Azure ADollow steps 1-10](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as SESSION:ROLE-ANY by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). +2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-?. +3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. +4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. +A. Replace the AZURE_AD_ISSUER on line 5 with the value from step 3 that is similar to https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/. Keep the quotation marks. +B. Replace Keys URL on line 6 with the value from Step 3 that is similar to https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys. Keep the quotation marks. +C. Replace the Audience List URL in line 7 with Application ID URI from Step 1. Keep the quotation marks. +D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace login_name in line 9 with email_address. If not, keep it as is and do not type in your login name. Keep the quotation marks. +E. Now you can execute your query. + +create security integration connector + type = external_oauth + enabled = true + external_oauth_type = azure + external_oauth_issuer = '' + external_oauth_jws_keys_url = 'https://login.windows.net/common/discovery/keys' + external_oauth_audience_list = ('https://analysis.usgovcloudapi.net/powerbi/connector/snowflake') + external_oauth_token_user_mapping_claim = 'upn' + external_oauth_snowflake_user_mapping_attribute = 'login_name' + external_oauth_any_role_mode = 'ENABLE'; Steps 1, 3, and 4 are setup configuration required on the Snowflake server. Step 2 is required for the connector. The values from this step will be used when setting up the connector. ## Using the Connector -1. To use this connector, go to Power Automate and click **Data** on the left navigation page. Then, click **Custom connectors**. -2. Wait for the page to load. Then, click **+New custom connector**. -3. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. -4. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. -5. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). -6. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, in the OAuth 2.0 section, choose **Azure Active Directory** from the **Identity Provider** dropdown. -7. Fill in the following fields from the values in Pre-requisities: +1. Make sure you've followed the pre-requisites. +2. To use this connector, go to Power Automate and click **Data** on the left navigation page. Then, click **Custom connectors**. +3. Wait for the page to load. Then, click **+New custom connector**. +4. From the dropdown, select **Import from GitHub**. For **Connector Type**, choose **Custom**. For **Branch**, choose **dev**. For **Connector**, choose **Snowflake**. +5. Click **Continue.** You will now be taken the the Custom Connector UI, which will populate the connector files, including the code file, into the UI. +6. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). +7. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, in the OAuth 2.0 section, choose **Azure Active Directory** from the **Identity Provider** dropdown. +8. Fill in the following fields from the values in Pre-requisities: - Client ID: OAUTH_CLIENT_ID - Client Secret: OAUTH_CLIENT_SECRET - Resource URI: Application ID URI -8. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." -9. Now, you can go to test your connector in **Step 5: Test**, if you'd like. -10. Begin using your custom connector in your environment to build apps and flows! +9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." +10. Now, you can go to test your connector in **Step 5: Test**, if you'd like. +11. Begin using your custom connector in your environment to build apps and flows! ## Sample Flow From bff6ab74a3e98ff48250a83e2e38bd83535d06c1 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:06:34 -0500 Subject: [PATCH 168/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index fbfe6d46a5..1914f1ad21 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -21,6 +21,7 @@ C. Replace the Audience List URL in line 7 with Application ID URI from Step 1. D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace login_name in line 9 with email_address. If not, keep it as is and do not type in your login name. Keep the quotation marks. E. Now you can execute your query. +``` create security integration connector type = external_oauth enabled = true @@ -31,6 +32,7 @@ create security integration connector external_oauth_token_user_mapping_claim = 'upn' external_oauth_snowflake_user_mapping_attribute = 'login_name' external_oauth_any_role_mode = 'ENABLE'; +``` Steps 1, 3, and 4 are setup configuration required on the Snowflake server. Step 2 is required for the connector. The values from this step will be used when setting up the connector. From ee4ab4822c93cf50dd72537c24024c5445f9d2b9 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:13:12 -0500 Subject: [PATCH 169/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 1914f1ad21..431b54d822 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -11,15 +11,15 @@ If you have any issues, requests for functionality, or have general feedback, pl ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: -1. In [Step 1: Configure the OAuth Resource in Azure ADollow steps 1-10](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as SESSION:ROLE-ANY by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). +1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). 2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-?. 3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. -4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. -A. Replace the AZURE_AD_ISSUER on line 5 with the value from step 3 that is similar to https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/. Keep the quotation marks. -B. Replace Keys URL on line 6 with the value from Step 3 that is similar to https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys. Keep the quotation marks. -C. Replace the Audience List URL in line 7 with Application ID URI from Step 1. Keep the quotation marks. -D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace login_name in line 9 with email_address. If not, keep it as is and do not type in your login name. Keep the quotation marks. -E. Now you can execute your query. +4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. +A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks. +B. Replace the Keys URL in line 6 with the value from Step 3 that is similar to `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Keep the quotation marks. +C. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. +D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace `login_name` in line 9 with `email_address`. If not, keep it as is and do not type in your login name. Keep the quotation marks. +E. Now you can execute your query. ``` create security integration connector From 05293d540c383d89fb42bbe8b57d4dd7b5848fb0 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:33:20 -0500 Subject: [PATCH 170/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 431b54d822..bcc6344719 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -15,7 +15,7 @@ Set up Azure AD authentication for Snowflake by following these steps: 2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-?. 3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. 4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. -A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks. +A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks and make sure you have a `/` before the last quotation mark. B. Replace the Keys URL in line 6 with the value from Step 3 that is similar to `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Keep the quotation marks. C. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace `login_name` in line 9 with `email_address`. If not, keep it as is and do not type in your login name. Keep the quotation marks. From c59b11a539d20ea773bddd9f7f4a8bd97ecb79a4 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:35:48 -0500 Subject: [PATCH 171/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index bcc6344719..9142397ad2 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -19,7 +19,7 @@ A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is si B. Replace the Keys URL in line 6 with the value from Step 3 that is similar to `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Keep the quotation marks. C. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace `login_name` in line 9 with `email_address`. If not, keep it as is and do not type in your login name. Keep the quotation marks. -E. Now you can execute your query. +E. Make sure you've set your role as `ACCOUNTADMIN`. Now you can execute your query. ``` create security integration connector From 29e10ff7c41ce2910aab67b753c26c0a09fc3239 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:39:07 -0500 Subject: [PATCH 172/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 9142397ad2..994837c66c 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -46,9 +46,9 @@ Step 2 is required for the connector. The values from this step will be used whe 6. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). 7. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, in the OAuth 2.0 section, choose **Azure Active Directory** from the **Identity Provider** dropdown. 8. Fill in the following fields from the values in Pre-requisities: -- Client ID: OAUTH_CLIENT_ID -- Client Secret: OAUTH_CLIENT_SECRET -- Resource URI: Application ID URI +- Client ID: `OAUTH_CLIENT_ID` +- Client Secret: `OAUTH_CLIENT_SECRET` +- Resource URI: `Application ID URI` 9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." 10. Now, you can go to test your connector in **Step 5: Test**, if you'd like. 11. Begin using your custom connector in your environment to build apps and flows! From 6545371c25a7acabf1917b7196febe210c07b548 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Tue, 7 Dec 2021 18:43:05 -0500 Subject: [PATCH 173/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 994837c66c..631385305c 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -12,7 +12,7 @@ If you have any issues, requests for functionality, or have general feedback, pl ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: 1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). -2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-?. +2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-12 and 14. 3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. 4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks and make sure you have a `/` before the last quotation mark. From 372f3de35df74c194d321b292e5c83de104ed21f Mon Sep 17 00:00:00 2001 From: mingji1994 <89219897+mingji1994@users.noreply.github.com> Date: Tue, 7 Dec 2021 16:56:09 -0800 Subject: [PATCH 174/219] Move "hostUrl" to headers (#1313) * Move hostUrl from connection parameter to operation parameter * Move hostUrl from "path" to "header" Move hostUrl from path to header, also change connectorParameters to headers. --- .../apiDefinition.swagger.json | 112 ++++++++++++++++++ .../apiProperties.json | 2 +- 2 files changed, 113 insertions(+), 1 deletion(-) diff --git a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json index eae3950bbb..b4339a75c4 100644 --- a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json +++ b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json @@ -51,6 +51,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -244,6 +252,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -359,6 +375,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -548,6 +572,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -655,6 +687,14 @@ "application/json" ], "parameters": [ + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "hostUrl", @@ -778,6 +818,14 @@ "application/json" ], "parameters": [ + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "hostUrl", @@ -901,6 +949,14 @@ "application/json" ], "parameters": [ + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "path", "name": "hostUrl", @@ -1060,6 +1116,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1172,6 +1236,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1284,6 +1356,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1396,6 +1476,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1549,6 +1637,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1661,6 +1757,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", @@ -1773,6 +1877,14 @@ "type": "string", "x-ms-summary": "hosturl" }, + { + "in": "header", + "name": "hostUrl", + "description": "host url", + "required": true, + "type": "string", + "x-ms-summary": "hosturl" + }, { "in": "header", "name": "Content-Type", diff --git a/certified-connectors/Dynamics365FraudProtection/apiProperties.json b/certified-connectors/Dynamics365FraudProtection/apiProperties.json index 3e020f8da7..eaef2e9f43 100644 --- a/certified-connectors/Dynamics365FraudProtection/apiProperties.json +++ b/certified-connectors/Dynamics365FraudProtection/apiProperties.json @@ -97,7 +97,7 @@ "policyTemplateInstances": [ { "parameters": { - "x-ms-apimTemplateParameter.urlTemplate": "@connectionParameters('hostUrl')" + "x-ms-apimTemplateParameter.urlTemplate": "@headers('hostUrl')" }, "templateId": "dynamichosturl", "title": "Dynamics 365 Fraud Protection API endpoint Url" From 35395715225eab04ea40b24c1fc8c4c5f2addea4 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:03:34 -0500 Subject: [PATCH 175/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 631385305c..b1e1848e10 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -12,7 +12,7 @@ If you have any issues, requests for functionality, or have general feedback, pl ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: 1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). -2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-12 and 14. +2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. 3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. 4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks and make sure you have a `/` before the last quotation mark. From 968f07e867344017b5e77fda493e7d10e16f69cd Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:06:54 -0500 Subject: [PATCH 176/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index b1e1848e10..1e22b81c58 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -12,9 +12,11 @@ If you have any issues, requests for functionality, or have general feedback, pl ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: 1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). -2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. -3. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. -4. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. +2. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save** +3. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. +4. Go to the resource created in Step 1 and go to **Expose an API** -> **Add a client application** -> **Add** your `APPLICATION_CLIENT_ID` from earlier in step 3 above -> Click **Save** +5. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. +6. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks and make sure you have a `/` before the last quotation mark. B. Replace the Keys URL in line 6 with the value from Step 3 that is similar to `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Keep the quotation marks. C. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. From bf4e9af57a6a2584a89733929fe567c3a5b0b706 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:24:38 -0500 Subject: [PATCH 177/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 1e22b81c58..a118655504 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -52,7 +52,7 @@ Step 2 is required for the connector. The values from this step will be used whe - Client Secret: `OAUTH_CLIENT_SECRET` - Resource URI: `Application ID URI` 9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." -10. Now, you can go to test your connector in **Step 5: Test**, if you'd like. +10. Now, you can go to test your connector in **Step 5: Test** and create a new connection. 11. Begin using your custom connector in your environment to build apps and flows! ## Sample Flow From 0d1e1b2419f01ba819f7f4a7ebcf6223579df8dc Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Thu, 9 Dec 2021 12:25:33 -0500 Subject: [PATCH 178/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index a118655504..86753d25d9 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -12,8 +12,8 @@ If you have any issues, requests for functionality, or have general feedback, pl ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: 1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). -2. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save** -3. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. +2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. +3. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save** 4. Go to the resource created in Step 1 and go to **Expose an API** -> **Add a client application** -> **Add** your `APPLICATION_CLIENT_ID` from earlier in step 3 above -> Click **Save** 5. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. 6. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. @@ -54,7 +54,3 @@ Step 2 is required for the connector. The values from this step will be used whe 9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." 10. Now, you can go to test your connector in **Step 5: Test** and create a new connection. 11. Begin using your custom connector in your environment to build apps and flows! - -## Sample Flow - - From 60744dbf0b1c56aec999603ae411497002a3ec7e Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Thu, 9 Dec 2021 12:28:38 -0500 Subject: [PATCH 179/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 86753d25d9..55ea2a341e 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -13,7 +13,7 @@ If you have any issues, requests for functionality, or have general feedback, pl Set up Azure AD authentication for Snowflake by following these steps: 1. In [Step 1: Configure the OAuth Resource in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-1-configure-the-oauth-resource-in-azure-ad), follow steps 1-10 and define the scope as `SESSION:ROLE-ANY` by following these [instructions](https://docs.snowflake.com/en/user-guide/oauth-azure.html#using-any-role-with-external-oauth). 2. In [Step 2: Create an OAuth Client in Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-2-create-an-oauth-client-in-azure-ad), follow steps 1-13. -3. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save** +3. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save**. Ensure that the redirect URL is set in the Snowflake OAuth Client and not the Snowflake OAuth Resource. 4. Go to the resource created in Step 1 and go to **Expose an API** -> **Add a client application** -> **Add** your `APPLICATION_CLIENT_ID` from earlier in step 3 above -> Click **Save** 5. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. 6. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. @@ -36,9 +36,6 @@ create security integration connector external_oauth_any_role_mode = 'ENABLE'; ``` -Steps 1, 3, and 4 are setup configuration required on the Snowflake server. -Step 2 is required for the connector. The values from this step will be used when setting up the connector. - ## Using the Connector 1. Make sure you've followed the pre-requisites. 2. To use this connector, go to Power Automate and click **Data** on the left navigation page. Then, click **Custom connectors**. From 65f2cf4f902f2c81b3dbf8f5836bfd4e031b44ef Mon Sep 17 00:00:00 2001 From: Ahmad Najjar Date: Sat, 11 Dec 2021 02:33:31 +0100 Subject: [PATCH 180/219] AccuWeather (Independent Publisher) :: Fixed Data Type Error (#1262) * Submitting AccuWeather IP Connector * Fixing Current Conditions Response Error * Fixing some property mappings + Updating read me file * Fixing Description + Fixing iconBrandColor * Fixed data type error when details requested --- .../AccuWeather/apiDefinition.swagger.json | 40 +++++++++---------- .../AccuWeather/readme.md | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json index ff4980cded..38ddc8eff1 100644 --- a/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json +++ b/independent-publisher-connectors/AccuWeather/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "AccuWeather", "description": "AccuWeather provides commercial weather forecasting services worldwide.", - "version": "1.1", + "version": "2.1", "contact": { "name": "Ahmad Najjar", "email": "ahmadn82@hotmail.com" @@ -1685,28 +1685,28 @@ "description": "Ice" }, "HoursOfPrecipitation": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Precipitation" }, "HoursOfRain": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Rain" }, "HoursOfSnow": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Snow" }, "HoursOfIce": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Ice" }, "CloudCover": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Cloud Cover" }, "Evapotranspiration": { @@ -1972,23 +1972,23 @@ "description": "Ice" }, "HoursOfPrecipitation": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Precipitation" }, "HoursOfRain": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Rain" }, "HoursOfSnow": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Snow" }, "HoursOfIce": { - "type": "integer", - "format": "int32", + "type": "number", + "format": "double", "description": "Hours Of Ice" }, "CloudCover": { @@ -8703,4 +8703,4 @@ "propertyValue": "Data" } ] -} +} \ No newline at end of file diff --git a/independent-publisher-connectors/AccuWeather/readme.md b/independent-publisher-connectors/AccuWeather/readme.md index 8a72783f80..f58ab33b90 100644 --- a/independent-publisher-connectors/AccuWeather/readme.md +++ b/independent-publisher-connectors/AccuWeather/readme.md @@ -80,4 +80,4 @@ Visit [AccuWeather APIs reference](https://developer.accuweather.com/apis) page * Operation "Get Daily Index Values for a Specific Index" Not all daily indices/groups' indices data are available for retrieval, check (https://developer.accuweather.com/list-available-daily-indices) -#### Not all operations provided by AccuWeather are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) +#### Not all operations provided by AccuWeather are part of the first IP connector submission. I will keep adding/updating/supporting this connector based on your feedback/requests :) \ No newline at end of file From b5a2fd3dc6390866ab41e6f2104b5ccbec81bb07 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:48:39 -0500 Subject: [PATCH 181/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 55ea2a341e..f1a283b70c 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -7,7 +7,7 @@ The connector supports the following operations: - Cancel the Execution of a Statement ## Getting Help or Providing Feedback -If you have any issues, requests for functionality, or have general feedback, please fill out this [form](http://aka.ms/snowflakeconnector) and we will get back to you. +If you have any issues, requests for functionality, or have general feedback, please fill out this [form](http://aka.ms/snowflakeconnectorfeedback) and we will get back to you. ## Pre-requisites for Using the Connector Set up Azure AD authentication for Snowflake by following these steps: From d146e054afc09fe092bf3062d229d5f8c8841b17 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 13 Dec 2021 15:52:56 -0500 Subject: [PATCH 182/219] Added known issues --- custom-connectors/Snowflake/readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index f1a283b70c..220b000214 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -51,3 +51,7 @@ create security integration connector 9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." 10. Now, you can go to test your connector in **Step 5: Test** and create a new connection. 11. Begin using your custom connector in your environment to build apps and flows! + +## Known Issues +1. If you get a 500 response when creating a new connection, that is a transient error. Please wait a few minutes and try again. +2. If you get a 401 response and your **Host** field in Step 1 follows this format "orgname-accountname," replace the **Host** field with your "locator" URL. From 2768930f0c5a7bf8f4c0737198abe20018858ff8 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:25:15 -0500 Subject: [PATCH 183/219] Added redirect URL steps --- custom-connectors/Snowflake/readme.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 220b000214..962fd73b0a 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -45,12 +45,14 @@ create security integration connector 6. In **Step 1: General**, make sure to replace the "YourInstance" in the **Host URL** field with your own instance. You can learn more about this field [here](https://docs.snowflake.com/en/user-guide/client-redirect.html#introduction-to-client-redirect). 7. Go to **Step 2: Security** and choose **OAuth 2.0** from the dropdown. Then, in the OAuth 2.0 section, choose **Azure Active Directory** from the **Identity Provider** dropdown. 8. Fill in the following fields from the values in Pre-requisities: -- Client ID: `OAUTH_CLIENT_ID` -- Client Secret: `OAUTH_CLIENT_SECRET` -- Resource URI: `Application ID URI` -9. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." -10. Now, you can go to test your connector in **Step 5: Test** and create a new connection. -11. Begin using your custom connector in your environment to build apps and flows! +- **Client ID**: `OAUTH_CLIENT_ID` +- **Client Secret**: `OAUTH_CLIENT_SECRET` +- **Resource URI**: `Application ID URI` +The **Redirect UR**L will be blank for now. +10. Go to **Step 3: Definition** and review the operations. Then, go to **Step 4: Code** to view the code, which should already be enabled. Now, click "Create Connector." +11. Go back to **Step 2: Security** and copy the value in **Redirect URL**. In the Microsoft Azure portal, go to your app registrations and select the Snowflake OAuth Client app. On the left sidebar, click on **Authentication** > **+Add a platform** > Paste your value into the **Redirect URIs field** >> Click **Configure**. +12. Now, you can go to test your connector in **Step 5: Test** and create a new connection. +13. Begin using your custom connector in your environment to build apps and flows! ## Known Issues 1. If you get a 500 response when creating a new connection, that is a transient error. Please wait a few minutes and try again. From 1396cbcae61d195686a3d79a2b4e6fa0ddd05dad Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:34:25 -0500 Subject: [PATCH 184/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 962fd73b0a..8e9faf139b 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -16,12 +16,13 @@ Set up Azure AD authentication for Snowflake by following these steps: 3. Navigate to **Authentication** -> **Platform configurations** -> **Add a platform** -> **Add** "https://global.consent.azure-apim.net/redirect" -> Click **Save**. Ensure that the redirect URL is set in the Snowflake OAuth Client and not the Snowflake OAuth Resource. 4. Go to the resource created in Step 1 and go to **Expose an API** -> **Add a client application** -> **Add** your `APPLICATION_CLIENT_ID` from earlier in step 3 above -> Click **Save** 5. Follow [Step 3: Collect Azure AD Information for Snowflake](https://docs.snowflake.com/en/user-guide/oauth-azure.html#step-3-collect-azure-ad-information-for-snowflake) entirely. -6. Copy and paste the text below into your worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements. -A. Replace the `AZURE_AD_ISSUER` in line 5 with the value from step 3 that is similar to `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Keep the quotation marks and make sure you have a `/` before the last quotation mark. -B. Replace the Keys URL in line 6 with the value from Step 3 that is similar to `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Keep the quotation marks. -C. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. -D. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace `login_name` in line 9 with `email_address`. If not, keep it as is and do not type in your login name. Keep the quotation marks. -E. Make sure you've set your role as `ACCOUNTADMIN`. Now you can execute your query. +6. Copy and paste the text below into your Snowflake worksheet, which is where you execute your queries in Snowflake. Before you execute the query, make sure you make the following replacements so that your query succeeds. +A. In Microsoft Azure, go to your Snowflake OAuth Resource app and click on **Endpoints**. +B. To get the AZURE_AD_ISSUER in line 5, copy the link in the **Federation metadata document** field and open the link in a new tab. Copy the entityID link which should something look like this: `https://sts.windows.net/90288a9b-97df-4c6d-b025-95713f21cef9/`. Paste it into the query and make sure you have a `/` before the last quotation mark and that you keep the quotation marks. +C. To get the Keys URL in line 6, copy the link in the **OpenID Connect metadata document** field and open the link in a new tab. Copy the jwks_uri which should look something like this: `https://login.microsoftonline.com/90288a9b-97df-4c6d-b025-95713f21cef9/discovery/v2.0/keys`. Paste it into the query and make sure you keep the quotation marks. +D. Replace the Audience List URL in line 7 with `Application ID URI` from Step 1. Keep the quotation marks. +E. If your Snowflake account uses the same email address as your Microsoft Azure account, then replace `login_name` in line 9 with `email_address`. If not, keep it as is and do not type in your login name. Keep the quotation marks. +F. Make sure you've set your role as `ACCOUNTADMIN`. Now you can execute your query. ``` create security integration connector From 39f5663b2fb404d7c4b0112034cca8acb5cf08a0 Mon Sep 17 00:00:00 2001 From: natalie-pienkowska <73195764+natalie-pienkowska@users.noreply.github.com> Date: Mon, 13 Dec 2021 16:34:46 -0500 Subject: [PATCH 185/219] Update readme.md --- custom-connectors/Snowflake/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom-connectors/Snowflake/readme.md b/custom-connectors/Snowflake/readme.md index 8e9faf139b..2230621f81 100644 --- a/custom-connectors/Snowflake/readme.md +++ b/custom-connectors/Snowflake/readme.md @@ -1,4 +1,4 @@ -This is the private preview version of the Snowflake connector based on the [Snowflake SQL REST API](https://docs.snowflake.com/en/developer-guide/sql-api/index.html). It is based on OAUTH with Azure AD, but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather and not as array of strings. +This is the private preview version of the Snowflake connector based on the [Snowflake SQL REST API](https://docs.snowflake.com/en/developer-guide/sql-api/index.html). It is based on OAUTH with Azure AD, but it should also work with other OAUTH providers when the configuration parameters are adapted manually. The connector provides the rows of the resultset as objects with properties for each column rather than an array of strings. ## Supported Operations The connector supports the following operations: From 065cb6af7b15361bf1fda86149f54863ed4583de Mon Sep 17 00:00:00 2001 From: Daniel Laskewitz Date: Tue, 14 Dec 2021 03:02:31 +0100 Subject: [PATCH 186/219] [Independent-Publisher] Added ChuckNorris.IO connector (#855) * Added ChuckNorris.IO connector * Updated and validated connector * updated iconBrandColor * Added changes because of review * Update * Fixed property names * Updated readme --- .../ChuckNorris.io/README.md | 32 +++ .../ChuckNorris.io/apiDefinition.swagger.json | 193 ++++++++++++++++++ .../ChuckNorris.io/apiProperties.json | 9 + 3 files changed, 234 insertions(+) create mode 100644 independent-publisher-connectors/ChuckNorris.io/README.md create mode 100644 independent-publisher-connectors/ChuckNorris.io/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/ChuckNorris.io/apiProperties.json diff --git a/independent-publisher-connectors/ChuckNorris.io/README.md b/independent-publisher-connectors/ChuckNorris.io/README.md new file mode 100644 index 0000000000..5a23eac7f6 --- /dev/null +++ b/independent-publisher-connectors/ChuckNorris.io/README.md @@ -0,0 +1,32 @@ +# Chuck Norris (ChuckNorris.IO) + +Chuck Norris facts are satirical factoids about martial artist and actor Chuck Norris that have become an Internet phenomenon and as a result have become widespread in popular culture. The 'facts' are normally absurd hyperbolic claims about Norris' toughness, attitude, virility, sophistication, and masculinity. + +Chuck Norris facts have spread around the world, leading not only to translated versions, but also spawning localized versions mentioning country-specific advertisements and other Internet phenomena. Allusions are also sometimes made to his use of roundhouse kicks to perform seemingly any task, his large amount of body hair with specific regard to his beard, and his role in the action television series Walker, Texas Ranger. + +[chucknorris.io](https://chucknorris.io) is a free JSON API for hand curated Chuck Norris facts. + +## Publisher: Daniel Laskewitz | Sogeti + +## Prerequisites + +The [chucknorris.io](https://chucknorris.io) connector doesn't require authentication. + +## Supported Operations + +The connector supports the following operations: + +- `Get random Chuck Norris fact`: This action will give you a random Chuck Norris fact. +- `Search for Chuck Norris facts`: This action will let you search for Chuck Norris fact by a keyword. + +## Obtaining Credentials + +No credentials needed. + +## Known issues and limitations + +There are no known issues and limitations. + +## Deployment Instructions + +Upload the connector and choose no authentication as the authentication type. diff --git a/independent-publisher-connectors/ChuckNorris.io/apiDefinition.swagger.json b/independent-publisher-connectors/ChuckNorris.io/apiDefinition.swagger.json new file mode 100644 index 0000000000..99f81aa5bf --- /dev/null +++ b/independent-publisher-connectors/ChuckNorris.io/apiDefinition.swagger.json @@ -0,0 +1,193 @@ +{ + "swagger": "2.0", + "info": { + "title": "Chuck Norris IO", + "description": "This connector is an API provided by ChuckNorris.IO and will provide you with a Chuck Norris fact when you ask for it.", + "version": "1.0", + "contact": { + "name": "Daniel Laskewitz | Sogeti", + "url": "https://youtube.com/daniellaskewitz", + "email": "connectorsupport@laskewitz.io" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://api.chucknorris.io/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://api.chucknorris.io/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Lifestyle and Entertainment" + } + ], + "host": "api.chucknorris.io", + "basePath": "/jokes/", + "schemes": ["https"], + "consumes": [], + "produces": [], + "paths": { + "/random": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "icon_url": { + "type": "string", + "description": "Icon URL", + "x-ms-summary": "Icon URL", + "x-ms-visibility": "internal" + }, + "id": { + "type": "string", + "description": "ID", + "x-ms-summary": "ID", + "x-ms-visibility": "internal" + }, + "url": { + "type": "string", + "description": "url", + "x-ms-summary": "URL", + "x-ms-visibility": "internal" + }, + "value": { + "type": "string", + "description": "value", + "x-ms-summary": "Value" + } + } + } + } + }, + "summary": "Get random Chuck Norris fact", + "description": "This action will give you a random Chuck Norris fact", + "operationId": "GetRandomChuckNorrisFact", + "parameters": [ + { + "name": "category", + "in": "query", + "required": false, + "type": "string", + "description": "Select a category", + "x-ms-dynamic-values": { + "operationId": "GetCategories" + }, + "x-ms-summary": "Category" + } + ] + } + }, + "/categories": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "string", + "x-ms-summary": "Categories" + } + } + } + }, + "summary": "Get Chuck Norris fact categories", + "description": "This action will get all the possible categories of Chuck Norris facts", + "operationId": "GetCategories", + "parameters": [], + "x-ms-visibility": "internal" + } + }, + "/search": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "description": "Total", + "x-ms-summary": "Total", + "x-ms-visibility": "internal" + }, + "result": { + "type": "array", + "items": { + "type": "object", + "properties": { + "categories": { + "type": "array", + "items": {}, + "description": "Categories" + }, + "created_at": { + "type": "string", + "description": "Created at", + "x-ms-summary": "Created at" + }, + "icon_url": { + "type": "string", + "description": "Icon URL", + "x-ms-summary": "Icon URL" + }, + "id": { + "type": "string", + "description": "ID", + "x-ms-summary": "ID", + "x-ms-visibility": "internal" + }, + "updated_at": { + "type": "string", + "description": "Updated at", + "x-ms-summary": "Updated at" + }, + "url": { + "type": "string", + "description": "URL", + "x-ms-summary": "URL" + }, + "value": { + "type": "string", + "description": "Value", + "x-ms-summary": "Value" + } + } + }, + "description": "result" + } + } + } + } + }, + "summary": "Search for Chuck Norris facts", + "description": "This action will let you search for Chuck Norris facts by a keyword", + "operationId": "SearchChuckNorrisFacts", + "parameters": [ + { + "name": "query", + "in": "query", + "required": true, + "type": "string", + "description": "Enter your query here", + "x-ms-summary": "Query" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} diff --git a/independent-publisher-connectors/ChuckNorris.io/apiProperties.json b/independent-publisher-connectors/ChuckNorris.io/apiProperties.json new file mode 100644 index 0000000000..46478c7659 --- /dev/null +++ b/independent-publisher-connectors/ChuckNorris.io/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#000000", + "capabilities": [], + "publisher": "Daniel Laskewitz", + "stackOwner": "ChuckNorris.io" + } +} From e756d57819b99bc5d8cc320d91f6a0b3d142d579 Mon Sep 17 00:00:00 2001 From: Daniel Laskewitz Date: Tue, 14 Dec 2021 03:03:04 +0100 Subject: [PATCH 187/219] [Independent-Publisher] Added icanhazdadjoke.com connector (#857) * Added icanhazdadjoke connector * Fixes review * Updated connector metadata * Fixed property names * Updated readme --- .../icanhazdadjoke/README.md | 28 +++ .../icanhazdadjoke/apiDefinition.swagger.json | 207 ++++++++++++++++++ .../icanhazdadjoke/apiProperties.json | 9 + 3 files changed, 244 insertions(+) create mode 100644 independent-publisher-connectors/icanhazdadjoke/README.md create mode 100644 independent-publisher-connectors/icanhazdadjoke/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/icanhazdadjoke/apiProperties.json diff --git a/independent-publisher-connectors/icanhazdadjoke/README.md b/independent-publisher-connectors/icanhazdadjoke/README.md new file mode 100644 index 0000000000..32762550aa --- /dev/null +++ b/independent-publisher-connectors/icanhazdadjoke/README.md @@ -0,0 +1,28 @@ +# icanhazdadjoke ([icanhazdadjoke.com](https://icanhazdadjoke.com)) + +[icanhazdadjoke.com](https://icanhazdadjoke.com) is the largest selection of dad jokes on the internet. Now supporting many different integrations to ensure you can access the dad jokes that you need wherever you are. + +## Publisher: Daniel Laskewitz | Sogeti + +## Prerequisites + +The [icanhazdadjoke.com](https://icanhazdadjoke.com) connector doesn't require authentication. + +## Supported Operations + +The connector supports the following operations: + +- `Fetch a random dad joke`: This action will fetch a random dad joke. +- `Search for dad jokes`: This action will let you search for dad jokes. + +## Obtaining Credentials + +No credentials needed. + +## Known issues and limitations + +There are no known issues and limitations. + +## Deployment Instructions + +Upload the connector and choose no authentication as the authentication type. diff --git a/independent-publisher-connectors/icanhazdadjoke/apiDefinition.swagger.json b/independent-publisher-connectors/icanhazdadjoke/apiDefinition.swagger.json new file mode 100644 index 0000000000..ea86d941bd --- /dev/null +++ b/independent-publisher-connectors/icanhazdadjoke/apiDefinition.swagger.json @@ -0,0 +1,207 @@ +{ + "swagger": "2.0", + "info": { + "title": "icanhazdadjoke", + "description": "With this connector you can get a random dad joke or search for a dad joke.", + "version": "1.0", + "contact": { + "name": "Daniel Laskewitz", + "url": "https://youtube.com/daniellaskewitz", + "email": "daniel@laskewitz.io" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://icanhazdadjoke.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://icanhazdadjoke.com/about" + }, + { + "propertyName": "Categories", + "propertyValue": "Lifestyle and Entertainment" + } + ], + "host": "icanhazdadjoke.com", + "basePath": "/", + "schemes": ["https"], + "consumes": [], + "produces": [], + "paths": { + "/": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "id", + "x-ms-summary": "ID", + "x-ms-visibility": "internal" + }, + "joke": { + "type": "string", + "description": "joke", + "x-ms-summary": "Joke" + }, + "status": { + "type": "integer", + "format": "int32", + "description": "status", + "x-ms-summary": "Status", + "x-ms-visibility": "internal" + } + } + } + } + }, + "summary": "Fetch a random dad joke", + "description": "Fetch a random dad joke from icanhazdadjoke.com", + "operationId": "FetchRandomJoke", + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/search": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "current_page": { + "type": "integer", + "format": "int32", + "description": "Current page", + "title": "Current page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "Limit", + "x-ms-summary": "Limit" + }, + "next_page": { + "type": "integer", + "format": "int32", + "description": "Next page", + "x-ms-summary": "Next page" + }, + "previous_page": { + "type": "integer", + "format": "int32", + "description": "Previous page", + "x-ms-summary": "Previous page" + }, + "results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID", + "x-ms-summary": "ID", + "x-ms-visibility": "internal" + }, + "joke": { + "type": "string", + "description": "Joke", + "x-ms-summary": "Joke" + } + } + }, + "description": "results" + }, + "search_term": { + "type": "string", + "description": "Search term", + "x-ms-summary": "Search term", + "x-ms-visibility": "internal" + }, + "status": { + "type": "integer", + "format": "int32", + "description": "Status", + "x-ms-summary": "Status", + "x-ms-visibility": "internal" + }, + "total_jokes": { + "type": "integer", + "format": "int32", + "description": "Total jokes", + "x-ms-summary": "Total jokes" + }, + "total_pages": { + "type": "integer", + "format": "int32", + "description": "Total pages", + "x-ms-summary": "Total pages" + } + } + } + } + }, + "summary": "Search for dad jokes", + "description": "Search for dad jokes", + "operationId": "SearchForDadJokes", + "parameters": [ + { + "name": "page", + "in": "query", + "description": "enter a page number", + "required": false, + "type": "integer", + "x-ms-summary": "Page" + }, + { + "name": "limit", + "in": "query", + "required": false, + "type": "integer", + "default": 20, + "x-ms-summary": "Limit", + "description": "max 30" + }, + { + "name": "term", + "in": "query", + "required": false, + "type": "string", + "default": "list all jokes", + "description": "enter a query in this field", + "x-ms-summary": "Term" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [] +} diff --git a/independent-publisher-connectors/icanhazdadjoke/apiProperties.json b/independent-publisher-connectors/icanhazdadjoke/apiProperties.json new file mode 100644 index 0000000000..b6c91e07f8 --- /dev/null +++ b/independent-publisher-connectors/icanhazdadjoke/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "#000000", + "capabilities": [], + "publisher": "Daniel Laskewitz", + "stackOwner": "icanhazdadjoke.com" + } +} From 2522d4780b06d0d860f526ccff1606be9532f0c1 Mon Sep 17 00:00:00 2001 From: Taiki Yoshida Date: Thu, 16 Dec 2021 16:18:15 -0800 Subject: [PATCH 188/219] AfterShip (Independent Publisher) (#1260) * Adding AfterShip independent publisher connectors * Update apiProperties.json * Updated description and metadata * Update apiDefinition.swagger.json * Fixed categories --- .../AfterShip/apiDefinition.swagger.json | 2744 +++++++++++++++++ .../AfterShip/apiProperties.json | 23 + .../AfterShip/readme.md | 54 + 3 files changed, 2821 insertions(+) create mode 100644 independent-publisher-connectors/AfterShip/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/AfterShip/apiProperties.json create mode 100644 independent-publisher-connectors/AfterShip/readme.md diff --git a/independent-publisher-connectors/AfterShip/apiDefinition.swagger.json b/independent-publisher-connectors/AfterShip/apiDefinition.swagger.json new file mode 100644 index 0000000000..bf7ce13c9f --- /dev/null +++ b/independent-publisher-connectors/AfterShip/apiDefinition.swagger.json @@ -0,0 +1,2744 @@ +{ + "swagger": "2.0", + "info": { + "title": "AfterShip", + "description": "AfterShip is a shipment tracking solution. It partners with over 900 carriers across the globe including popular services such as FedEx, DHL etc. This connector allows a user to track and receive notifications on shipments and integrate with other services such as Dynamics 365 and third party services to strengthen your ecommerce or streamline your internal business processes.", + "version": "1.0", + "contact": { + "name": "Taiki Yoshida", + "url": "https://memo.tyoshida.me/power-platform/connectors/aftership-connector/", + "email": "tayoshi@microsoft.com" + } + }, + "host": "api.aftership.com", + "basePath": "/v4", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/couriers": { + "get": { + "summary": "Get user activated couriers", + "description": "Return a list of [couriers activated at your AfterShip account](https://admin.aftership.com/settings/couriers).", + "operationId": "GetUserActivatedCouriers", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "description": "total" + }, + "couriers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "name": { + "type": "string", + "description": "Name" + }, + "phone": { + "type": "string", + "description": "Phone number" + }, + "other_name": { + "type": "string", + "description": "Alternative name" + }, + "web_url": { + "type": "string", + "description": "URL of the website" + }, + "required_fields": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required fields" + }, + "optional_fields": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional fields" + }, + "default_language": { + "type": "string", + "description": "Default language" + }, + "support_languages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Supported languages" + }, + "service_from_country_iso3": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Country code of the service in ISO3 format" + } + } + }, + "description": "Couriers information" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/couriers/detect": { + "post": { + "summary": "Detect courier", + "description": "Return a list of matched couriers based on tracking number format and [selected couriers](https://admin.aftership.com/settings/couriers) or a list of couriers.", + "operationId": "DetectCourier", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "tracking_number": { + "type": "string", + "description": "Tracking number" + } + }, + "description": "tracking" + } + }, + "default": { + "tracking": { + "tracking_number": "906587618687" + } + }, + "x-ms-visibility": "important" + }, + "required": true, + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "description": "total" + }, + "couriers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "name": { + "type": "string", + "description": "Name" + }, + "phone": { + "type": "string", + "description": "Phone number" + }, + "other_name": { + "type": "string", + "description": "Alternative name" + }, + "web_url": { + "type": "string", + "description": "URL of the website" + }, + "required_fields": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Required fields" + }, + "optional_fields": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional fields" + }, + "default_language": { + "type": "string", + "description": "Default language" + }, + "support_languages": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Supported languages" + }, + "service_from_country_iso3": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Country code of the service in ISO3 format" + } + } + }, + "description": "Couriers information" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/couriers/all": { + "get": { + "summary": "Get all couriers", + "description": "Return a list of all couriers.", + "operationId": "GetAllCouriers", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "total": { + "type": "integer", + "format": "int32", + "description": "total" + }, + "couriers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "name": { + "type": "string", + "description": "Name" + }, + "phone": { + "type": "string", + "description": "Phone number" + }, + "other_name": { + "type": "string", + "description": "Alternative name" + }, + "web_url": { + "type": "string", + "description": "URL of the website" + }, + "required_fields": { + "type": "array", + "items": {}, + "description": "Required fields" + }, + "optional_fields": { + "type": "array", + "items": {}, + "description": "Optional fields" + } + } + }, + "description": "Couriers information" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/trackings": { + "get": { + "summary": "Get trackings", + "description": "Get tracking results of multiple trackings.", + "operationId": "GetTrackings", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "page": { + "type": "integer", + "format": "int32", + "description": "page" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "limit" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "count" + }, + "keyword": { + "type": "string", + "description": "keyword" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "origin": { + "type": "array", + "items": {}, + "description": "origin" + }, + "destination": { + "type": "array", + "items": {}, + "description": "destination" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "fields": { + "type": "string", + "description": "fields" + }, + "created_at_min": { + "type": "string", + "description": "created_at_min" + }, + "created_at_max": { + "type": "string", + "description": "created_at_max" + }, + "last_updated_at": { + "type": "string", + "description": "Last updated date and time" + }, + "return_to_sender": { + "type": "array", + "items": {}, + "description": "return_to_sender" + }, + "courier_destination_country_iso3": { + "type": "array", + "items": {}, + "description": "Courier country code in ISO 3 format" + }, + "trackings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "updated_at": { + "type": "string", + "description": "Updated date and time" + }, + "last_updated_at": { + "type": "string", + "description": "Last updated date and time" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "active": { + "type": "boolean", + "description": "Active or inactive tracking" + }, + "android": { + "type": "array", + "items": {}, + "description": "Android" + }, + "custom_fields": { + "type": "string", + "description": "Custom fields" + }, + "customer_name": { + "type": "string", + "description": "Customer Name" + }, + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Delivery date and time" + }, + "destination_country_iso3": { + "type": "string", + "description": "Destination country code in ISO 3 format" + }, + "courier_destination_country_iso3": { + "type": "string", + "description": "Courier country code in ISO 3 format" + }, + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Email addresses" + }, + "expected_delivery": { + "type": "string", + "description": "Expected delivery date and time" + }, + "ios": { + "type": "array", + "items": {}, + "description": "iOS" + }, + "note": { + "type": "string", + "description": "Notes" + }, + "order_id": { + "type": "string", + "description": "Order ID" + }, + "order_id_path": { + "type": "string", + "description": "Order ID path" + }, + "origin_country_iso3": { + "type": "string", + "description": "Originating country code in ISO 3 format" + }, + "shipment_package_count": { + "type": "integer", + "format": "int32", + "description": "Number of packages in the shipment" + }, + "shipment_pickup_date": { + "type": "string", + "description": "Date and time of packages picked up" + }, + "shipment_delivery_date": { + "type": "string", + "description": "Date and time of packages delivered" + }, + "shipment_type": { + "type": "string", + "description": "Type of shipment" + }, + "shipment_weight": { + "type": "string", + "description": "Weight of shipment" + }, + "shipment_weight_unit": { + "type": "string", + "description": "Unit of shipment weight" + }, + "signed_by": { + "type": "string", + "description": "Signed by" + }, + "smses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SMS" + }, + "source": { + "type": "string", + "description": "Source" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "title": { + "type": "string", + "description": "title" + }, + "tracked_count": { + "type": "integer", + "format": "int32", + "description": "Number of times tracked" + }, + "last_mile_tracking_supported": { + "type": "string", + "description": "Last mile tracking is supported" + }, + "language": { + "type": "string", + "description": "Language" + }, + "unique_token": { + "type": "string", + "description": "Unique token" + }, + "checkpoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "city": { + "type": "string", + "description": "City" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "location": { + "type": "string", + "description": "Location" + }, + "country_name": { + "type": "string", + "description": "Country name" + }, + "message": { + "type": "string", + "description": "Message" + }, + "country_iso3": { + "type": "string", + "description": "Country code in ISO 3 format" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "checkpoint_time": { + "type": "string", + "description": "Time reached checkpoint" + }, + "coordinates": { + "type": "array", + "items": {}, + "description": "Coordinates" + }, + "state": { + "type": "string", + "description": "State" + }, + "zip": { + "type": "string", + "description": "Zip code" + }, + "raw_tag": { + "type": "string", + "description": "Raw tags" + } + } + }, + "description": "checkpoints" + }, + "subscribed_smses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "subscribed_smses" + }, + "subscribed_emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "subscribed_emails" + }, + "return_to_sender": { + "type": "boolean", + "description": "return_to_sender" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + }, + "order_promised_delivery_date": { + "type": "string", + "description": "order_promised_delivery_date" + }, + "delivery_type": { + "type": "string", + "description": "delivery_type" + }, + "pickup_location": { + "type": "string", + "description": "pickup_location" + }, + "pickup_note": { + "type": "string", + "description": "pickup_note" + }, + "courier_tracking_link": { + "type": "string", + "description": "courier_tracking_link" + }, + "courier_redirect_link": { + "type": "string", + "description": "courier_redirect_link" + }, + "first_attempted_at": { + "type": "string", + "description": "first_attempted_at" + } + } + }, + "description": "trackings" + } + }, + "description": "data" + } + } + } + } + } + }, + "post": { + "summary": "Create Tracking", + "description": "Create a tracking.", + "operationId": "CreateTracking", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "title": { + "type": "string", + "description": "title" + }, + "smses": { + "type": "array", + "items": {}, + "description": "SMS" + }, + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "order_id": { + "type": "string", + "description": "Order ID" + }, + "order_id_path": { + "type": "string", + "description": "Order ID path" + }, + "custom_fields": { + "type": "object", + "properties": { + "product_name": { + "type": "string", + "description": "product_name" + }, + "product_price": { + "type": "string", + "description": "product_price" + } + }, + "description": "Custom fields" + }, + "language": { + "type": "string", + "description": "Language" + }, + "order_promised_delivery_date": { + "type": "string", + "description": "order_promised_delivery_date" + }, + "delivery_type": { + "type": "string", + "description": "delivery_type" + }, + "pickup_location": { + "type": "string", + "description": "pickup_location" + }, + "pickup_note": { + "type": "string", + "description": "pickup_note" + } + }, + "description": "tracking" + } + }, + "default": { + "tracking": { + "slug": "dhl", + "tracking_number": "123456789", + "title": "Title Name", + "smses": [], + "emails": [], + "order_id": "ID 1234", + "order_id_path": "http://www.aftership.com/order_id=1234", + "custom_fields": { + "product_name": "iPhone Case", + "product_price": "USD19.99" + }, + "language": "en", + "order_promised_delivery_date": "2019-05-20", + "delivery_type": "pickup_at_store", + "pickup_location": "Flagship Store", + "pickup_note": "Reach out to our staffs when you arrive our stores for shipment pickup" + } + }, + "x-ms-visibility": "important" + }, + "required": true, + "x-ms-visibility": "important" + } + ], + "responses": { + "201": { + "description": "201", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "updated_at": { + "type": "string", + "description": "Updated date and time" + }, + "last_updated_at": { + "type": "string", + "description": "Last updated date and time" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "active": { + "type": "boolean", + "description": "Active or inactive tracking" + }, + "android": { + "type": "array", + "items": {}, + "description": "Android" + }, + "custom_fields": { + "type": "string", + "description": "Custom fields" + }, + "customer_name": { + "type": "string", + "description": "Customer Name" + }, + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Delivery date and time" + }, + "destination_country_iso3": { + "type": "string", + "description": "Destination country code in ISO 3 format" + }, + "courier_destination_country_iso3": { + "type": "string", + "description": "Courier country code in ISO 3 format" + }, + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "expected_delivery": { + "type": "string", + "description": "Expected delivery date and time" + }, + "ios": { + "type": "array", + "items": {}, + "description": "iOS" + }, + "note": { + "type": "string", + "description": "Notes" + }, + "order_id": { + "type": "string", + "description": "Order ID" + }, + "order_id_path": { + "type": "string", + "description": "Order ID path" + }, + "origin_country_iso3": { + "type": "string", + "description": "Originating country code in ISO 3 format" + }, + "shipment_package_count": { + "type": "integer", + "format": "int32", + "description": "Number of packages in the shipment" + }, + "shipment_pickup_date": { + "type": "string", + "description": "Date and time of packages picked up" + }, + "shipment_delivery_date": { + "type": "string", + "description": "Date and time of packages delivered" + }, + "shipment_type": { + "type": "string", + "description": "Type of shipment" + }, + "shipment_weight": { + "type": "integer", + "format": "int32", + "description": "Weight of shipment" + }, + "shipment_weight_unit": { + "type": "string", + "description": "Unit of shipment weight" + }, + "signed_by": { + "type": "string", + "description": "Signed by" + }, + "smses": { + "type": "array", + "items": {}, + "description": "SMS" + }, + "source": { + "type": "string", + "description": "Source" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "title": { + "type": "string", + "description": "title" + }, + "tracked_count": { + "type": "integer", + "format": "int32", + "description": "Number of times tracked" + }, + "last_mile_tracking_supported": { + "type": "boolean", + "description": "Last mile tracking is supported" + }, + "language": { + "type": "string", + "description": "Language" + }, + "unique_token": { + "type": "string", + "description": "Unique token" + }, + "checkpoints": { + "type": "array", + "items": {}, + "description": "checkpoints" + }, + "subscribed_smses": { + "type": "array", + "items": {}, + "description": "subscribed_smses" + }, + "subscribed_emails": { + "type": "array", + "items": {}, + "description": "subscribed_emails" + }, + "return_to_sender": { + "type": "boolean", + "description": "return_to_sender" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + }, + "order_promised_delivery_date": { + "type": "string", + "description": "order_promised_delivery_date" + }, + "delivery_type": { + "type": "string", + "description": "delivery_type" + }, + "pickup_location": { + "type": "string", + "description": "pickup_location" + }, + "pickup_note": { + "type": "string", + "description": "pickup_note" + }, + "courier_tracking_link": { + "type": "string", + "description": "courier_tracking_link" + }, + "courier_redirect_link": { + "type": "string", + "description": "courier_redirect_link" + }, + "first_attempted_at": { + "type": "string", + "description": "first_attempted_at" + } + }, + "description": "tracking" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/trackings/{slug}/{tracking_number}": { + "get": { + "summary": "Get a tracking", + "description": "Get tracking results of a single tracking.", + "operationId": "GetATracking", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "updated_at": { + "type": "string", + "description": "Updated date and time" + }, + "last_updated_at": { + "type": "string", + "description": "Last updated date and time" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "active": { + "type": "boolean", + "description": "Active or inactive tracking" + }, + "android": { + "type": "array", + "items": {}, + "description": "Android" + }, + "custom_fields": { + "type": "string", + "description": "Custom fields" + }, + "customer_name": { + "type": "string", + "description": "Customer Name" + }, + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Delivery date and time" + }, + "destination_country_iso3": { + "type": "string", + "description": "Destination country code in ISO 3 format" + }, + "courier_destination_country_iso3": { + "type": "string", + "description": "Courier country code in ISO 3 format" + }, + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "expected_delivery": { + "type": "string", + "description": "Expected delivery date and time" + }, + "ios": { + "type": "array", + "items": {}, + "description": "iOS" + }, + "note": { + "type": "string", + "description": "Notes" + }, + "order_id": { + "type": "string", + "description": "Order ID" + }, + "order_id_path": { + "type": "string", + "description": "Order ID path" + }, + "origin_country_iso3": { + "type": "string", + "description": "Originating country code in ISO 3 format" + }, + "shipment_package_count": { + "type": "integer", + "format": "int32", + "description": "Number of packages in the shipment" + }, + "shipment_pickup_date": { + "type": "string", + "description": "Date and time of packages picked up" + }, + "shipment_delivery_date": { + "type": "string", + "description": "Date and time of packages delivered" + }, + "shipment_type": { + "type": "string", + "description": "Type of shipment" + }, + "shipment_weight": { + "type": "integer", + "format": "int32", + "description": "Weight of shipment" + }, + "shipment_weight_unit": { + "type": "string", + "description": "Unit of shipment weight" + }, + "signed_by": { + "type": "string", + "description": "Signed by" + }, + "smses": { + "type": "array", + "items": {}, + "description": "SMS" + }, + "source": { + "type": "string", + "description": "Source" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "title": { + "type": "string", + "description": "title" + }, + "tracked_count": { + "type": "integer", + "format": "int32", + "description": "Number of times tracked" + }, + "last_mile_tracking_supported": { + "type": "string", + "description": "Last mile tracking is supported" + }, + "language": { + "type": "string", + "description": "Language" + }, + "unique_token": { + "type": "string", + "description": "Unique token" + }, + "checkpoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "city": { + "type": "string", + "description": "City" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "location": { + "type": "string", + "description": "Location" + }, + "country_name": { + "type": "string", + "description": "Country name" + }, + "message": { + "type": "string", + "description": "Message" + }, + "country_iso3": { + "type": "string", + "description": "Country code in ISO 3 format" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "checkpoint_time": { + "type": "string", + "description": "Time reached checkpoint" + }, + "coordinates": { + "type": "array", + "items": {}, + "description": "Coordinates" + }, + "state": { + "type": "string", + "description": "State" + }, + "zip": { + "type": "string", + "description": "Zip code" + }, + "raw_tag": { + "type": "string", + "description": "Raw tags" + } + } + }, + "description": "checkpoints" + }, + "subscribed_smses": { + "type": "array", + "items": {}, + "description": "subscribed_smses" + }, + "subscribed_emails": { + "type": "array", + "items": {}, + "description": "subscribed_emails" + }, + "return_to_sender": { + "type": "boolean", + "description": "return_to_sender" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + }, + "order_promised_delivery_date": { + "type": "string", + "description": "order_promised_delivery_date" + }, + "delivery_type": { + "type": "string", + "description": "delivery_type" + }, + "pickup_location": { + "type": "string", + "description": "pickup_location" + }, + "pickup_note": { + "type": "string", + "description": "pickup_note" + }, + "courier_tracking_link": { + "type": "string", + "description": "courier_tracking_link" + }, + "courier_redirect_link": { + "type": "string", + "description": "courier_redirect_link" + }, + "first_attempted_at": { + "type": "string", + "description": "first_attempted_at" + } + }, + "description": "tracking" + } + }, + "description": "data" + } + } + } + } + } + }, + "delete": { + "summary": "Delete a tracking", + "description": "Delete a tracking.", + "operationId": "DeleteATracking", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + } + }, + "description": "tracking" + } + }, + "description": "data" + } + } + } + } + } + }, + "put": { + "summary": "Update a tracking", + "description": "Update a tracking.", + "operationId": "UpdateATracking", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "title" + }, + "note": { + "type": "string", + "description": "Notes" + } + }, + "description": "tracking" + } + }, + "default": { + "tracking": { + "title": "New Title", + "note": "some notes" + } + }, + "x-ms-visibility": "important" + }, + "required": true, + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "updated_at": { + "type": "string", + "description": "Updated date and time" + }, + "last_updated_at": { + "type": "string", + "description": "Last updated date and time" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "active": { + "type": "boolean", + "description": "Active or inactive tracking" + }, + "android": { + "type": "array", + "items": {}, + "description": "Android" + }, + "custom_fields": { + "type": "string", + "description": "Custom fields" + }, + "customer_name": { + "type": "string", + "description": "Customer Name" + }, + "delivery_time": { + "type": "integer", + "format": "int32", + "description": "Delivery date and time" + }, + "destination_country_iso3": { + "type": "string", + "description": "Destination country code in ISO 3 format" + }, + "courier_destination_country_iso3": { + "type": "string", + "description": "Courier country code in ISO 3 format" + }, + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "expected_delivery": { + "type": "string", + "description": "Expected delivery date and time" + }, + "ios": { + "type": "array", + "items": {}, + "description": "iOS" + }, + "note": { + "type": "string", + "description": "Notes" + }, + "order_id": { + "type": "string", + "description": "Order ID" + }, + "order_id_path": { + "type": "string", + "description": "Order ID path" + }, + "origin_country_iso3": { + "type": "string", + "description": "Originating country code in ISO 3 format" + }, + "shipment_package_count": { + "type": "integer", + "format": "int32", + "description": "Number of packages in the shipment" + }, + "shipment_pickup_date": { + "type": "string", + "description": "Date and time of packages picked up" + }, + "shipment_delivery_date": { + "type": "string", + "description": "Date and time of packages delivered" + }, + "shipment_type": { + "type": "string", + "description": "Type of shipment" + }, + "shipment_weight": { + "type": "integer", + "format": "int32", + "description": "Weight of shipment" + }, + "shipment_weight_unit": { + "type": "string", + "description": "Unit of shipment weight" + }, + "signed_by": { + "type": "string", + "description": "Signed by" + }, + "smses": { + "type": "array", + "items": {}, + "description": "SMS" + }, + "source": { + "type": "string", + "description": "Source" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "title": { + "type": "string", + "description": "title" + }, + "tracked_count": { + "type": "integer", + "format": "int32", + "description": "Number of times tracked" + }, + "last_mile_tracking_supported": { + "type": "string", + "description": "Last mile tracking is supported" + }, + "language": { + "type": "string", + "description": "Language" + }, + "unique_token": { + "type": "string", + "description": "Unique token" + }, + "checkpoints": { + "type": "array", + "items": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "city": { + "type": "string", + "description": "City" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "location": { + "type": "string", + "description": "Location" + }, + "country_name": { + "type": "string", + "description": "Country name" + }, + "message": { + "type": "string", + "description": "Message" + }, + "country_iso3": { + "type": "string", + "description": "Country code in ISO 3 format" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "checkpoint_time": { + "type": "string", + "description": "Time reached checkpoint" + }, + "coordinates": { + "type": "array", + "items": {}, + "description": "Coordinates" + }, + "state": { + "type": "string", + "description": "State" + }, + "zip": { + "type": "string", + "description": "Zip code" + }, + "raw_tag": { + "type": "string", + "description": "Raw tags" + } + } + }, + "description": "checkpoints" + }, + "subscribed_smses": { + "type": "array", + "items": {}, + "description": "subscribed_smses" + }, + "subscribed_emails": { + "type": "array", + "items": {}, + "description": "subscribed_emails" + }, + "return_to_sender": { + "type": "boolean", + "description": "return_to_sender" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + }, + "order_promised_delivery_date": { + "type": "string", + "description": "order_promised_delivery_date" + }, + "delivery_type": { + "type": "string", + "description": "delivery_type" + }, + "pickup_location": { + "type": "string", + "description": "pickup_location" + }, + "pickup_note": { + "type": "string", + "description": "pickup_note" + }, + "courier_tracking_link": { + "type": "string", + "description": "courier_tracking_link" + }, + "courier_redirect_link": { + "type": "string", + "description": "courier_redirect_link" + }, + "first_attempted_at": { + "type": "string", + "description": "first_attempted_at" + } + }, + "description": "tracking" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/trackings/{slug}/{tracking_number}/retrack": { + "post": { + "summary": "Retrack an expired tracking", + "description": "Retrack an expired tracking. Max 3 times per tracking.", + "operationId": "RetrackAnExpiredTracking", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + }, + "message": { + "type": "string", + "description": "Message" + }, + "type": { + "type": "string", + "description": "type" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "tracking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "tracking_account_number": { + "type": "string", + "description": "tracking_account_number" + }, + "tracking_origin_country": { + "type": "string", + "description": "tracking_origin_country" + }, + "tracking_destination_country": { + "type": "string", + "description": "tracking_destination_country" + }, + "tracking_key": { + "type": "string", + "description": "tracking_key" + }, + "tracking_postal_code": { + "type": "string", + "description": "tracking_postal_code" + }, + "tracking_ship_date": { + "type": "string", + "description": "tracking_ship_date" + }, + "tracking_state": { + "type": "string", + "description": "tracking_state" + }, + "active": { + "type": "boolean", + "description": "Active or inactive tracking" + } + }, + "description": "tracking" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/trackings/{slug}/{tracking_number}/mark-as-completed": { + "post": { + "summary": "Mark tracking as completed", + "description": "Mark a tracking as completed. The tracking won't auto update until retrack it.", + "operationId": "MarkTrackingAsCompleted", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "fedex", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "reason": { + "type": "string", + "description": "reason", + "x-ms-visibility": "important", + "enum": [ + "DELIVERED", + "LOST", + "RETURNED_TO_SENDER" + ] + } + }, + "default": { + "reason": "RETURNED_TO_SENDER" + }, + "x-ms-visibility": "important" + }, + "required": true, + "x-ms-visibility": "important" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + }, + "message": { + "type": "string", + "description": "Message" + }, + "type": { + "type": "string", + "description": "type" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": {}, + "description": "data" + } + } + } + } + } + } + }, + "/notifications/{slug}/{tracking_number}": { + "get": { + "summary": "Get tracking notification", + "description": "Get contact information for the users to notify when the tracking changes. Please note that only customer receivers will be returned. Any `email`, `sms` or `webhook` that belongs to the Store will not be returned.", + "operationId": "GetTrackingNotification", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "notification": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "smses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SMS" + } + }, + "description": "notification" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/notifications/{slug}/{tracking_number}/add": { + "post": { + "summary": "Add a notification", + "description": "Add notification receivers to a tracking number.", + "operationId": "AddANotification", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true, + "x-ms-visibility": "important" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "notification": { + "type": "object", + "properties": { + "emails": { + "type": "object", + "properties": {}, + "description": "Email addresses" + }, + "smses": { + "type": "object", + "properties": {}, + "description": "SMS" + } + }, + "description": "notification" + } + }, + "default": { + "notification": { + "emails": {}, + "smses": {} + } + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "notification": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "smses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SMS" + } + }, + "description": "notification" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/notifications/{slug}/{tracking_number}/remove": { + "post": { + "summary": "Remove a notification", + "description": "Remove notification receivers from a tracking number.", + "operationId": "RemoveANotification", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "notification": { + "type": "object", + "properties": { + "emails": { + "type": "object", + "properties": {}, + "description": "Email addresses" + }, + "smses": { + "type": "object", + "properties": {}, + "description": "SMS" + } + }, + "description": "notification" + } + }, + "default": { + "notification": { + "emails": {}, + "smses": {} + } + } + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "notification": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "items": {}, + "description": "Email addresses" + }, + "smses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SMS" + } + }, + "description": "notification" + } + }, + "description": "data" + } + } + } + } + } + } + }, + "/last_checkpoint/{slug}/{tracking_number}": { + "get": { + "summary": "Get last checkpoint", + "description": "Return the tracking information of the last checkpoint of a single tracking.", + "operationId": "GetLastCheckpoint", + "parameters": [ + { + "name": "slug", + "description": "Courier slug", + "x-ms-summary": "Courier slug", + "default": "FedEx", + "in": "path", + "type": "string", + "required": true + }, + { + "name": "tracking_number", + "description": "Enter the tracking number", + "x-ms-summary": "Tracking number", + "default": "123456789", + "in": "path", + "type": "string", + "required": true + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "description": "Content-Type", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "meta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "description": "code" + } + }, + "description": "meta" + }, + "data": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID" + }, + "tracking_number": { + "type": "string", + "description": "Tracking number" + }, + "slug": { + "type": "string", + "description": "Courier Name" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "checkpoint": { + "type": "object", + "properties": { + "slug": { + "type": "string", + "description": "Courier Name" + }, + "created_at": { + "type": "string", + "description": "Created date and time" + }, + "checkpoint_time": { + "type": "string", + "description": "Time reached checkpoint" + }, + "city": { + "type": "string", + "description": "City" + }, + "coordinates": { + "type": "array", + "items": {}, + "description": "Coordinates" + }, + "country_iso3": { + "type": "string", + "description": "Country code in ISO 3 format" + }, + "country_name": { + "type": "string", + "description": "Country name" + }, + "message": { + "type": "string", + "description": "Message" + }, + "state": { + "type": "string", + "description": "State" + }, + "tag": { + "type": "string", + "description": "Tags" + }, + "subtag": { + "type": "string", + "description": "Sub tags" + }, + "subtag_message": { + "type": "string", + "description": "Sub tag messages" + }, + "zip": { + "type": "string", + "description": "Zip code" + }, + "raw_tag": { + "type": "string", + "description": "Raw tags" + } + }, + "description": "checkpoint" + } + }, + "description": "data" + } + } + } + } + } + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "api_key": { + "type": "apiKey", + "in": "header", + "name": "aftership-api-key" + } + }, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.aftership.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.automizely.com/legal/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Commerce" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/AfterShip/apiProperties.json b/independent-publisher-connectors/AfterShip/apiProperties.json new file mode 100644 index 0000000000..65cc20b640 --- /dev/null +++ b/independent-publisher-connectors/AfterShip/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Key", + "description": "The app/subscription API key issued by AfterShip", + "tooltip": "Provide your API Key", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Taiki Yoshida", + "stackOwner": "AfterShip Ltd." + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/AfterShip/readme.md b/independent-publisher-connectors/AfterShip/readme.md new file mode 100644 index 0000000000..6adcf261cf --- /dev/null +++ b/independent-publisher-connectors/AfterShip/readme.md @@ -0,0 +1,54 @@ +# AfterShip +AfterShip is a shipment tracking solution. It partners with over 900 carriers across the globe including popular services such as FedEx, DHL etc. This connector allows a user to track and receive notifications on shipments and integrate with other services such as Dynamics 365 and third party services to strengthen your ecommerce or streamline your internal business processes. + +## Publisher: Taiki Yoshida + +## Prerequisites +Sign-up free from https://www.aftership.com/ to create an API key. For more information on creating the API keys are available from https://developers.aftership.com/reference/quick-start + +## Supported Operations +### Detect courier +Get a list of matched couriers based on tracking number format and selected couriers or a list of couriers. + +### Get all couriers +Get a list of all couriers supported by AfterShip + +### Get user activated couriers +Get a list of couriers activated at your AfterShip account. + +### Create a tracking +Create a tracking on a shipment that you would like to track. + +### Update a tracking +Update a shipment tracking with additional information such as titles, memos etc. + +### Get a tracking +Get tracking results of multiple shipment trackings which you created. + +### Delete a tracking +Delete an existing shipment tracking. + +### Mark tracking as completed +Mark a tracking as completed. The tracking won't auto update until retrack it. +You can mark it as either delivered, lost or returned to sender. + +### Retrack an expired tracking +Retrack an expired tracking. Max 3 times per tracking. + +### Get last checkpoint +Return the tracking information of the last checkpoint of a single tracking. + +### Add a notification +Add notification receivers to a tracking number. + +### Remove a notification +Remove notification receivers from a tracking number. + +### Get tracking notification +Get contact information for the users to notify when the tracking changes. Note that only customer receivers will be returned. Any email, sms or webhook that belongs to the Store will not be returned. + +## API Documentation +https://developers.aftership.com/reference/ + +## Known Issues and Limitations +None. \ No newline at end of file From 41bb2ab142133a508b5e570d39e8068e8f36ff8e Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 16 Dec 2021 19:18:56 -0500 Subject: [PATCH 189/219] Square Business (Independent Publisher) (#1254) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload * Delete independent-publisher-connectors/Square Payments directory * Add files via upload --- .../apiDefinition.swagger.json | 8820 +++++++++++++++++ .../Square Business/apiProperties.json | 47 + .../Square Business/readme.md | 159 + 3 files changed, 9026 insertions(+) create mode 100644 independent-publisher-connectors/Square Business/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Square Business/apiProperties.json create mode 100644 independent-publisher-connectors/Square Business/readme.md diff --git a/independent-publisher-connectors/Square Business/apiDefinition.swagger.json b/independent-publisher-connectors/Square Business/apiDefinition.swagger.json new file mode 100644 index 0000000000..0665708163 --- /dev/null +++ b/independent-publisher-connectors/Square Business/apiDefinition.swagger.json @@ -0,0 +1,8820 @@ +{ + "swagger": "2.0", + "info": { + "title": "Square Business", + "description": "Square helps millions of sellers run their business - from secure credit card processing to point of sale solutions. This connector contains actions for the following endpoints: Loyalty, Gift Cards, Bookings, Business, Team, Financials, Online and Auth.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.troystaylor.com", + "email": "troy@troystaylor.com" + } + }, + "host": "connect.squareupsandbox.com", + "basePath": "/v2", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [], + "paths": { + "/bank-accounts": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "bank_accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "account_number_suffix": { + "type": "string", + "description": "The last few digits of the account number.", + "title": "Account Number Suffix" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "account_type": { + "type": "string", + "description": "The financial purpose of the associated bank account.", + "title": "Account Type" + }, + "holder_name": { + "type": "string", + "description": "Name of the account holder. This name must match the name on the targeted bank account record.", + "title": "Holder Name" + }, + "primary_bank_identification_number": { + "type": "string", + "description": "Primary identifier for the bank.", + "title": "Primary Bank Identification Number" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "creditable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to send money to this bank account.", + "title": "Creditable" + }, + "debitable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to send money to this bank account.", + "title": "Debitable" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "bank_name": { + "type": "string", + "description": "Name of actual financial institution.", + "title": "Bank Name" + } + } + }, + "title": "Bank Account" + } + } + } + } + }, + "summary": "List bank accounts", + "description": "Returns a list of BankAccount objects linked to a Square account.", + "operationId": "BankAccountList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + } + ] + } + }, + "/bank-accounts/by-v1-id/{v1_bank_account_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "bank_account": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "account_number_suffix": { + "type": "string", + "description": "The last few digits of the account number.", + "title": "Account Number Suffix" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "account_type": { + "type": "string", + "description": "The type of the account.", + "title": "Account Type" + }, + "holder_name": { + "type": "string", + "description": "Name of the account holder.", + "title": "Holder Name" + }, + "primary_bank_identification_number": { + "type": "string", + "description": "Primary identifier for the bank.", + "title": "Primary Bank Identification Number" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "creditable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to send money to this account.", + "title": "Creditable" + }, + "debitable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to take money from this account.", + "title": "Debitable" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "bank_name": { + "type": "string", + "description": "Name of actual financial institution.", + "title": "Bank Name" + } + }, + "title": "Bank Account" + } + } + } + } + }, + "summary": "Get bank account by V1 ID", + "description": "Returns details of a BankAccount identified by V1 bank account ID.", + "operationId": "BankAccountGetV1", + "parameters": [ + { + "name": "v1_bank_account_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "Connect V1 ID of the desired BankAccount.", + "x-ms-summary": "V1 Bank Account ID" + } + ] + } + }, + "/bank-accounts/{bank_account_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "bank_account": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "account_number_suffix": { + "type": "string", + "description": "The last few digits of the account number.", + "title": "Account Number Suffix" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "account_type": { + "type": "string", + "description": "The type of the account.", + "title": "Account Type" + }, + "holder_name": { + "type": "string", + "description": "Name of the account holder.", + "title": "Holder Name" + }, + "primary_bank_identification_number": { + "type": "string", + "description": "Primary identifier for the bank.", + "title": "Primary Bank Identification Number" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "creditable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to send money to this account.", + "title": "Creditable" + }, + "debitable": { + "type": "boolean", + "description": "Indicates whether it is possible for Square to take money from this account.", + "title": "Debitable" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "bank_name": { + "type": "string", + "description": "Name of actual financial institution.", + "title": "Bank Name" + } + }, + "title": "Bank Account" + } + } + } + } + }, + "summary": "Get bank account", + "description": "Returns details of a BankAccount linked to a Square account.", + "operationId": "BankAccountGet", + "parameters": [ + { + "name": "bank_account_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "description": "Square-issued ID of the desired BankAccount.", + "x-ms-summary": "Bank Account ID" + } + ] + } + }, + "/bookings": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "booking": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "customer_note": { + "type": "string", + "description": "The free-text field for the customer to supply notes about the booking.", + "title": "Customer Note" + }, + "seller_note": { + "type": "string", + "description": "The free-text field for the seller to supply notes about the booking.", + "title": "Seller Note" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "appointment_segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "duration_minutes": { + "type": "integer", + "format": "int32", + "description": "The time span in minutes of an appointment segment.", + "title": "Duration Minutes" + }, + "service_variation_id": { + "type": "string", + "description": "The ID of the CatalogItemVariation object representing the service booked in this segment.", + "title": "Service Variation ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object representing the team member booked in this segment.", + "title": "Team Member ID" + }, + "service_variation_version": { + "type": "integer", + "format": "int32", + "description": "The current version of the item variation representing the service booked in this segment.", + "title": "Service Variation Version" + } + } + }, + "title": "Appointment Segment" + } + }, + "title": "Booking" + }, + "errors": { + "type": "array", + "items": {}, + "title": "Errors" + } + } + } + } + }, + "summary": "Create booking (Beta)", + "description": "Creates a booking.", + "operationId": "BookingCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "booking": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "appointment_segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "duration_minutes": { + "type": "integer", + "format": "int32", + "description": "The time span in minutes of an appointment segment.", + "title": "Duration Minutes" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object representing the team member booked in this segment.", + "title": "Team Member ID" + }, + "service_variation_id": { + "type": "string", + "description": "The ID of the CatalogItemVariation object representing the service booked in this segment.", + "title": "Service Variation ID" + }, + "service_variation_version": { + "type": "integer", + "format": "int32", + "description": "The current version of the item variation representing the service booked in this segment.", + "title": "Service Variation Version" + } + } + }, + "title": "Appointment Segment" + } + }, + "title": "Booking" + } + } + } + } + ] + } + }, + "/bookings/availability/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "availabilities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "start_at": { + "type": "string", + "description": "The RFC 3339 timestamp specifying the beginning time of the slot available.", + "title": "Start At" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "appointment_segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "duration_minutes": { + "type": "integer", + "format": "int32", + "description": "The time span in minutes of an appointment segment.", + "title": "Duration Minutes" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object representing the team member booked in this segment.", + "title": "Team Member ID" + }, + "service_variation_id": { + "type": "string", + "description": "The ID of the CatalogItemVariation object representing the service booked in this segment.", + "title": "Service Variation ID" + }, + "service_variation_version": { + "type": "integer", + "format": "int32", + "description": "The current version of the item variation representing the service booked in this segment.", + "title": "Service Variation Version" + } + } + }, + "title": "Appointment Segments" + } + } + }, + "title": "Availabilities" + }, + "errors": { + "type": "array", + "items": {}, + "title": "Errors" + } + } + } + } + }, + "summary": "Search availability (Beta)", + "description": "Searches for availabilities for booking.", + "operationId": "BookingAvailability", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "start_at_range": { + "type": "object", + "properties": { + "start_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range starts.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range ends.", + "title": "End At" + } + }, + "title": "Start At Range" + }, + "location_id": { + "type": "string", + "description": "The query expression to search for availabilities matching the specified seller location IDs.", + "title": "Location ID" + }, + "segment_filters": { + "type": "array", + "items": { + "type": "object", + "properties": { + "service_variation_id": { + "type": "string", + "description": "The ID of the CatalogItemVariation representing the service booked in this segment.", + "title": "Service Variation ID" + }, + "team_member_id_filter": { + "type": "object", + "properties": { + "any": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Any" + } + }, + "title": "Team Member ID Filter" + } + } + }, + "title": "Segment Filters" + } + }, + "title": "Filter" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/bookings/business-booking-profile": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "business_booking_profile": { + "type": "object", + "properties": { + "seller_id": { + "type": "string", + "description": "The ID of the seller, obtainable using the Merchants API.", + "title": "Seller ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "booking_enabled": { + "type": "boolean", + "description": "Indicates whether the seller is open for booking.", + "title": "Booking Enabled" + }, + "customer_timezone_choice": { + "type": "string", + "description": "The choice of customer's time zone information of a booking. The Square online booking site and all notifications to customers uses either the seller location’s time zone or the time zone the customer chooses at booking.", + "title": "Customer Timezone Choice" + }, + "booking_policy": { + "type": "string", + "description": "The policy for the seller to automatically accept booking requests (ACCEPT_ALL) or not (REQUIRES_ACCEPTANCE).", + "title": "Booking Policy" + }, + "allow_user_cancel": { + "type": "boolean", + "description": "Indicates whether customers can cancel or reschedule their own bookings (true) or not (false).", + "title": "Allow User Cancel" + }, + "business_appointment_settings": { + "type": "object", + "properties": { + "location_types": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location Types" + }, + "alignment_time": { + "type": "string", + "description": "The time unit of the service duration for bookings.", + "title": "Alignment Time" + }, + "min_booking_lead_time_seconds": { + "type": "integer", + "format": "int32", + "description": "The minimum lead time in seconds before a service can be booked. Bookings must be created at least this far ahead of the booking's starting time.", + "title": "Min Booking Tead Time Seconds" + }, + "max_booking_lead_time_seconds": { + "type": "integer", + "format": "int32", + "description": "The maximum lead time in seconds before a service can be booked. Bookings must be created at most this far ahead of the booking's starting time.", + "title": "Max Booking Lead Time Seconds" + }, + "any_team_member_booking_enabled": { + "type": "boolean", + "description": "Indicates whether a customer can choose from all available time slots and have a staff member assigned automatically (true) or not (false).", + "title": "Any Team Member Booking Enabled" + }, + "multiple_service_booking_enabled": { + "type": "boolean", + "description": "Indicates whether a customer can book multiple services in a single online booking.", + "title": "Multiple Service Booking Enabled" + }, + "cancellation_fee_money": { + "type": "object", + "properties": { + "amount": { + "type": "string", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format.", + "title": "Currency" + } + }, + "title": "Cancellation Fee Money" + }, + "cancellation_policy": { + "type": "string", + "description": "The cancellation policy adopted by the seller.", + "title": "Cancellation Policy" + }, + "skip_booking_flow_staff_selection": { + "type": "boolean", + "description": "Indicates whether customers has an assigned staff member (true) or can select s staff member of their choice (false).", + "title": "Skip Booking Flow Staff Selection" + } + }, + "title": "Business Appointment Settings" + } + }, + "title": "Business Booking Profile" + }, + "errors": { + "type": "array", + "items": {}, + "title": "Errors" + } + } + } + } + }, + "summary": "Retrieve business booking profile (Beta)", + "operationId": "BookingRetrieveProfile", + "description": "Retrieves a seller's booking profile.", + "parameters": [] + } + }, + "/bookings/team-member-booking-profiles": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member_booking_profiles": { + "type": "array", + "items": { + "type": "object", + "properties": { + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object for the team member associated with the object.", + "title": "Team Member ID" + }, + "display_name": { + "type": "string", + "description": "The display name of the team member.", + "title": "Display Name" + }, + "is_bookable": { + "type": "boolean", + "description": "Indicates whether the team member can be booked through the Bookings API or the seller's online booking channel or site (true) or not (false`).", + "title": "Is Bookable" + } + } + }, + "title": "Team Member Booking Profiles" + }, + "errors": { + "type": "array", + "items": {}, + "title": "Errors" + } + } + } + } + }, + "summary": "List team member booking profiles (Beta)", + "description": "Lists booking profiles for team members.", + "operationId": "BookingListTeamProfiles", + "parameters": [ + { + "name": "bookable_only", + "in": "query", + "description": "Indicates whether to include only bookable team members in the returned result (true) or not (false).", + "x-ms-summary": "Bookable Only", + "required": false, + "type": "boolean" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + } + ] + } + }, + "/cash-drawers/shifts": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "opened_at": { + "type": "string", + "description": "The shift start time in ISO 8601 format.", + "title": "Opened At" + }, + "ended_at": { + "type": "string", + "description": "The shift end time in ISO 8601 format.", + "title": "Ended At" + }, + "closed_at": { + "type": "string", + "description": "The shift close time in ISO 8601 format.", + "title": "Closed At" + }, + "title": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "opened_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Opened Cash Money" + }, + "expected_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Expected Cash Money" + }, + "closed_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Closed Cash Money" + } + } + }, + "title": "Items" + } + } + } + } + }, + "summary": "List cash drawer shifts", + "description": "Provides the details for all of the cash drawer shifts for a location in a date range.", + "operationId": "CashDrawerListShifts", + "parameters": [ + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + }, + { + "name": "begin_time", + "in": "query", + "description": "The inclusive start time of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "Begin Time", + "required": false, + "type": "string" + }, + { + "name": "end_time", + "in": "query", + "description": "The exclusive end date of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "End Time", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ] + } + }, + "/cash-drawers/shifts/{shift_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "cash_drawer_shift": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "opened_at": { + "type": "string", + "description": "The time when the shift began, in ISO 8601 format.", + "title": "Opened At" + }, + "ended_at": { + "type": "string", + "description": "The time when the shift ended, in ISO 8601 format.", + "title": "Ended At" + }, + "closed_at": { + "type": "string", + "description": "The time when closed, in ISO 8601 format.", + "title": "Closed At" + }, + "opening_employee_id": { + "type": "string", + "description": "The ID of the employee that started the cash drawer shift.", + "title": "Opening Employee ID" + }, + "ending_employee_id": { + "type": "string", + "description": "The ID of the employee that ended the cash drawer shift.", + "title": "Ending Employee ID" + }, + "closing_employee_id": { + "type": "string", + "description": "The ID of the employee that closed the cash drawer shift by auditing the cash drawer contents.", + "title": "Closing Employee ID" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "opened_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Opened Cash Money" + }, + "cash_payment_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Cash Payment Money" + }, + "cash_refunds_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Cash Refunds Money" + }, + "cash_paid_in_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Cash Paid In Money" + }, + "cash_paid_out_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Cash Paid Out Money" + }, + "expected_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Expected Cash Money" + }, + "closed_cash_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Closed Cash Money" + }, + "device": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Device" + } + }, + "title": "Cash Drawer Shift" + } + } + } + } + }, + "summary": "Retrieve cash drawer shift", + "description": "Provides the summary details for a single cash drawer shift.", + "operationId": "CashDrawerRetrieveShift", + "parameters": [ + { + "name": "shift_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Shift ID", + "description": "The identifier of the shift." + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": true, + "type": "string" + } + ] + } + }, + "/cash-drawers/shifts/{shift_id}/events": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "event_type": { + "type": "string", + "description": "The type of cash drawer shift event.", + "title": "Event Type" + }, + "event_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Event Money" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "title": { + "type": "string", + "description": "The description.", + "title": "Description" + } + } + }, + "title": "Events" + } + } + } + } + }, + "summary": "List cash drawer shift events", + "description": "Provides a paginated list of events for a single cash drawer shift.", + "operationId": "CashDrawerListEvents", + "parameters": [ + { + "name": "shift_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Shift ID", + "description": "The identifier of the shift." + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": true, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ] + } + }, + "/locations/{location_id}/checkouts": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "checkout": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "checkout_page_url": { + "type": "string", + "description": "The URL that the buyer's browser should be redirected to after the checkout is completed.", + "title": "Checkout Page URL" + }, + "ask_for_shipping_address": { + "type": "boolean", + "description": "If true, Square Checkout will collect shipping information on your behalf and store that information with the transaction information in your Square Dashboard.", + "title": "Ask for Shipping Address" + }, + "merchant_support_email": { + "type": "string", + "description": "The email address to display on the Square Checkout confirmation page and confirmation email that the buyer can use to contact the merchant.", + "title": "Merchant Support Email" + }, + "pre_populate_buyer_email": { + "type": "string", + "description": "If provided, the buyer's email is pre-populated on the checkout page as an editable text field.", + "title": "Pre-populate Buyer Email" + }, + "pre_populate_shipping_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + }, + "first_name": { + "type": "string", + "description": "Optional first name when it's representing recipient.", + "title": "First Name" + }, + "last_name": { + "type": "string", + "description": "Optional lsat name when it's representing recipient.", + "title": "Last Name" + } + }, + "title": "Pre-populate Shipping Address" + }, + "redirect_url": { + "type": "string", + "description": "The URL to redirect to after checkout is completed with checkoutId, Square's orderId, transactionId, and referenceId appended as URL parameters. For example, if the provided redirect_url is http://www.example.com/order-complete, a successful transaction redirects the customer to:

http://www.example.com/order-complete?checkoutId=xxxxxx&orderId=xxxxxx&referenceId=xxxxxx&transactionId=xxxxxx
If you do not provide a redirect URL, Square Checkout will display an order confirmation page on your behalf; however Square strongly recommends that you provide a redirect URL so you can verify the transaction results and finalize the order through your existing/normal confirmation workflow.", + "title": "Redirect URL" + }, + "order": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The query expression to search for availabilities matching the specified seller location IDs.", + "title": "Location ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "reference_id": { + "type": "string", + "description": "A client-specified ID to associate an entity in another system with this order.", + "title": "Reference ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the line item.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The quantity purchased, formatted as a decimal number. Line items with a quantity of 0 are automatically removed when paying for or otherwise completing the order.", + "title": "Quantity" + }, + "applied_taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tax_uid": { + "type": "string", + "description": "The UID of the tax for which this applied tax represents. It must reference a tax present in the order.taxes field. This field is immutable. To change which taxes apply to a line item, delete and add a new OrderLineItemAppliedTax.", + "title": "Tax UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Monetary amounts can be positive or negative. See the specific field description to determine the meaning of the sign in a particular case.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Taxes" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "discount_uid": { + "type": "string", + "description": "The UID of the discount that the applied discount represents. It must reference a discount present in the order.discounts field. This field is immutable. To change which discounts apply to a line item, you must delete the discount and re-add it as a new OrderLineItemAppliedDiscount.", + "title": "Discount UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Monetary amounts can be positive or negative. See the specific field description to determine the meaning of the sign in a particular case.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Discounts" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + } + } + }, + "title": "Line Items" + }, + "taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A unique ID.", + "title": "UID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage of the tax, as a string representation of a decimal number.", + "title": "Percentage" + }, + "scope": { + "type": "string", + "description": "Indicates the level at which the object applies.", + "title": "Scope" + } + } + }, + "title": "Taxes" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A unique ID.", + "title": "UID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "scope": { + "type": "string", + "description": "Indicates the level at which the object applies.", + "title": "Scope" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Discounts" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + } + }, + "title": "Order" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "additional_recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The location ID for a recipient (other than the merchant) receiving a portion of this tender.", + "title": "Location ID" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Additional Recipients" + } + }, + "title": "Checkout" + } + } + } + } + }, + "summary": "Create checkout", + "description": "Links a checkoutId to a checkout_page_url that customers are directed to in order to provide their payment information using a payment processing workflow.", + "operationId": "CheckoutCreate", + "parameters": [ + { + "name": "location_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Location ID", + "description": "The identifier of the location." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "redirect_url": { + "type": "string", + "description": " For example, if the provided redirect URL is http://www.example.com/order-complete, a successful transaction redirects the customer to:
http://www.example.com/order-complete?checkoutId=xxxxxx&referenceId=xxxxxx&transactionId=xxxxxx
If you do not provide a redirect URL, Square Checkout displays an order confirmation page on your behalf; however, it is strongly recommended that you provide a redirect URL so you can verify the transaction results and finalize the order through your existing/normal confirmation workflow.", + "title": "Redirect URL" + }, + "order": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this order among orders you have created. If you are unsure whether a particular order was created successfully, you can try it again with the same idempotency key without worrying about creating duplicate orders.", + "title": "Idempotency Key" + }, + "order": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The query expression to search for availabilities matching the specified seller location IDs.", + "title": "Location ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "reference_id": { + "type": "string", + "description": "A client-specified ID to associate an entity in another system with this order.", + "title": "Reference ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the item.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The quantity purchased, formatted as a decimal number. Line items with a quantity of 0 are automatically removed when paying for or otherwise completing the order.", + "title": "Quantity" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "discount_uid": { + "type": "string", + "description": "The UID of the discount that the applied discount represents. It must reference a discount present in the order.discounts field. This field is immutable. To change which discounts apply to a line item, you must delete the discount and re-add it as a new OrderLineItemAppliedDiscount.", + "title": "Discount UID" + } + } + }, + "title": "Applied Discounts" + }, + "applied_taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "tax_uid": { + "type": "string", + "description": "The UID of the tax for which this applied tax represents. It must reference a tax present in the order.taxes field. This field is immutable. To change which taxes apply to a line item, delete and add a new OrderLineItemAppliedTax.", + "title": "Tax UID" + } + } + }, + "title": "Applied Taxes" + } + } + }, + "title": "Line Items" + }, + "taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A unique ID.", + "title": "UID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage of the tax, as a string representation of a decimal number.", + "title": "Percentage" + }, + "scope": { + "type": "string", + "description": "Indicates the level at which the object applies.", + "title": "Scope" + } + } + }, + "title": "Taxes" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A unique ID.", + "title": "UID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "scope": { + "type": "string", + "description": "Indicates the level at which the object applies.", + "title": "Scope" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Discounts" + } + }, + "title": "Order" + } + }, + "title": "Order" + }, + "additional_recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "title": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Additional Recipients" + }, + "ask_for_shipping_address": { + "type": "boolean", + "description": "If true, Square Checkout collects shipping information on your behalf and stores that information with the transaction information in the Square Seller Dashboard.", + "title": "Ask for Shipping Address" + }, + "merchant_support_email": { + "type": "string", + "description": "The email address to display on the Square Checkout confirmation page and confirmation email that the buyer can use to contact the seller. If this value is not set, the confirmation page and email display the primary email address associated with the seller's Square account.", + "title": "Merchant Support Email" + }, + "pre_populate_buyer_email": { + "type": "string", + "description": "If provided, the buyer's email is prepopulated on the checkout page as an editable text field.", + "title": "Pre-populate Buyer Email" + }, + "pre_populate_shipping_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "first_name": { + "type": "string", + "description": "Optional first name when it's representing recipient.", + "title": "First Name" + }, + "last_name": { + "type": "string", + "description": "Optional last name when it's representing recipient.", + "title": "Last Name" + } + }, + "title": "Pre-populate Shipping Address" + } + } + } + } + ] + } + }, + "/devices/codes": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "device_codes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "code": { + "type": "string", + "description": "The unique code that can be used to login.", + "title": "Code" + }, + "product_type": { + "type": "string", + "description": "The targeting product type of the device code.", + "title": "Product Type" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "pair_by": { + "type": "string", + "description": "When this DeviceCode will expire and no longer login. Timestamp in RFC 3339 format.", + "title": "Pair By" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "device_id": { + "type": "string", + "description": "The unique id of the device that used this code. Populated when the device is paired.", + "title": "Device ID" + }, + "status_changed_at": { + "type": "string", + "description": "When this DeviceCode's status was last changed. Timestamp in RFC 3339 format.", + "title": "Status Changed At" + } + } + }, + "title": "Device Codes" + } + } + } + } + }, + "summary": "List device codes", + "description": "Lists all DeviceCodes associated with the merchant.", + "operationId": "DeviceList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "product_type", + "in": "query", + "description": "If specified, only returns DeviceCodes targeting the specified product type. Returns DeviceCodes of all product types if empty.", + "x-ms-summary": "Product Type", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "description": "If specified, only returns objects that match the specified statuses.", + "x-ms-summary": "Status", + "required": false, + "type": "string", + "enum": [ + "UNKNOWN", + "UNPAIRED", + "PAIRED", + "EXPIRED" + ] + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "device_code": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "code": { + "type": "string", + "description": "The unique code that can be used to login.", + "title": "Code" + }, + "product_type": { + "type": "string", + "description": "The targeting product type of the device code.", + "title": "Product Type" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "pair_by": { + "type": "string", + "description": "When this DeviceCode will expire and no longer login. Timestamp in RFC 3339 format.", + "title": "Pair By" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "status_changed_at": { + "type": "string", + "description": "When this DeviceCode's status was last changed. Timestamp in RFC 3339 format.", + "title": "Status Changed At" + } + }, + "title": "Device Code" + } + } + } + } + }, + "summary": "Create device code", + "description": "Creates a DeviceCode that can be used to login to a Square Terminal device to enter the connected terminal mode.", + "operationId": "DeviceCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "device_code": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "product_type": { + "type": "string", + "description": "The targeting product type of the device code.", + "title": "Product Type" + } + }, + "title": "Device Code" + } + } + } + } + ] + } + }, + "/devices/codes/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "device_code": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "code": { + "type": "string", + "description": "The unique code that can be used to login.", + "title": "Code" + }, + "product_type": { + "type": "string", + "description": "The targeting product type of the device code.", + "title": "Product Type" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "pair_by": { + "type": "string", + "description": "When this DeviceCode will expire and no longer login. Timestamp in RFC 3339 format.", + "title": "Pair By" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "device_id": { + "type": "string", + "description": "The ID of the device.", + "title": "Device ID" + }, + "status_changed_at": { + "type": "string", + "description": "When this DeviceCode's status was last changed. Timestamp in RFC 3339 format.", + "title": "Status Changed At" + } + }, + "title": "Device Code" + } + } + } + } + }, + "summary": "Get device code", + "description": "Retrieves DeviceCode with the associated ID.", + "operationId": "DeviceGet", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + } + }, + "/gift-cards/activities": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card_activities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "gift_card_id": { + "type": "string", + "description": "The gift card ID. The ID is not required if a GAN is present.", + "title": "Gift Card ID" + }, + "gift_card_gan": { + "type": "string", + "description": "The gift card GAN. The GAN is not required if gift_card_id is present.", + "title": "Gift Card GAN" + }, + "gift_card_balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gift Card Balance Money" + }, + "redeem_activity_details": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + }, + "title": "Redeem Activity Details" + }, + "activate_activity_details": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + }, + "line_item_uid": { + "type": "string", + "description": "The line_item_uid of the gift card line item in an order.", + "title": "Line Item UID" + } + }, + "title": "Activate Activity Details" + } + } + }, + "title": "Gift Card Activities" + } + } + } + } + }, + "summary": "List gift card activities (Beta)", + "description": "Lists gift card activities. By default, you get gift card activities for all gift cards in the seller's account. You can optionally specify query parameters to filter the list. For example, you can get a list of gift card activities for a gift card, for all gift cards in a specific region, or for activities within a time window.", + "operationId": "GiftCardList", + "parameters": [ + { + "name": "gift_card_id", + "in": "query", + "description": "If you provide a gift card ID, the endpoint returns activities that belong to the specified gift card. Otherwise, the endpoint returns all gift card activities for the seller.", + "x-ms-summary": "Gift Card ID", + "required": false, + "type": "string" + }, + { + "name": "type", + "in": "query", + "description": "If you provide a type, the endpoint returns gift card activities of this type. Otherwise, the endpoint returns all types of gift card activities.", + "x-ms-summary": "Type", + "required": false, + "type": "string" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "begin_time", + "in": "query", + "description": "The inclusive start time of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "Begin Time", + "required": false, + "type": "string" + }, + { + "name": "end_time", + "in": "query", + "description": "The exclusive end date of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "End Time", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card_activity": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "gift_card_id": { + "type": "string", + "description": "The gift card ID. The ID is not required if a GAN is present.", + "title": "Gift Card ID" + }, + "gift_card_gan": { + "type": "string", + "description": "The gift card GAN. The GAN is not required if gift_card_id is present.", + "title": "Gift Card GAN" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gift_card_balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gift Card Balance Money" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "activate_activity_details": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + }, + "line_item_uid": { + "type": "string", + "description": "The line_item_uid of the gift card line item in an order.", + "title": "Line Item UID" + } + }, + "title": "Activate Activity Details" + } + }, + "title": "Gift Card Activity" + } + } + } + } + }, + "summary": "Create gift card activity (Beta)", + "description": "Creates a gift card activity.", + "operationId": "GiftCardCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "gift_card_activity": { + "type": "object", + "properties": { + "gift_card_id": { + "type": "string", + "description": "The gift card ID. The ID is not required if a GAN is present.", + "title": "Gift Card ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type", + "enum": [ + "ACTIVATE", + "LOAD", + "REDEEM", + "CLEAR_BALANCE", + "DEACTIVATE", + "ADJUST_INCREMENT", + "ADJUST_DECREMENT", + "REFUND", + "UNLINKED_ACTIVITY_REFUND", + "IMPORT", + "BLOCK", + "UNBLOCK", + "IMPORT_REVERSAL" + ] + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "activate_activity_details": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + }, + "line_item_uid": { + "type": "string", + "description": "The line_item_uid of the gift card line item in an order.", + "title": "Line Item UID" + } + }, + "title": "Activate Activity Details" + } + }, + "title": "Gift Card Activity" + } + } + } + } + ] + } + }, + "/gift-cards/from-gan": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gan_source": { + "type": "string", + "description": "Indicates whether the gift card account number (GAN) is generated by Square or imported from a non-Square system.", + "title": "GAN Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Balance Money" + }, + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Gift Card" + } + } + } + } + }, + "summary": "Retrieve gift card from GAN (Beta)", + "description": "Retrieves a gift card using the gift card account number (GAN).", + "operationId": "GiftCardRetrieveGAN", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + } + } + } + } + ] + } + }, + "/gift-cards/from-nonce": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gan_source": { + "type": "string", + "description": "Indicates whether the gift card account number (GAN) is generated by Square or imported from a non-Square system.", + "title": "GAN Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Balance Money" + }, + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Gift Card" + } + } + } + } + }, + "summary": "Retrieve gift card from nonce (Beta)", + "description": "Retrieves a gift card using a nonce (a secure token) that represents the gift card.", + "operationId": "GiftCardRetrieveNonce", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "nonce": { + "type": "string", + "description": "The nonce of the gift card to retrieve.", + "title": "Nonce" + } + } + } + } + ] + } + }, + "/gift-cards/{gift_card_id}/link-customer": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gan_source": { + "type": "string", + "description": "Indicates whether the gift card account number (GAN) is generated by Square or imported from a non-Square system.", + "title": "GAN Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Balance Money" + }, + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "customer_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Customer IDs" + } + }, + "title": "Gift Card" + } + } + } + } + }, + "summary": "Link customer to gift card (Beta)", + "description": "Links a customer to a gift card", + "operationId": "GiftCardLink", + "parameters": [ + { + "name": "gift_card_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Gift Card ID", + "description": "The identifier of the gift card." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer to be linked.", + "title": "Customer ID" + } + } + } + } + ] + } + }, + "/gift-cards/{gift_card_id}/unlink-customer": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gan_source": { + "type": "string", + "description": "Indicates whether the gift card account number (GAN) is generated by Square or imported from a non-Square system.", + "title": "GAN Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Balance Money" + }, + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Gift Card" + } + } + } + } + }, + "summary": "Unlink customer from gift card (Beta)", + "description": "Unlinks a customer from a gift card.", + "operationId": "GiftCardUnlink", + "parameters": [ + { + "name": "gift_card_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Gift Card ID", + "description": "The identifier of the gift card." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer to be linked.", + "title": "Customer ID" + } + } + } + } + ] + } + }, + "/gift-cards/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "gift_card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "gan_source": { + "type": "string", + "description": "Indicates whether the gift card account number (GAN) is generated by Square or imported from a non-Square system.", + "title": "GAN Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "balance_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Balance Money" + }, + "gan": { + "type": "string", + "description": "The gift card account number.", + "title": "GaN" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Gift Card" + } + } + } + } + }, + "summary": "Retrieve gift card (Beta)", + "description": "Retrieves a gift card using its ID.", + "operationId": "GiftCardRetrieve", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + } + }, + "/labor/break-types": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "break_types": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Break Types" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List break types", + "description": "Returns a paginated list of BreakType instances for a business.", + "parameters": [ + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ], + "operationId": "LaborListBreak" + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "break_type": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Break Type" + } + } + } + } + }, + "summary": "Create break type", + "description": "Creates a new BreakType. A BreakType is a template for creating Break objects.", + "operationId": "LaborCreateBreak", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "break_type": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + }, + "title": "Break Type" + } + } + } + } + ] + } + }, + "/labor/break-types/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "break_type": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Break Type" + } + } + } + } + }, + "summary": "Get break type", + "description": "Returns a single BreakType specified by id.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ], + "operationId": "LaborGetBreak" + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete break type", + "description": "Deletes an existing BreakType. A BreakType can be deleted even if it is referenced from a Shift.", + "operationId": "LaborDeleteBreak", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "break_type": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Break Type" + } + } + } + } + }, + "summary": "Update break type", + "operationId": "LaborUpdateBreak", + "description": "Updates an existing BreakType.", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "break_type": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "break_name": { + "type": "string", + "description": "A human-readable name for this type of break. The name is displayed to employees in Square products.", + "title": "Break Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of this break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S. Precision less than minutes is truncated.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Break Type" + } + } + } + } + ] + } + }, + "/labor/shifts": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "shift": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "start_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Shift" + } + } + } + } + }, + "summary": "Create shift", + "description": "Creates a new Shift. A Shift represents a complete workday for a single employee", + "operationId": "LaborCreateShift", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "shift": { + "type": "object", + "properties": { + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "start_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + } + }, + "title": "Shift" + } + } + } + } + ] + } + }, + "/labor/shifts/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "shifts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object for the team member associated with the object.", + "title": "Team Member ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates on the invoice, such as due_date. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "start_at": { + "type": "string", + "description": "The RFC 3339 timestamp specifying the beginning time of the slot available.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "start_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range starts.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range ends.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "A human-readable name.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Shifts" + } + } + } + } + }, + "summary": "Search shifts", + "description": "Returns a paginated list of Shift records for a business.", + "operationId": "LaborSearchShifts", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "workday": { + "type": "object", + "properties": { + "date_range": { + "type": "object", + "properties": { + "start_date": { + "type": "string", + "description": "A string in YYYY-MM-DD format, such as 2017-10-31, per the ISO 8601 extended format for calendar dates. The beginning of a date range (inclusive).", + "title": "Start Date" + }, + "end_date": { + "type": "string", + "description": "A string in YYYY-MM-DD format, such as 2017-10-31, per the ISO 8601 extended format for calendar dates. The end of a date range (inclusive).", + "title": "End Date" + } + }, + "title": "Date Range" + }, + "match_shifts_by": { + "type": "string", + "description": "The strategy on which the dates are applied.", + "title": "Match Shifts By" + }, + "default_timezone": { + "type": "string", + "description": "Location-specific timezones convert workdays to datetime filters. Every location included in the query must have a timezone or this field must be provided as a fallback. Format: the IANA timezone database identifier for the relevant timezone.", + "title": "Default Timezone" + } + }, + "title": "Workday" + } + }, + "title": "Filter" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/labor/shifts/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "shift": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "start_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Shift" + } + } + } + } + }, + "summary": "Get shift", + "description": "Returns a single Shift specified by id.", + "operationId": "LaborGetShift", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete shift", + "description": "Deletes a shift", + "operationId": "LaborDeleteShift", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "shift": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "start_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Shift" + } + } + } + } + }, + "summary": "Update shift", + "description": "Updates an existing Shift.", + "operationId": "LaborUpdateShift", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "shift": { + "type": "object", + "properties": { + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "start_at": { + "type": "string", + "description": "The timestamp specifying the starting time of this object, in RFC 3339 format.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; shifted to the timezone + offset. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "wage": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The name of the job performed during this shift. Square labor-reporting UIs might group shifts together by title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Wage" + }, + "breaks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "start_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "RFC 3339; follows the same timezone information as Shift. Precision up to the minute is respected; seconds are truncated.", + "title": "End At" + }, + "break_type_id": { + "type": "string", + "description": "The BreakType that this Break was templated on.", + "title": "Break Type ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "expected_duration": { + "type": "string", + "description": "The expected length of the break. Format: RFC-3339 P[n]Y[n]M[n]DT[n]H[n]M[n]S.", + "title": "Expected Duration" + }, + "is_paid": { + "type": "boolean", + "description": "Whether this break counts towards time worked for compensation purposes.", + "title": "Is Paid" + } + } + }, + "title": "Breaks" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Shift" + } + } + } + } + ] + } + }, + "/labor/team-member-wages": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member_wages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object for the team member associated with the object.", + "title": "Team Member ID" + }, + "title": { + "type": "string", + "description": "The title of the invoice.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + } + }, + "title": "Team Member Wages" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List team member wages", + "description": "Returns a paginated list of TeamMemberWage instances for a business.", + "operationId": "LaborListWages", + "parameters": [ + { + "name": "team_member_id", + "in": "query", + "description": "Filter the returned wages to only those that are associated with the specified team member.", + "x-ms-summary": "Team Member ID", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ] + } + }, + "/labor/team-member-wages/{id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member_wage": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + }, + "title": "Team Member Wage" + } + } + } + } + }, + "summary": "Get team member wage", + "description": "Returns a single TeamMemberWage specified by id.", + "operationId": "LaborGetWage", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + } + ] + } + }, + "/labor/workweek-configs": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "workweek_configs": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "start_of_week": { + "type": "string", + "description": "The day of the week on which a business week ends for compensation purposes.", + "title": "Start Of Week" + }, + "start_of_day_local_time": { + "type": "string", + "description": "The local time at which a business week ends. Represented as a string in HH:MM format (HH:MM:SS is also accepted, but seconds are truncated).", + "title": "Start Of Day Local Time" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Workweek Configs" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List workweek configs", + "description": "Returns a list of WorkweekConfig instances for a business.", + "operationId": "LaborListConfigs", + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ] + } + }, + "/labor/workweek-configs/{id}": { + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "workweek_config": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "start_of_week": { + "type": "string", + "description": "The day of the week on which a business week ends for compensation purposes.", + "title": "Start Of Week" + }, + "start_of_day_local_time": { + "type": "string", + "description": "The local time at which a business week ends. Represented as a string in HH:MM format (HH:MM:SS is also accepted, but seconds are truncated).", + "title": "Start Of Day Local Time" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Workweek Config" + } + } + } + } + }, + "summary": "Update workweek config", + "description": "Updates a WorkweekConfig.", + "operationId": "LaborUpdateConfig", + "parameters": [ + { + "name": "id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "ID", + "description": "The identifier." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "workweek_config": { + "type": "object", + "properties": { + "start_of_week": { + "type": "string", + "description": "The day of the week on which a business week ends for compensation purposes.", + "title": "Start Of Week" + }, + "start_of_day_local_time": { + "type": "string", + "description": "The local time at which a business week ends. Represented as a string in HH:MM format (HH:MM:SS is also accepted, but seconds are truncated).", + "title": "Start Of Day Local Time" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Workweek Config" + } + } + } + } + ] + } + }, + "/locations": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "locations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address.", + "title": "Address Line 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates on the invoice, such as due_date. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "capabilities": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Capabilities" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "merchant_id": { + "type": "string", + "description": "The ID of the merchant that owns the location.", + "title": "Merchant ID" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language associated with the location, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "business_name": { + "type": "string", + "description": "The business name of the location This is the name visible to the customers of the location. For example, this name appears on customer receipts.", + "title": "Business Name" + } + } + }, + "title": "Locations" + } + } + } + } + }, + "summary": "List locations", + "description": "Provides information of all locations of a business.", + "operationId": "LocationList", + "parameters": [] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "location": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + } + }, + "title": "Address" + }, + "capabilities": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Capabilities" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "merchant_id": { + "type": "string", + "description": "The ID of the merchant.", + "title": "Merchant ID" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language code, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "website_url": { + "type": "string", + "description": "The website URL of the location.", + "title": "Website URL" + }, + "twitter_username": { + "type": "string", + "description": "The Twitter username of the location without the '@' symbol.", + "title": "Twitter Username" + }, + "instagram_username": { + "type": "string", + "description": "The Instagram username of the location without the '@' symbol.", + "title": "Instagram Username" + }, + "coordinates": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude of the coordinate expressed in degrees.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude of the coordinate expressed in degrees.", + "title": "Longitude" + } + }, + "title": "Coordinates" + }, + "mcc": { + "type": "string", + "description": "The merchant category code (MCC) of the location, as standardized by ISO 18245. The MCC describes the kind of goods or services sold at the location.", + "title": "MCC" + } + }, + "title": "Location" + } + } + } + } + }, + "summary": "Create location (Beta)", + "description": "Creates a location.", + "operationId": "LocationCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "location": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "facebook_url": { + "type": "string", + "description": "The Facebook profile URL of the location. The URL should begin with 'facebook.com/'.", + "title": "Facebook URL" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + } + }, + "title": "Address" + } + }, + "title": "Location" + } + } + } + } + ] + } + }, + "/locations/{location_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "location": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "capabilities": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Capabilities" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "merchant_id": { + "type": "string", + "description": "The ID of the merchant.", + "title": "Merchant ID" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language code, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "business_name": { + "type": "string", + "description": "The business name of the location This is the name visible to the customers of the location. For example, this name appears on customer receipts.", + "title": "Business Name" + } + }, + "title": "Location" + } + } + } + } + }, + "summary": "Retrieve location", + "description": "Retrieves details of a location. You can specify \"main\" as the location ID to retrieve details of the main location.", + "operationId": "LocationRetrieve", + "parameters": [ + { + "name": "location_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Location ID", + "description": "The identifier of the location." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "location": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + } + }, + "title": "Address" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "capabilities": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Capabilities" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "merchant_id": { + "type": "string", + "description": "The ID of the merchant.", + "title": "Merchant ID" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language code, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "business_name": { + "type": "string", + "description": "The business name of the location This is the name visible to the customers of the location. For example, this name appears on customer receipts.", + "title": "Business Name" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "website_url": { + "type": "string", + "description": "The website URL of the location.", + "title": "Website URL" + }, + "business_hours": { + "type": "object", + "properties": { + "periods": { + "type": "array", + "items": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string", + "description": "The day of week for this time period.", + "title": "Day Of Week" + }, + "start_local_time": { + "type": "string", + "description": "The start time of a business hours period, specified in local time using partial-time RFC 3339 format.", + "title": "Start Local Time" + }, + "end_local_time": { + "type": "string", + "description": "The end time of a business hours period, specified in local time using partial-time RFC 3339 format.", + "title": "End Local Time" + } + } + }, + "title": "Periods" + } + }, + "title": "Business Hours" + }, + "business_email": { + "type": "string", + "description": "The email of the location. This email is visible to the customers of the location. For example, the email appears on customer receipts.", + "title": "Business Email" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "twitter_username": { + "type": "string", + "description": "The Twitter username of the location without the '@' symbol.", + "title": "Twitter Username" + }, + "instagram_username": { + "type": "string", + "description": "The Instagram username of the location without the '@' symbol.", + "title": "Instagram Username" + }, + "coordinates": { + "type": "object", + "properties": { + "latitude": { + "type": "number", + "format": "float", + "description": "The latitude of the coordinate expressed in degrees.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "The longitude of the coordinate expressed in degrees.", + "title": "Longitude" + } + }, + "title": "Coordinates" + }, + "mcc": { + "type": "string", + "description": "The merchant category code (MCC) of the location, as standardized by ISO 18245. The MCC describes the kind of goods or services sold at the location.", + "title": "MCC" + } + }, + "title": "Location" + } + } + } + } + }, + "summary": "Update location (Beta)", + "description": "Updates a location.", + "operationId": "LocationUpdate", + "parameters": [ + { + "name": "location_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Location ID", + "description": "The identifier of the location." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "location": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "facebook_url": { + "type": "string", + "description": "The Facebook profile URL of the location. The URL should begin with 'facebook.com/'.", + "title": "Facebook URL" + }, + "twitter_username": { + "type": "string", + "description": "The Twitter username of the location without the '@' symbol.", + "title": "Twitter Username" + }, + "instagram_username": { + "type": "string", + "description": "The Instagram username of the location without the '@' symbol.", + "title": "Instagram Username" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + } + }, + "title": "Address" + }, + "business_hours": { + "type": "object", + "properties": { + "periods": { + "type": "array", + "items": { + "type": "object", + "properties": { + "day_of_week": { + "type": "string", + "description": "The day of week for this time period.", + "title": "Day Of Week" + }, + "start_local_time": { + "type": "string", + "description": "The start time of a business hours period, specified in local time using partial-time RFC 3339 format.", + "title": "Start Local Time" + }, + "end_local_time": { + "type": "string", + "description": "The end time of a business hours period, specified in local time using partial-time RFC 3339 format.", + "title": "End Local Time" + } + } + }, + "title": "Periods" + } + }, + "title": "Business Hours" + } + }, + "title": "Location" + } + } + } + } + ] + } + }, + "/loyalty/accounts": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "loyalty_account": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "mapping": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The Square-assigned ID.", + "title": "ID" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Mapping" + }, + "program_id": { + "type": "string", + "description": "The Square-assigned ID of the program.", + "title": "Program ID" + }, + "balance": { + "type": "integer", + "format": "int32", + "description": "The available balance.", + "title": "Balance" + }, + "lifetime_points": { + "type": "integer", + "format": "int32", + "description": "The total points accrued during the lifetime of the account.", + "title": "Lifetime Points" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Loyalty Account" + } + } + } + } + }, + "summary": "Create loyalty account", + "description": "Creates a loyalty account.", + "operationId": "LoyaltyCreateAccount", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "loyalty_account": { + "type": "object", + "properties": { + "mapping": { + "type": "object", + "properties": { + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Mapping" + }, + "program_id": { + "type": "string", + "description": "The Square-assigned ID of the program.", + "title": "Program ID" + } + }, + "title": "Loyalty Account" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/loyalty/accounts/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "loyalty_accounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "mapping": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Mapping" + }, + "program_id": { + "type": "string", + "description": "The Square-assigned ID of the loyalty program to which the account belongs.", + "title": "Program ID" + }, + "balance": { + "type": "integer", + "format": "int32", + "description": "The available point balance in the loyalty account.", + "title": "Balance" + }, + "lifetime_points": { + "type": "integer", + "format": "int32", + "description": "The total points accrued during the lifetime of the account.", + "title": "Lifetime Points" + }, + "customer_id": { + "type": "string", + "description": "The Square-assigned ID of the customer that is associated with the account.", + "title": "Customer ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Loyalty Accounts" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search loyalty accounts", + "description": "Searches for loyalty accounts in a loyalty program.", + "operationId": "LoyaltySearchAccounts", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": {}, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/loyalty/accounts/{account_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "loyalty_account": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "mapping": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The Square-assigned ID.", + "title": "ID" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Mapping" + }, + "program_id": { + "type": "string", + "description": "The Square-assigned ID of the program.", + "title": "Program ID" + }, + "balance": { + "type": "integer", + "format": "int32", + "description": "The available balance.", + "title": "Balance" + }, + "lifetime_points": { + "type": "integer", + "format": "int32", + "description": "The total points accrued during the lifetime of the account.", + "title": "Lifetime Points" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Loyalty Account" + } + } + } + } + }, + "summary": "Retrieve loyalty account", + "operationId": "LoyaltyRetrieveAccount", + "description": "Retrieves a loyalty account.", + "parameters": [ + { + "name": "account_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Account ID", + "description": "The identifier of the account." + } + ] + } + }, + "/loyalty/accounts/{account_id}/accumulate": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "event": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "accumulate_points": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + }, + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + } + }, + "title": "Accumulate Points" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "source": { + "type": "string", + "description": "The source.", + "title": "Source" + } + }, + "title": "Event" + } + } + } + } + }, + "summary": "Accumulate loyalty points", + "description": "Adds points to a loyalty account.", + "operationId": "LoyaltyAccumulatePoints", + "parameters": [ + { + "name": "account_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Account ID", + "description": "The identifier of the account." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "accumulate_points": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + } + }, + "title": "Accumulate Points" + }, + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/loyalty/accounts/{account_id}/adjust": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "event": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "adjust_points": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + }, + "reason": { + "type": "string", + "description": "The reason for the adjustment of points.", + "title": "Reason" + } + }, + "title": "Adjust Points" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "source": { + "type": "string", + "description": "The source.", + "title": "Source" + } + }, + "title": "Event" + } + } + } + } + }, + "summary": "Adjust loyalty points", + "description": "Adds points to or subtracts points from a buyer's account. Use this endpoint only when you need to manually adjust points.", + "operationId": "LoyaltyAdjustPoints", + "parameters": [ + { + "name": "account_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Account ID", + "description": "The identifier of the account." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "adjust_points": { + "type": "object", + "properties": { + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points added or removed.", + "title": "Points" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + } + }, + "title": "Adjust Points" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/loyalty/events/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "accumulate_points": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + }, + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + } + }, + "title": "Accumulate Points" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "source": { + "type": "string", + "description": "Defines whether the event was generated by the Square Point of Sale.", + "title": "Source" + }, + "redeem_reward": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "reward_id": { + "type": "string", + "description": "The ID of the redeemed loyalty reward.", + "title": "Reward ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order associated with the activity.", + "title": "Order ID" + } + }, + "title": "Redeem Reward" + }, + "create_reward": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "reward_id": { + "type": "string", + "description": "The ID of the redeemed loyalty reward.", + "title": "Reward ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + } + }, + "title": "Create Reward" + } + } + }, + "title": "Events" + } + } + } + } + }, + "summary": "Search loyalty events", + "description": "Searches for loyalty events. A Square loyalty program maintains a ledger of events that occur during the lifetime of a buyer's loyalty account. Each change in the point balance (for example, points earned, points redeemed, and points expired) is recorded in the ledger. Using this endpoint, you can search the ledger for events.", + "operationId": "LoyaltySearchEvents", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "order_filter": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The order identifier.", + "title": "Order ID" + } + }, + "title": "Order Filter" + } + }, + "title": "Filter" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/loyalty/programs/{program_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "program": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "reward_tiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "definition": { + "type": "object", + "properties": { + "scope": { + "type": "string", + "description": "Indicates the level at which the object applies.", + "title": "Scope" + }, + "discount_type": { + "type": "string", + "description": "The type of discount the reward tier offers.", + "title": "Discount Type" + }, + "percentage_discount": { + "type": "string", + "description": "The fixed percentage of the discount.", + "title": "Percentage Discount" + } + }, + "title": "Definition" + }, + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + }, + "pricing_rule_reference": { + "type": "object", + "properties": { + "object_id": { + "type": "string", + "description": "The ID of the referenced object.", + "title": "Object ID" + }, + "catalog_version": { + "type": "string", + "description": "The version of the object.", + "title": "Catalog Version" + } + }, + "title": "Pricing Rule Reference" + } + } + }, + "title": "Reward Tiers" + }, + "terminology": { + "type": "object", + "properties": { + "one": { + "type": "string", + "description": "A singular unit for a point (for example, 1 point is called 1 star).", + "title": "One" + }, + "other": { + "type": "string", + "description": "A plural unit for point (for example, 10 points is called 10 stars).", + "title": "Other" + } + }, + "title": "Terminology" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "accrual_rules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "accrual_type": { + "type": "string", + "description": "The type of the accrual rule that defines how buyers can earn points.", + "title": "Accrual Type" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points accumulated by the event.", + "title": "Points" + }, + "spend_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Spend Amount Money" + }, + "excluded_category_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Excluded Category IDs" + }, + "excluded_item_variation_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Excluded Item Variation IDs" + } + } + }, + "title": "Accrual Rules" + } + }, + "title": "Program" + } + } + } + } + }, + "summary": "Retrieve loyalty program", + "description": "Retrieves the loyalty program in a seller's account, specified by the program ID or the keyword main. Loyalty programs define how buyers can earn points and redeem points for rewards.", + "operationId": "LoyaltyRetrieveProgram", + "parameters": [ + { + "name": "program_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Program ID", + "description": "The identifier of the program." + } + ] + } + }, + "/loyalty/programs/{program_id}/calculate": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "points": { + "type": "integer", + "format": "int32", + "description": "The points that the buyer can earn from a specified purchase.", + "title": "Points" + } + } + } + } + }, + "summary": "Calculate loyalty points", + "description": "Calculates the points a purchase earns. An application might call this endpoint to show the points that a buyer can earn with the specific purchase.", + "operationId": "LoyaltyCalculatePoints", + "parameters": [ + { + "name": "program_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Program ID", + "description": "The identifier of the program." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The order identifier.", + "title": "Order ID" + } + } + } + } + ] + } + }, + "/loyalty/rewards": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "reward": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "reward_tier_id": { + "type": "string", + "description": "The Square-assigned ID of the reward tier used to create the reward.", + "title": "Reward Tier ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points added or removed.", + "title": "Points" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Reward" + } + } + } + } + }, + "summary": "Create loyalty reward", + "description": "Creates a loyalty reward. After a reward is created, the points are locked and not available for the buyer to redeem another reward.", + "operationId": "LoyaltyCreateReward", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "reward": { + "type": "object", + "properties": { + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "reward_tier_id": { + "type": "string", + "description": "The Square-assigned ID of the reward tier used to create the reward.", + "title": "Reward Tier ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + } + }, + "title": "Reward" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/loyalty/rewards/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "rewards": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "reward_tier_id": { + "type": "string", + "description": "The Square-assigned ID of the reward tier used to create the reward.", + "title": "Reward Tier ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of loyalty points used for the reward.", + "title": "Points" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "redeemed_at": { + "type": "string", + "description": "The timestamp when the reward was redeemed, in RFC 3339 format.", + "title": "Redeemed At" + } + } + }, + "title": "Rewards" + } + } + } + } + }, + "summary": "Search loyalty rewards", + "description": "Searches for loyalty rewards in a loyalty account.", + "operationId": "LoyaltySearchRewards", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/loyalty/rewards/{reward_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "reward": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "reward_tier_id": { + "type": "string", + "description": "The Square-assigned ID of the reward tier used to create the reward.", + "title": "Reward Tier ID" + }, + "points": { + "type": "integer", + "format": "int32", + "description": "The number of points added or removed.", + "title": "Points" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "redeemed_at": { + "type": "string", + "description": "The timestamp when the reward was redeemed, in RFC 3339 format.", + "title": "Redeemed At" + } + }, + "title": "Reward" + } + } + } + } + }, + "summary": "Retrieve loyalty reward", + "description": "Retrieves a loyalty reward.", + "operationId": "LoyaltyRetrieveReward", + "parameters": [ + { + "name": "reward_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Reward ID", + "description": "The identifier of the reward." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete loyalty reward", + "description": "Deletes a loyalty reward. Returns the loyalty points back to the loyalty account. You cannot delete a reward that has reached the terminal state (REDEEMED).", + "operationId": "LoyaltyDeleteReward", + "parameters": [ + { + "name": "reward_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Reward ID", + "description": "The identifier of the reward." + } + ] + } + }, + "/loyalty/rewards/{reward_id}/redeem": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "event": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "redeem_reward": { + "type": "object", + "properties": { + "loyalty_program_id": { + "type": "string", + "description": "The ID of the loyalty program", + "title": "Loyalty Program ID" + }, + "reward_id": { + "type": "string", + "description": "The Square-assigned ID of the loyalty reward.", + "title": "Reward ID" + } + }, + "title": "Redeem Reward" + }, + "loyalty_account_id": { + "type": "string", + "description": "The ID of the loyalty account in which the event occurred.", + "title": "Loyalty Account ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "source": { + "type": "string", + "description": "The source.", + "title": "Source" + } + }, + "title": "Event" + } + } + } + } + }, + "summary": "Redeem loyalty reward", + "description": "Redeems a loyalty reward. After the reward reaches the terminal state, it cannot be deleted. In other words, points used for the reward cannot be returned to the account.", + "operationId": "LoyaltyRedeemReward", + "parameters": [ + { + "name": "reward_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Reward ID", + "description": "The identifier of the reward." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + } + } + } + } + ] + } + }, + "/merchants": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "merchant": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "business_name": { + "type": "string", + "description": "The business name of the location This is the name visible to the customers of the location. For example, this name appears on customer receipts.", + "title": "Business Name" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language associated with the location, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "main_location_id": { + "type": "string", + "description": "The ID of the main Location for this merchant.", + "title": "Main Location ID" + } + } + }, + "title": "Merchant" + } + } + } + } + }, + "summary": "List merchants", + "description": "Returns Merchant information for a given access token.", + "operationId": "MerchantList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "integer" + } + ] + } + }, + "/merchants/{merchant_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "merchant": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "business_name": { + "type": "string", + "description": "The business name of the location This is the name visible to the customers of the location. For example, this name appears on customer receipts.", + "title": "Business Name" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + }, + "language_code": { + "type": "string", + "description": "The language code, in BCP 47 format.", + "title": "Language Code" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "main_location_id": { + "type": "string", + "description": "The ID of the main Location for this merchant.", + "title": "Main Location ID" + } + }, + "title": "Merchant" + } + } + } + } + }, + "summary": "Retrieve merchant", + "description": "Retrieve a Merchant object for the given merchant_id.", + "operationId": "MerchantRetrieve", + "parameters": [ + { + "name": "merchant_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Merchant ID", + "description": "The identifier of the merchant." + } + ] + } + }, + "/mobile/authorization-code": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "authorization_code": { + "type": "string", + "description": "Generated authorization code that connects a mobile application instance to a Square account.", + "title": "Authorization Code" + }, + "expires_at": { + "type": "string", + "description": "The timestamp when authorization_code expires in RFC 3339 format.", + "title": "Expires At" + } + } + } + } + }, + "summary": "Create mobile authorization code", + "description": "Generates code to authorize a mobile application to connect to a Square card reader. Authorization codes are one-time-use and expire 60 minutes after being issued.", + "operationId": "MobileAuthorizationCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + } + } + } + } + ] + } + }, + "/sites": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "sites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "site_title": { + "type": "string", + "description": "The title of the site.", + "title": "Site Title" + }, + "domain": { + "type": "string", + "description": "The domain of the site (without the protocol).", + "title": "Domain" + }, + "is_published": { + "type": "boolean", + "description": "Indicates whether the site is published.", + "title": "Is Published" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Sites" + } + } + } + } + }, + "summary": "List sites", + "description": "Lists the Square Online sites that belong to a seller.", + "operationId": "SiteList", + "parameters": [] + } + }, + "/sites/{site_id}/snippet": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "snippet": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "site_id": { + "type": "string", + "description": "The ID of the site that contains the snippet.", + "title": "Site ID" + }, + "content": { + "type": "string", + "description": "The snippet code, which can contain valid HTML, JavaScript, or both.", + "title": "Content" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Snippet" + } + } + } + } + }, + "summary": "Retrieve snippet", + "description": "Retrieves your snippet from a Square Online site. A site can contain snippets from multiple snippet applications, but you can retrieve only the snippet that was added by your application.", + "operationId": "SnippetRetrieve", + "parameters": [ + { + "name": "site_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Site ID", + "description": "The identifier of the site." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete snippet", + "description": "Removes your snippet from a Square Online site.", + "operationId": "SnippetDelete", + "parameters": [ + { + "name": "site_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Site ID", + "description": "The identifier of the site." + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "snippet": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "site_id": { + "type": "string", + "description": "The ID of the site that contains the snippet.", + "title": "Site ID" + }, + "content": { + "type": "string", + "description": "The snippet code, which can contain valid HTML, JavaScript, or both.", + "title": "Content" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Snippet" + } + } + } + } + }, + "summary": "Upsert snippet", + "description": "Adds a snippet to a Square Online site or updates the existing snippet on the site. The snippet code is appended to the end of the head element on every page of the site, except checkout pages. A snippet application can add one snippet to a given site.", + "operationId": "SnippetUpsert", + "parameters": [ + { + "name": "site_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Site ID", + "description": "The identifier of the site." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "snippet": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The snippet code, which can contain valid HTML, JavaScript, or both.", + "title": "Content" + } + }, + "title": "Snippet" + } + } + } + } + ] + } + }, + "/team-members": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + } + } + } + }, + "summary": "Create team member", + "description": "Creates a single TeamMember object.", + "operationId": "TeamCreateMember", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "team_member": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + } + } + } + ] + } + }, + "/team-members/bulk-create": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_members": { + "type": "object", + "properties": { + "idempotency-key-1": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "Describes the status of the team member.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "Idempotency Key 1" + }, + "idempotency-key-2": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "Describes the status of the team member.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "Idempotency Key 2" + } + }, + "title": "Team Members" + } + } + } + } + }, + "summary": "Bulk create team members", + "description": "Creates multiple TeamMember objects.", + "operationId": "TeamCreateBulkMembers", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "team_members": { + "type": "object", + "properties": { + "idempotency-key-1": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "Idempotency Key 1" + }, + "idempotency-key-2": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "Idempotency Key 2" + } + }, + "title": "Team Members" + } + } + } + } + ] + } + }, + "/team-members/bulk-update": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_members": { + "type": "object", + "properties": { + "team_member_id": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "Describes the status of the team member.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp, in RFC 3339 format, describing when the team member was created", + "title": "Created At" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "Team Member ID" + } + }, + "title": "Team Members" + } + } + } + } + }, + "summary": "Bulk update team members", + "description": "Updates multiple TeamMember objects.", + "operationId": "TeamUpdateBulkMembers", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "team_members": { + "type": "object", + "properties": { + "fpgteZNMaf0qOK-a4t6P": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "Describes the status of the team member.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "fpgteZNMaf0qOK-a4t6P" + }, + "AFMwA08kR-MIF-3Vs0OE": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "A second ID used to associate the team member with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "Describes the status of the team member.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the team member.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the team member.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the team member.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The team member's phone number, in E.164 format.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + }, + "title": "AFMwA08kR-MIF-3Vs0OE" + } + }, + "title": "Team Members" + } + } + } + } + ] + } + }, + "/team-members/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_members": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + } + } + }, + "title": "Team Members" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search team members", + "description": "Returns a paginated list of TeamMember objects for a business.", + "operationId": "TeamSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + }, + "title": "Filter" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/team-members/{team_member_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + } + } + } + }, + "summary": "Retrieve team member", + "description": "Retrieves a TeamMember object for the given TeamMember id.", + "operationId": "TeamRetrieveMember", + "parameters": [ + { + "name": "team_member_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Team Member ID", + "description": "The identifier of the team member." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "is_owner": { + "type": "boolean", + "description": "Whether the team member is the owner of the Square account.", + "title": "Is Owner" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "assigned_locations": { + "type": "object", + "properties": { + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + } + } + } + }, + "summary": "Update team member", + "description": "Updates a single TeamMember object.", + "operationId": "TeamUpdate", + "parameters": [ + { + "name": "team_member_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Team Member ID", + "description": "The identifier of the team member." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "team_member": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "assigned_locations": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "assignment_type": { + "type": "string", + "description": "The current assignment type of the team member.", + "title": "Assignment Type" + } + }, + "title": "Assigned Locations" + } + }, + "title": "Team Member" + } + } + } + } + ] + } + }, + "/team-members/{team_member_id}/wage-setting": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "wage_setting": { + "type": "object", + "properties": { + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "job_assignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "job_title": { + "type": "string", + "description": "The title of the job.", + "title": "Job Title" + }, + "pay_type": { + "type": "string", + "description": "The current pay type for the job assignment used to calculate the pay amount in a pay period.", + "title": "Pay Type" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + }, + "annual_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Annual Rate" + }, + "weekly_hours": { + "type": "integer", + "format": "int32", + "description": "The planned hours per week for the job. Set if the job PayType is SALARY.", + "title": "Weekly Hours" + } + } + }, + "title": "Job Assignments" + }, + "is_overtime_exempt": { + "type": "boolean", + "description": "Whether the team member is exempt from the overtime rules of the seller's country.", + "title": "Is Overtime Exempt" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Wage Setting" + } + } + } + } + }, + "summary": "Retrieve wage setting", + "description": "Retrieves a WageSetting object for a team member specified by TeamMember id.", + "operationId": "TeamRetrieveWage", + "parameters": [ + { + "name": "team_member_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Team Member ID", + "description": "The identifier of the team member." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "wage_setting": { + "type": "object", + "properties": { + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "job_assignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "job_title": { + "type": "string", + "description": "The title of the job.", + "title": "Job Title" + }, + "pay_type": { + "type": "string", + "description": "The current pay type for the job assignment used to calculate the pay amount in a pay period.", + "title": "Pay Type" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + }, + "annual_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Annual Rate" + }, + "weekly_hours": { + "type": "integer", + "format": "int32", + "description": "The planned hours per week for the job. Set if the job PayType is SALARY.", + "title": "Weekly Hours" + } + } + }, + "title": "Job Assignments" + }, + "is_overtime_exempt": { + "type": "boolean", + "description": "Whether the team member is exempt from the overtime rules of the seller's country.", + "title": "Is Overtime Exempt" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Wage Setting" + } + } + } + } + }, + "summary": "Update wage setting", + "description": "Creates or updates a WageSetting object.", + "operationId": "TeamUpdateWage", + "parameters": [ + { + "name": "team_member_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Team Member ID", + "description": "The identifier of the team member." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "wage_setting": { + "type": "object", + "properties": { + "is_overtime_exempt": { + "type": "boolean", + "description": "Whether the team member is exempt from the overtime rules of the seller's country.", + "title": "Is Overtime Exempt" + }, + "job_assignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "job_title": { + "type": "string", + "description": "The title of the job.", + "title": "Job Title" + }, + "pay_type": { + "type": "string", + "description": "The current pay type for the job assignment used to calculate the pay amount in a pay period.", + "title": "Pay Type" + }, + "annual_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Annual Rate" + }, + "weekly_hours": { + "type": "integer", + "format": "int32", + "description": "The planned hours per week for the job. Set if the job PayType is SALARY.", + "title": "Weekly Hours" + }, + "hourly_rate": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Hourly Rate" + } + } + }, + "title": "Job Assignments" + } + }, + "title": "Wage Setting" + } + } + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://squareupsandbox.com/oauth2/authorize", + "tokenUrl": "https://connect.squareupsandbox.com/oauth2/token", + "scopes": { + "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE": "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE" + ] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://squareup.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://squareup.com/us/en/legal/general/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Commerce;Sales and CRM" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Square Business/apiProperties.json b/independent-publisher-connectors/Square Business/apiProperties.json new file mode 100644 index 0000000000..fdbe47dc13 --- /dev/null +++ b/independent-publisher-connectors/Square Business/apiProperties.json @@ -0,0 +1,47 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[YOUR_CLIENT_ID]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://squareupsandbox.com/oauth2/authorize" + }, + "tokenUrl": { + "value": "https://connect.squareupsandbox.com/oauth2/token" + }, + "refreshUrl": { + "value": "https://connect.squareupsandbox.com/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Square-Version", + "parameters": { + "x-ms-apimTemplateParameter.name": "Square-Version", + "x-ms-apimTemplateParameter.value": "2021-10-20", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Troy Taylor", + "stackOwner": "Square, Inc." + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Square Business/readme.md b/independent-publisher-connectors/Square Business/readme.md new file mode 100644 index 0000000000..714b006e7a --- /dev/null +++ b/independent-publisher-connectors/Square Business/readme.md @@ -0,0 +1,159 @@ +# Square Business +Square helps millions of sellers run their business - from secure credit card processing to point of sale solutions. This connector contains actions for the following endpoints: Loyalty, Gift Cards, Bookings, Business, Team, Financials, Online and Auth. + +## Publisher: Troy Taylor + +## Prerequisites +Use of this connector will require permission from the owner of a seller account for production use with OAuth 2. You should also sign up for a [Square Developer account](https://developer.squareup.com/us/en) to gain access to a sandbox environment, also using OAuth 2. + +## Obtaining Credentials +In your Square Developer account, you will need to create an application registration to be granted a sandbox OAuth 2 application ID and access token. You will also need to set the OAuth redirect URL to https://global.consent.azure-apim.net/redirect. Once you are ready to use the connector in production, the owner will need to register a production application with the same redirect URL. + +## Supported Operations + +#### List bank accounts +Returns a list of BankAccount objects linked to a Square account. +#### Get bank account by V1 ID +Returns details of a BankAccount identified by V1 bank account ID. +#### Get bank account +Returns details of a BankAccount linked to a Square account. +### Bookings +#### Create booking (Beta) +Creates a booking. +#### Search availability (Beta) +Searches for availabilities for booking. +#### Retrieve business booking profile (Beta) +Retrieves a seller's booking profile. +#### List team member booking profiles (Beta) +Lists booking profiles for team members. +### Cash Drawers +#### List cash drawer shifts +Provides the details for all of the cash drawer shifts for a location in a date range. +#### Retrieve cash drawer shift +Provides the summary details for a single cash drawer shift. +#### List cash drawer shift events +Provides a paginated list of events for a single cash drawer shift. +### Devices +#### List device codes +Lists all DeviceCodes associated with the merchant. +#### Create device code +Creates a DeviceCode that can be used to login to a Square Terminal device to enter the connected terminal mode. +#### Get device code +Retrieves DeviceCode with the associated ID. +### Gift Cards +#### List gift card activities (Beta) +Lists gift card activities. By default, you get gift card activities for all gift cards in the seller's account. You can optionally specify query parameters to filter the list. For example, you can get a list of gift card activities for a gift card, for all gift cards in a specific region, or for activities within a time window. +#### Create gift card activity (Beta) +Creates a gift card activity. +#### Retrieve gift card from GAN (Beta) +Retrieves a gift card using the gift card account number (GAN). +#### Retrieve gift card from nonce (Beta) +Retrieves a gift card using a nonce (a secure token) that represents the gift card. +#### Link customer to gift card (Beta) +Links a customer to a gift card +#### Unlink customer from gift card (Beta) +Unlinks a customer from a gift card. +#### Retrieve gift card (Beta) +Retrieves a gift card using its ID. +### Labor +#### List break types +Returns a paginated list of BreakType instances for a business. +#### Create break type +Creates a new BreakType. A BreakType is a template for creating Break objects. +#### Get break type +Returns a single BreakType specified by id. +#### Delete break type +Deletes an existing BreakType. A BreakType can be deleted even if it is referenced from a Shift. +#### Update break type +Updates an existing BreakType. +#### Create shift +Creates a new Shift. A Shift represents a complete workday for a single employee +#### Search shifts +Returns a paginated list of Shift records for a business. +#### Get shift +Returns a single Shift specified by id. +#### Delete shift +Deletes a Shift. +#### Update shift +Updates an existing Shift. +#### List team member wages +Returns a paginated list of TeamMemberWage instances for a business. +#### Get team member wage +Returns a single TeamMemberWage specified by id. +#### List workweek configs +Returns a list of WorkweekConfig instances for a business. +#### Update workweek config +Updates a WorkweekConfig. +### Locations +#### List locations +Provides information of all locations of a business. +#### Create location (Beta) +Creates a location. +#### Retrieve location +Retrieves details of a location. You can specify "main" as the location ID to retrieve details of the main location. +#### Update location (Beta) +Updates a location. +### Loyalty +#### Create loyalty account +Creates a loyalty account. +#### Search loyalty accounts +Searches for loyalty accounts in a loyalty program. +#### Retrieve loyalty account +Retrieves a loyalty account. +#### Accumulate loyalty points +Adds points to a loyalty account. +#### Adjust loyalty points +Adds points to or subtracts points from a buyer's account. Use this endpoint only when you need to manually adjust points. +#### Search loyalty events +Searches for loyalty events. A Square loyalty program maintains a ledger of events that occur during the lifetime of a buyer's loyalty account. Each change in the point balance (for example, points earned, points redeemed, and points expired) is recorded in the ledger. Using this endpoint, you can search the ledger for events. +#### Retrieve loyalty program +Retrieves the loyalty program in a seller's account, specified by the program ID or the keyword main. Loyalty programs define how buyers can earn points and redeem points for rewards. +#### Calculate loyalty points +Calculates the points a purchase earns. An application might call this endpoint to show the points that a buyer can earn with the specific purchase. +#### Create loyalty reward +Creates a loyalty reward. After a reward is created, the points are locked and not available for the buyer to redeem another reward. +#### Search loyalty rewards +Searches for loyalty rewards in a loyalty account. +#### Retrieve loyalty reward +Retrieves a loyalty reward. +#### Delete loyalty reward +Deletes a loyalty reward. Returns the loyalty points back to the loyalty account. You cannot delete a reward that has reached the terminal state (REDEEMED). +#### Redeem loyalty reward +Redeems a loyalty reward. After the reward reaches the terminal state, it cannot be deleted. In other words, points used for the reward cannot be returned to the account. +### Merchants +#### List merchants +Returns Merchant information for a given access token. +#### Retrieve merchant +Retrieve a Merchant object for the given merchant_id. +### Mobile +#### Create mobile authorization code +Generates code to authorize a mobile application to connect to a Square card reader. Authorization codes are one-time-use and expire 60 minutes after being issued. +### Sites +#### List sites +Lists the Square Online sites that belong to a seller. +#### Retrieve snippet +Retrieves your snippet from a Square Online site. A site can contain snippets from multiple snippet applications, but you can retrieve only the snippet that was added by your application. +#### Delete snippet +Removes your snippet from a Square Online site. +#### Upsert snippet +Adds a snippet to a Square Online site or updates the existing snippet on the site. The snippet code is appended to the end of the head element on every page of the site, except checkout pages. A snippet application can add one snippet to a given site. +### Team Members +#### Create team member +Creates a single TeamMember object. +#### Bulk create team members +Creates multiple TeamMember objects. +#### Bulk update team members +Updates multiple TeamMember objects. +#### Search team members +Returns a paginated list of TeamMember objects for a business. +#### Retrieve team member +Retrieves a TeamMember object for the given TeamMember id. +#### Update team member +Updates a single TeamMember object. +#### Retrieve wage setting +Retrieves a WageSetting object for a team member specified by TeamMember id. +#### Update wage setting +Creates or updates a WageSetting object. + +## Known Issues and Limitations +There are some actions that have '(Beta)' appended to the action name. These actions may not return all fields while still in beta. From 80650b2d69b0581f10a4f8136611f6c2438e817c Mon Sep 17 00:00:00 2001 From: Troy Taylor <44444967+troystaylor@users.noreply.github.com> Date: Thu, 16 Dec 2021 19:19:19 -0500 Subject: [PATCH 190/219] Square Payments (Independent Publishers) (#1253) * certify-connector HubSpot CRM, CMS, and Marketing connectors * certify-connector Xero Accounting and Payroll connectors * Revert "certify-connector" This reverts commit 5fb06db7f3e0ea67bd7da4c55b729ff2395ddf68. * Revert "certify-connector" This reverts commit 160b208ed6202cb979f15eaae99eca33088faf88. * certify-connector * certify-connector * certify-connector * Update apiDefinition.swagger.json Fixed description * Update apiDefinition.swagger.json Cut to below 500 * Update apiDefinition.swagger.json Cut to below 500. * Delete icon.png * Delete settings.json * Update apiDefinition.swagger.json * Delete independent-publisher-connectors/HubSpot CMS directory * Delete independent-publisher-connectors/HubSpot CRM directory * Delete independent-publisher-connectors/HubSpot Marketing directory * Delete independent-publisher-connectors/Xero Accounting directory * Delete independent-publisher-connectors/Xero Payroll - UK directory * Delete independent-publisher-connectors/Xero Projects directory * Include iconBrandColor #da3b01 for IP * Include iconBrandColor #da3b01 in best practices * Rename README.template.md to readme.md * Add templates for IP * Fix typo * Add files via upload * Delete independent-publisher-connectors/Square Business directory * Add files via upload --- .../apiDefinition.swagger.json | 16330 ++++++++++++++++ .../Square Payments/apiProperties.json | 47 + .../Square Payments/readme.md | 205 + 3 files changed, 16582 insertions(+) create mode 100644 independent-publisher-connectors/Square Payments/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Square Payments/apiProperties.json create mode 100644 independent-publisher-connectors/Square Payments/readme.md diff --git a/independent-publisher-connectors/Square Payments/apiDefinition.swagger.json b/independent-publisher-connectors/Square Payments/apiDefinition.swagger.json new file mode 100644 index 0000000000..4b38539c0f --- /dev/null +++ b/independent-publisher-connectors/Square Payments/apiDefinition.swagger.json @@ -0,0 +1,16330 @@ +{ + "swagger": "2.0", + "info": { + "title": "Square Payments", + "description": "Square helps millions of sellers run their business - from secure credit card processing to point of sale solutions. This connector contains actions for the following endpoints: Payments, Terminal, Orders, Subscriptions, Invoices, Catalog, Inventory and Customers.", + "version": "1.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.troystaylor.com", + "email": "troy@troystaylor.com" + } + }, + "host": "connect.squareupsandbox.com", + "basePath": "/v2", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [], + "paths": { + "/apple-pay/domains": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The status of the domain registration.", + "title": "Status" + } + } + } + } + }, + "summary": "Register domain for Apple Pay", + "description": "Activates a domain for use with Apple Pay on the Web and Square. A validation is performed on this domain by Apple to ensure that it is properly set up as an Apple Pay enabled domain.", + "operationId": "ApplePayRegister", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "domain_name": { + "type": "string", + "description": "A domain name as described in RFC-1034 that will be registered with Apple Pay.", + "title": "Domain Name" + } + }, + "required": [ + "domain_name" + ] + } + } + ] + } + }, + "/cards": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "cards": { + "type": "array", + "items": { + "type": "object", + "properties": { + "card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "billing_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Billing Address" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "cardholder_name": { + "type": "string", + "description": "The name of the cardholder.", + "title": "Cardholder Name" + }, + "customer_id": { + "type": "string", + "description": "The ID of a customer to be associated with the card.", + "title": "Customer ID" + }, + "enabled": { + "type": "boolean", + "description": "Indicates whether or not an object can be used.", + "title": "Enabled" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Expiration Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Expiration Year" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID that associates this card with another entity in an external system.", + "title": "Reference ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "Current version number of the card. Increments with each card update. Requests to update an existing Card object will be rejected unless the version in the request matches the current version for the Card.", + "title": "Version" + } + }, + "title": "Card" + } + } + }, + "title": "Cards" + } + } + } + } + }, + "summary": "List cards", + "description": "Retrieves a list of cards owned by the account making the request.", + "operationId": "CardList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "customer_id", + "in": "query", + "description": "Limit results to cards associated with the customer supplied. By default, all cards owned by the merchant are returned.", + "x-ms-summary": "Customer ID", + "required": false, + "type": "string" + }, + { + "name": "include_disabled", + "in": "query", + "description": "Includes disabled cards. By default, all enabled cards owned by the merchant are returned.", + "x-ms-summary": "Include Disabled", + "required": false, + "type": "boolean" + }, + { + "name": "reference_id", + "in": "query", + "description": "Limit results to cards associated with the reference_id supplied.", + "x-ms-summary": "Reference ID", + "required": false, + "type": "string" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "billing_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Billing Address" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "cardholder_name": { + "type": "string", + "description": "The name of the cardholder.", + "title": "Cardholder Name" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "enabled": { + "type": "boolean", + "description": "Whether enabled.", + "title": "Enabled" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Card" + } + } + } + } + }, + "summary": "Create card", + "description": "Adds a card on file to an existing merchant.", + "operationId": "CardCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "The idempotency key.", + "title": "Idempotency Key" + }, + "source_id": { + "type": "string", + "description": "The identifier of the source.", + "title": "Source ID" + }, + "card": { + "type": "object", + "properties": { + "billing_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Billing Address" + }, + "cardholder_name": { + "type": "string", + "description": "The name of the cardholder.", + "title": "Cardholder Name" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + } + }, + "title": "Card" + } + } + } + } + ] + } + }, + "/cards/{card_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "billing_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Billing Address" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "cardholder_name": { + "type": "string", + "description": "The name of the cardholder.", + "title": "Cardholder Name" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "enabled": { + "type": "boolean", + "description": "Whether enabled.", + "title": "Enabled" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Card" + } + } + } + } + }, + "summary": "Retrieve card", + "description": "Retrieves details for a specific Card.", + "operationId": "CardRetrieve", + "parameters": [ + { + "name": "card_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Card ID", + "description": "The identifier of the card." + } + ] + } + }, + "/cards/{card_id}/disable": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "card": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "billing_address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Billing Address" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "cardholder_name": { + "type": "string", + "description": "The name of the cardholder.", + "title": "Cardholder Name" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "enabled": { + "type": "boolean", + "description": "Whether enabled.", + "title": "Enabled" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Card" + } + } + } + } + }, + "summary": "Disable card", + "description": "Disables the card, preventing any further updates or charges. Disabling an already disabled card is allowed but has no effect.", + "operationId": "CardDisable", + "parameters": [ + { + "name": "card_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Card ID", + "description": "The identifier of the card." + } + ] + } + }, + "/card.automatically_updated": { + "x-ms-notification-content": { + "description": "Response" + } + }, + "/catalog/batch-delete": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "deleted_object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Deleted Object IDs" + }, + "deleted_at": { + "type": "string", + "description": "The database timestamp of this deletion in RFC 3339 format", + "title": "Deleted At" + } + } + } + } + }, + "summary": "Batch delete catalog objects", + "description": "Deletes a set of CatalogItems based on the provided list of target IDs and returns a set of successfully deleted IDs in the response.", + "operationId": "CatalogBatchDelete", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Object IDs" + } + } + } + } + ] + } + }, + "/catalog/batch-retrieve": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "category_id": { + "type": "string", + "description": "The ID of the item's category, if any.", + "title": "Category ID" + }, + "tax_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tax IDs" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object. Each object type has expected properties expressed in a structured format within its corresponding *_data field below.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version of the object. When updating an object, the version supplied must match the version in the database, otherwise the write will be rejected as conflicting.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "A list of locations where the object is present, even if present_at_all_locations is false. This can include locations that are deactivated.", + "title": "Present At All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the object with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "This item's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "description": "The order in which this item variation should be displayed. This value is read-only.", + "title": "Ordinal" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Monetary amounts can be positive or negative. See the specific field description to determine the meaning of the sign in a particular case.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD.", + "title": "Currency" + } + }, + "title": "Price Money" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + } + }, + "title": "Item Data" + } + } + }, + "title": "Objects" + }, + "related_objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "category_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + } + }, + "title": "Category Data" + }, + "tax_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "calculation_phase": { + "type": "string", + "description": "Whether the tax is calculated based on a payment's subtotal or total.", + "title": "Calculation Phase" + }, + "inclusion_type": { + "type": "string", + "description": "Whether the tax is ADDITIVE or INCLUSIVE.", + "title": "Inclusion Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "enabled": { + "type": "boolean", + "description": "Indicates whether or not an object can be used.", + "title": "Enabled" + } + }, + "title": "Tax Data" + } + } + }, + "title": "Related Objects" + } + } + } + } + }, + "summary": "Batch retrieve catalog objects", + "description": "Returns a set of objects based on the provided ID. Each CatalogItem returned in the set includes all of its child information including: all of its CatalogItemVariation objects, references to its CatalogModifierList objects, and the ids of any CatalogTax objects that apply to it.", + "operationId": "CatalogBatchRetrieve", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Object IDs" + }, + "catalog_version": { + "type": "integer", + "format": "int32", + "description": "The specific version of the catalog objects to be included in the response. This allows you to retrieve historical versions of objects. The specified version value is matched against the CatalogObjects' version attribute.", + "title": "Catalog Version" + }, + "include_related_objects": { + "type": "boolean", + "description": "If true, the response will include additional objects that are related to the requested objects, as follows: If the objects field of the response contains a CatalogItem, its associated CatalogCategory objects, CatalogTax objects, CatalogImage objects and CatalogModifierLists will be returned in the related_objects field of the response. If the objects field of the response contains a CatalogItemVariation, its parent CatalogItem will be returned in the related_objects field of the response.", + "title": "Include Related Objects" + } + } + } + } + ] + } + }, + "/catalog/batch-upsert": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "category_id": { + "type": "string", + "description": "The ID of the item's category, if any.", + "title": "Category ID" + }, + "tax_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tax IDs" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object. Each object type has expected properties expressed in a structured format within its corresponding *_data field below.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version of the object. When updating an object, the version supplied must match the version in the database, otherwise the write will be rejected as conflicting.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "A list of locations where the object is present, even if present_at_all_locations is false. This can include locations that are deactivated.", + "title": "Present At All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the object with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "This item's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "description": "The order in which this item variation should be displayed. This value is read-only.", + "title": "Ordinal" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Monetary amounts can be positive or negative. See the specific field description to determine the meaning of the sign in a particular case.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD.", + "title": "Currency" + } + }, + "title": "Price Money" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + } + }, + "title": "Item Data" + }, + "category_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + } + }, + "title": "Category Data" + }, + "tax_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "calculation_phase": { + "type": "string", + "description": "Whether the tax is calculated based on a payment's subtotal or total.", + "title": "Calculation Phase" + }, + "inclusion_type": { + "type": "string", + "description": "Whether the tax is ADDITIVE or INCLUSIVE.", + "title": "Inclusion Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applies_to_custom_amounts": { + "type": "boolean", + "description": "If true, the fee applies to custom amounts entered into the Square Point of Sale app that are not associated with a particular CatalogItem.", + "title": "Applies To Custom Amounts" + }, + "enabled": { + "type": "boolean", + "description": "Indicates whether or not an object can be used.", + "title": "Enabled" + } + }, + "title": "Tax Data" + } + } + }, + "title": "Objects" + }, + "id_mappings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "client_object_id": { + "type": "string", + "description": "The client-supplied temporary #-prefixed ID for a new CatalogObject.", + "title": "Client Object ID" + }, + "object_id": { + "type": "string", + "description": "The permanent ID created by the server.", + "title": "Object ID" + } + } + }, + "title": "ID Mappings" + } + } + } + } + }, + "summary": "Batch upsert catalog objects", + "description": "Creates or updates up to 10,000 target objects based on the provided list of objects. The target objects are grouped into batches and each batch is inserted/updated in an all-or-nothing manner. If an object within a batch is malformed in some way, or violates a database constraint, the entire batch containing that item will be disregarded. However, other batches in the same request may still succeed. Each batch may contain up to 1,000 objects, and batches will be processed in order as long as the total object count for the request (items, variations, modifier lists, discounts, and taxes) is no more than 10,000.", + "operationId": "CatalogBatchUpsert", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "batches": { + "type": "array", + "items": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "category_id": { + "type": "string", + "description": "The ID of the item's category, if any.", + "title": "Category ID" + }, + "tax_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tax IDs" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object. Each object type has expected properties expressed in a structured format within its corresponding *_data field below.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "Whether present at all locations.", + "title": "Present At All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The identifier of the item.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "The name of the item.", + "title": "Name" + }, + "pricing_type": { + "type": "string", + "description": "The type of pricing.", + "title": "Pricing Type" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "description": "Price Money" + } + }, + "description": "Item Variation Data" + } + } + }, + "title": "Variations" + } + }, + "title": "Item Data" + }, + "category_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + } + }, + "description": "category_data" + }, + "tax_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "calculation_phase": { + "type": "string", + "description": "Whether the tax is calculated based on a payment's subtotal or total.", + "title": "Calculation Phase" + }, + "inclusion_type": { + "type": "string", + "description": "Whether the tax is ADDITIVE or INCLUSIVE.", + "title": "Inclusion Type" + }, + "percentage": { + "type": "string", + "description": "The percentage of the tax in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applies_to_custom_amounts": { + "type": "boolean", + "description": "If true, the fee applies to custom amounts entered into the Square Point of Sale app that are not associated with a particular CatalogItem.", + "title": "Applies to Custom Amounts" + }, + "enabled": { + "type": "boolean", + "description": "A Boolean flag to indicate whether the tax is displayed as enabled (true) in the Square Point of Sale app or not (false).", + "title": "Enabled" + } + }, + "title": "Tax Data" + } + } + }, + "title": "Objects" + } + } + }, + "title": "Batches" + } + } + } + } + ] + } + }, + "/catalog/info": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "properties": { + "batch_upsert_max_objects_per_batch": { + "type": "integer", + "format": "int32", + "description": "The maximum number of objects that may appear within a single batch in a /v2/catalog/batch-upsert request.", + "title": "Batch Upsert Max Objects per Batch" + }, + "batch_upsert_max_total_objects": { + "type": "integer", + "format": "int32", + "description": "The maximum number of objects that may appear across all batches in a /v2/catalog/batch-upsert request.", + "title": "Batch Upsert Max Total Objects" + }, + "batch_retrieve_max_object_ids": { + "type": "integer", + "format": "int32", + "description": "The maximum number of object IDs that may appear in a /v2/catalog/batch-retrieve request.", + "title": "Batch Retrieve Max Object IDs" + }, + "search_max_page_limit": { + "type": "integer", + "format": "int32", + "description": "The maximum number of results that may be returned in a page of a /v2/catalog/search response.", + "title": "Search Max Page Limit" + }, + "batch_delete_max_object_ids": { + "type": "integer", + "format": "int32", + "description": "The maximum number of object IDs that may be included in a single /v2/catalog/batch-delete request.", + "title": "Batch Delete Max Object IDs" + }, + "update_item_taxes_max_item_ids": { + "type": "integer", + "format": "int32", + "description": "The maximum number of item IDs that may be included in a single /v2/catalog/update-item-taxes request.", + "title": "Update Item Taxes Max Item IDs" + }, + "update_item_taxes_max_taxes_to_enable": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tax IDs to be enabled that may be included in a single /v2/catalog/update-item-taxes request.", + "title": "Update Item Taxes Max Taxes to Enable" + }, + "update_item_taxes_max_taxes_to_disable": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tax IDs to be disabled that may be included in a single /v2/catalog/update-item-taxes request.", + "title": "Update Item Taxes Max Taxes to Disable" + }, + "update_item_modifier_lists_max_item_ids": { + "type": "integer", + "format": "int32", + "description": "The maximum number of tax IDs to be disabled that may be included in a single /v2/catalog/update-item-taxes request.", + "title": "Update Item Modifier Lists Max Item IDs" + }, + "update_item_modifier_lists_max_modifier_lists_to_enable": { + "type": "integer", + "format": "int32", + "description": "The maximum number of modifier list IDs to be enabled that may be included in a single /v2/catalog/update-item-modifier-lists request.", + "title": "Update Item Modifier Lists Max Modifier Lists to Enable" + }, + "update_item_modifier_lists_max_modifier_lists_to_disable": { + "type": "integer", + "format": "int32", + "description": "The maximum number of modifier list IDs to be disabled that may be included in a single /v2/catalog/update-item-modifier-lists request.", + "title": "Update Item Modifier Lists Max Modifier Lists to Disable" + } + }, + "title": "Limits" + } + } + } + } + }, + "summary": "Catalog info", + "description": "Retrieves information about the Square Catalog API, such as batch size limits that can be used by the BatchUpsertCatalogObjects endpoint.", + "operationId": "CatalogInfo", + "parameters": [] + } + }, + "/catalog/list": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "category_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + } + }, + "title": "Category Data" + }, + "tax_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "calculation_phase": { + "type": "string", + "description": "Whether the tax is calculated based on a payment's subtotal or total.", + "title": "Calculation Phase" + }, + "inclusion_type": { + "type": "string", + "description": "Whether the tax is ADDITIVE or INCLUSIVE.", + "title": "Inclusion Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "enabled": { + "type": "boolean", + "description": "Indicates whether or not an object can be used.", + "title": "Enabled" + } + }, + "title": "Tax Data" + } + } + }, + "title": "Objects" + } + } + } + } + }, + "summary": "List catalog", + "description": "Returns a list of CatalogObjects that includes all objects of a set of desired types (for example, all CatalogItem and CatalogTax objects) in the catalog. ListCatalog does not return deleted catalog items.", + "operationId": "CatalogList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "integer" + }, + { + "name": "types", + "in": "query", + "required": false, + "type": "string", + "description": "An optional case-insensitive, comma-separated list of object types to retrieve. The valid values are defined in the CatalogObjectType enum, including ITEM, ITEM_VARIATION, CATEGORY, DISCOUNT, TAX, MODIFIER, MODIFIER_LIST, or IMAGE. If this is unspecified, the operation returns objects of all the types at the version of the Square API used to make the request.", + "x-ms-summary": "Types" + } + ] + } + }, + "/catalog/object": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "catalog_object": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "present_at_all_locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "abbreviation": { + "type": "string", + "description": "The text of the item's display label in the Square Point of Sale app. Only up to the first five characters of the string are used. This attribute is searchable, and its value length is of Unicode code points.", + "title": "Abbreviation" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object in the catalog.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format.", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version of the object. When updating an object, the version supplied must match the version in the database, otherwise the write will be rejected as conflicting.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the CatalogItem associated with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "The item variation's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "description": "The order in which this item variation should be displayed. This value is read-only. On writes, the ordinal for each item variation within a parent CatalogItem is set according to the item variations's position. On reads, the value is not guaranteed to be sequential or unique.", + "title": "Ordinal" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + }, + "stockable": { + "type": "boolean", + "description": "Whether stock is counted directly on this variation (TRUE) or only on its components (FALSE). For backward compatibility missing values will be interpreted as TRUE.", + "title": "Stockable" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Money" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + }, + "product_type": { + "type": "string", + "description": "The product type of the item. May not be changed once an item has been created.", + "title": "Product Type" + } + }, + "title": "Item Data" + } + }, + "title": "Catalog Object" + }, + "id_mappings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "client_object_id": { + "type": "string", + "description": "The client-supplied temporary #-prefixed ID for a new CatalogObject.", + "title": "Client Object ID" + }, + "object_id": { + "type": "string", + "description": "The permanent ID created by the server.", + "title": "Object ID" + } + } + }, + "title": "ID Mappings" + } + } + } + } + }, + "summary": "Upsert catalog object", + "description": "Creates or updates the target CatalogObject.", + "operationId": "CatalogUpsert", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "object": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "item_data": { + "type": "object", + "properties": { + "abbreviation": { + "type": "string", + "description": "The text of the item's display label in the Square Point of Sale app. Only up to the first five characters of the string are used. This attribute is searchable, and its value length is of Unicode code points.", + "title": "Abbreviation" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "An identifier to reference this object in the catalog.", + "title": "ID" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the CatalogItem associated with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "The item variation's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Money" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + } + }, + "title": "Item Data" + } + }, + "title": "Object" + } + } + } + } + ] + } + }, + "/catalog/object/{object_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "object": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "present_at_all_locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "category_id": { + "type": "string", + "description": "The ID of the item's category, if any.", + "title": "Category ID" + }, + "tax_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tax IDs" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object in the catalog.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format.", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version of the object. When updating an object, the version supplied must match the version in the database, otherwise the write will be rejected as conflicting.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the CatalogItem associated with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "The item variation's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "description": "The order in which this item variation should be displayed. This value is read-only. On writes, the ordinal for each item variation within a parent CatalogItem is set according to the item variations's position. On reads, the value is not guaranteed to be sequential or unique.", + "title": "Ordinal" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Money" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + } + }, + "title": "Item Data" + } + }, + "title": "Object" + } + } + } + } + }, + "summary": "Retrieve catalog object", + "description": "Returns a single CatalogItem as a CatalogObject based on the provided ID. The returned object includes all of the relevant CatalogItem information including: CatalogItemVariation children, references to its CatalogModifierList objects, and the ids of any CatalogTax objects that apply to it.", + "operationId": "CatalogRetrieve", + "parameters": [ + { + "name": "object_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Object ID", + "description": "The identifier of the object." + }, + { + "name": "include_related_objects", + "in": "query", + "description": "If true, the response will include additional objects that are related to the requested object, as follows: If the object field of the response contains a CatalogItem, its associated CatalogCategory, CatalogTax, CatalogImage and CatalogModifierList objects will be returned in the related_objects field of the response. If the object field of the response contains a CatalogItemVariation, its parent CatalogItem will be returned in the related_objects field of the response.", + "x-ms-summary": "Include Related Objects", + "required": false, + "type": "boolean" + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "deleted_object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Deleted Object IDs" + }, + "deleted_at": { + "type": "string", + "description": "The database timestamp of this deletion in RFC 3339 format", + "title": "Deleted At" + } + } + } + } + }, + "summary": "Delete catalog object", + "description": "Deletes a single CatalogObject based on the provided ID and returns the set of successfully deleted IDs in the response. Deletion is a cascading event such that all children of the targeted object are also deleted. For example, deleting a CatalogItem will also delete all of its CatalogItemVariation children.", + "operationId": "CatalogDelete", + "parameters": [ + { + "name": "object_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Object ID", + "description": "The identifier of the object." + } + ] + } + }, + "/catalog/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "objects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "If true, this object is present at all locations (including future locations), except where specified in the absent_at_location_ids field. If false, this object is not present at any locations (including future locations), except where specified in the present_at_location_ids field. If not specified, defaults to true.", + "title": "Present at All Locations" + }, + "item_data": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "title": { + "type": "string", + "description": "The item's description. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Description" + }, + "category_id": { + "type": "string", + "description": "The ID of the item's category, if any.", + "title": "Category ID" + }, + "product_type": { + "type": "string", + "description": "The product types query expression to return items or item variations having the specified product types.", + "title": "Product Type" + }, + "tax_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Tax IDs" + }, + "variations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object. Each object type has expected properties expressed in a structured format within its corresponding *_data field below.", + "title": "Type" + }, + "id": { + "type": "string", + "description": "An identifier to reference this object.", + "title": "ID" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version of the object. When updating an object, the version supplied must match the version in the database, otherwise the write will be rejected as conflicting.", + "title": "Version" + }, + "is_deleted": { + "type": "boolean", + "description": "If true, the object has been deleted from the database. Must be false for new objects being inserted. When deleted, the updated_at field will equal the deletion time.", + "title": "Is Deleted" + }, + "present_at_all_locations": { + "type": "boolean", + "description": "A list of locations where the object is present, even if present_at_all_locations is false. This can include locations that are deactivated.", + "title": "Present At All Locations" + }, + "item_variation_data": { + "type": "object", + "properties": { + "item_id": { + "type": "string", + "description": "The ID of the object with this item variation.", + "title": "Item ID" + }, + "name": { + "type": "string", + "description": "This item's name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points.", + "title": "Name" + }, + "ordinal": { + "type": "integer", + "format": "int32", + "description": "The order in which this item variation should be displayed. This value is read-only.", + "title": "Ordinal" + }, + "price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money, in the smallest denomination of the currency indicated by currency. For example, when currency is USD, amount is in cents. Monetary amounts can be positive or negative. See the specific field description to determine the meaning of the sign in a particular case.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The type of currency, in ISO 4217 format. For example, the currency code for US dollars is USD.", + "title": "Currency" + } + }, + "title": "Price Money" + }, + "pricing_type": { + "type": "string", + "description": "Indicates whether the item variation's price is fixed or determined at the time of sale.", + "title": "Pricing Type" + } + }, + "title": "Item Variation Data" + } + } + }, + "title": "Variations" + }, + "visibility": { + "type": "string", + "description": "The visibility.", + "title": "Visibility" + } + }, + "title": "Item Data" + } + } + }, + "title": "Objects" + } + } + } + } + }, + "summary": "Search catalog objects", + "description": "Searches for CatalogObject of any type by matching supported search attribute values, excluding custom attribute values on items or item variations, against one or more of the specified query filters.", + "operationId": "CatalogSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "object_types": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Object Types" + }, + "query": { + "type": "object", + "properties": { + "prefix_query": { + "type": "object", + "properties": { + "attribute_name": { + "type": "string", + "description": "The name of the attribute to be searched.", + "title": "Attribute Name" + }, + "attribute_prefix": { + "type": "string", + "description": "The desired prefix of the search attribute value.", + "title": "Attribute Prefix" + } + }, + "title": "Prefix Query" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/catalog/update-item-modifier-lists": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "updated_at": { + "type": "string", + "description": "The database timestamp of this update in RFC 3339 format.", + "title": "Updated At" + } + } + } + } + }, + "summary": "Update item modifier lists", + "description": "Updates the CatalogModifierList objects that apply to the targeted CatalogItem without having to perform an upsert on the entire item.", + "operationId": "CatalogUpdateModifier", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "item_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Item IDs" + }, + "modifier_lists_to_enable": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Modifier Lists to Enable" + }, + "modifier_lists_to_disable": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Modifier Lists to Disable" + } + } + } + } + ] + } + }, + "/catalog/update-item-taxes": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "updated_at": { + "type": "string", + "description": "The database timestamp of this update in RFC 3339 format.", + "title": "Updated At" + } + } + } + } + }, + "summary": "Update item taxes", + "description": "Updates the CatalogTax objects that apply to the targeted CatalogItem without having to perform an upsert on the entire item.", + "operationId": "CatalogUpdateTaxes", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "item_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Item IDs" + }, + "taxes_to_enable": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Taxes to Enable" + }, + "taxes_to_disable": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Taxes to Disable" + } + } + } + } + ] + } + }, + "/customers/groups": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "groups": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Groups" + } + } + } + } + }, + "summary": "List customer groups", + "description": "Retrieves the list of customer groups of a business.", + "operationId": "CustomerGroupList", + "parameters": [] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "group": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Group" + } + } + } + } + }, + "summary": "Create customer group", + "description": "Creates a new customer group for a business.", + "operationId": "CustomGroupCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "group": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + } + }, + "title": "Group" + } + } + } + } + ] + } + }, + "/customers/groups/{group_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "group": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Group" + } + } + } + } + }, + "summary": "Retrieve customer group", + "description": "Retrieves a specific customer group.", + "operationId": "CustomerGroupRetrieve", + "parameters": [ + { + "name": "group_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Group ID", + "description": "The identifier of the group." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete customer group", + "description": "Deletes a customer group as identified by the group_id value.", + "operationId": "CustomerGroupDelete", + "parameters": [ + { + "name": "group_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Group ID", + "description": "The identifier of the group." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "group": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Group" + } + } + } + } + }, + "summary": "Update customer group", + "description": "Updates a customer group.", + "operationId": "CustomerGroupUpdate", + "parameters": [ + { + "name": "group_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Group ID", + "description": "The identifier of the group." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "group": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + } + }, + "title": "Group" + } + } + } + } + ] + } + }, + "/customers/segments": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "segments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + } + } + }, + "title": "Segments" + } + } + } + } + }, + "summary": "List customer segments", + "description": "Retrieves the list of customer segments of a business.", + "operationId": "CustomerSegmentList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + } + ] + } + }, + "/customers/segments/{segment_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "segment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Segment" + } + } + } + } + }, + "summary": "Retrieve customer segment", + "description": "Retrieves a specific customer segment.", + "operationId": "CustomerSegmentRetrieve", + "parameters": [ + { + "name": "segment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Segment ID", + "description": "The identifier of the segment." + } + ] + } + }, + "/customers": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "preferences": { + "type": "object", + "properties": { + "email_unsubscribed": { + "type": "boolean", + "description": "Indicates whether the customer has unsubscribed from marketing campaign emails. A value of true means that the customer chose to opt out of email marketing from the current Square seller or from all Square sellers. This value is read-only from the Customers API.", + "title": "Email Unsubscribed" + } + }, + "title": "Preferences" + }, + "creation_source": { + "type": "string", + "description": "A creation source represents the method used to create the customer profile.", + "title": "Creation Source" + }, + "group_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Group IDs" + }, + "segment_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Segment IDs" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + } + } + }, + "title": "Customers" + } + } + } + } + }, + "summary": "List customers", + "description": "Lists customer profiles associated with a Square account. Under normal operating conditions, newly created or updated customer profiles become available for the listing operation in well under 30 seconds. Occasionally, propagation of the new or updated profiles can take closer to one minute or longer, especially during network incidents and outages.", + "operationId": "CustomerList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + }, + { + "name": "sort_field", + "in": "query", + "description": "Indicates how customers should be sorted. The default value is DEFAULT.", + "x-ms-summary": "Sort Field", + "required": false, + "type": "string", + "default": "DEFAULT", + "enum": [ + "DEFAULT", + "CREATED_AT" + ] + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "company_name": { + "type": "string", + "description": "A business name associated with the customer profile.", + "title": "Company Name" + }, + "nickname": { + "type": "string", + "description": "A nickname for the customer profile.", + "title": "Nickname" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "birthday": { + "type": "string", + "description": "The birthday associated with the customer profile, in RFC 3339 format. The year is optional. The timezone and time are not allowed. For example, 0000-09-21T00:00:00-00:00 represents a birthday on September 21 and 1998-09-21T00:00:00-00:00 represents a birthday on September 21, 1998.", + "title": "Birthday" + }, + "preferences": { + "type": "object", + "properties": { + "email_unsubscribed": { + "type": "boolean", + "description": "Indicates whether the customer has unsubscribed from marketing campaign emails. A value of true means that the customer chose to opt out of email marketing from the current Square seller or from all Square sellers.", + "title": "Email Unsubscribed" + } + }, + "title": "Preferences" + }, + "creation_source": { + "type": "string", + "description": "A creation source represents the method used to create the customer profile.", + "title": "Creation Source" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Customer" + } + } + } + } + }, + "summary": "Create customer", + "description": "Creates a new customer for a business.", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "given_name": { + "type": "string", + "description": "The given name (that is, the first name) associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family name (that is, the last name) associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "company_name": { + "type": "string", + "description": "A business name associated with the customer profile.", + "title": "Company Name" + }, + "nickname": { + "type": "string", + "description": "A nickname for the customer profile.", + "title": "Nickname" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The ISO 3166 Alpha-2 country code.", + "title": "Country" + } + }, + "title": "Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "birthday": { + "type": "string", + "description": "The birthday associated with the customer profile, in RFC 3339 format. The year is optional. The timezone and time are not allowed. For example, 0000-09-21T00:00:00-00:00 represents a birthday on September 21 and 1998-09-21T00:00:00-00:00 represents a birthday on September 21, 1998. You can also specify this value in YYYY-MM-DD format.", + "title": "Birthday" + } + } + } + } + ], + "operationId": "CustomerCreate" + } + }, + "/customers/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "preferences": { + "type": "object", + "properties": { + "email_unsubscribed": { + "type": "boolean", + "description": "Indicates whether the customer has unsubscribed from marketing campaign emails. A value of true means that the customer chose to opt out of email marketing from the current Square seller or from all Square sellers. This value is read-only from the Customers API.", + "title": "Email Unsubscribed" + } + }, + "title": "Preferences" + }, + "creation_source": { + "type": "string", + "description": "A creation source represents the method used to create the customer profile.", + "title": "Creation Source" + }, + "group_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Group IDs" + }, + "segment_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Segment IDs" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + } + } + }, + "title": "Customers" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search customers", + "description": "Searches the customer profiles associated with a Square account using a supported query filter. Calling SearchCustomers without any explicit query filter returns all customer profiles ordered alphabetically based on given_name and family_name.", + "operationId": "CustomerSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "email_address": { + "type": "object", + "properties": { + "fuzzy": { + "type": "string", + "description": "Use the fuzzy filter to select customers whose attributes match the specified query in a fuzzy manner. When the fuzzy option is used, search queries are tokenized, and then each query token must be matched somewhere in the searched attribute. For single token queries, this is effectively the same behavior as a partial match operation.", + "title": "Fuzzy" + } + }, + "title": "Email Address" + }, + "creation_source": { + "type": "object", + "properties": { + "values": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Values" + }, + "rule": { + "type": "string", + "description": "Indicates whether a customer profile matching the filter criteria should be included in the result or excluded from the result.", + "title": "Rule" + } + }, + "title": "Creation Source" + }, + "created_at": { + "type": "object", + "properties": { + "start_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range starts.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range ends.", + "title": "End At" + } + }, + "title": "Created At" + }, + "group_ids": { + "type": "object", + "properties": { + "all": { + "type": "array", + "items": { + "type": "string" + }, + "title": "All" + } + }, + "title": "Group IDs" + } + }, + "title": "Filter" + }, + "sort": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "Use one or more customer attributes as the sort key to sort searched customer profiles.", + "title": "Field" + }, + "order": { + "type": "string", + "description": "Indicates the order in which results should be sorted based on the sort field value. Strings use standard alphabetic comparison to determine order.", + "title": "Order" + } + }, + "title": "Sort" + } + }, + "title": "Query" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + } + } + } + } + ] + } + }, + "/customers/{customer_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "phone_number": { + "type": "string", + "description": "The 11-digit phone number associated with the customer profile.", + "title": "Phone Number" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "preferences": { + "type": "object", + "properties": { + "email_unsubscribed": { + "type": "boolean", + "description": "Indicates whether the customer has unsubscribed from marketing campaign emails. A value of true means that the customer chose to opt out of email marketing from the current Square seller or from all Square sellers.", + "title": "Email Unsubscribed" + } + }, + "title": "Preferences" + }, + "creation_source": { + "type": "string", + "description": "A creation source represents the method used to create the customer profile.", + "title": "Creation Source" + }, + "group_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Group IDs" + }, + "segment_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Segment IDs" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Customer" + } + } + } + } + }, + "summary": "Retrieve customer", + "description": "Returns details for a single customer.", + "operationId": "CustomerRetrieve", + "parameters": [ + { + "name": "customer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Customer ID", + "description": "The identifier of the customer." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete customer", + "description": "Deletes a customer profile from a business. This operation also unlinks any associated cards on file.", + "operationId": "CustomerDelete", + "parameters": [ + { + "name": "customer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Customer ID", + "description": "The identifier of the customer." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "given_name": { + "type": "string", + "description": "The given (i.e., first) name associated with the customer profile.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The family (i.e., last) name associated with the customer profile.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The email address associated with the customer profile.", + "title": "Email Address" + }, + "address": { + "type": "object", + "properties": { + "address_line_1": { + "type": "string", + "description": "The first line of the address. Fields that start with address_line provide the address's most specific details, like street number, street name, and building name.", + "title": "Address Line 1" + }, + "address_line_2": { + "type": "string", + "description": "The second line of the address, if any.", + "title": "Address Line 2" + }, + "locality": { + "type": "string", + "description": "The city or town of the address.", + "title": "Locality" + }, + "administrative_district_level_1": { + "type": "string", + "description": "A civil entity within the address's country. In the US, this is the state.", + "title": "Administrative District Level 1" + }, + "postal_code": { + "type": "string", + "description": "The address's postal code.", + "title": "Postal Code" + }, + "country": { + "type": "string", + "description": "The address's country, in ISO 3166-1-alpha-2 format.", + "title": "Country" + } + }, + "title": "Address" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "preferences": { + "type": "object", + "properties": { + "email_unsubscribed": { + "type": "boolean", + "description": "Indicates whether the customer has unsubscribed from marketing campaign emails. A value of true means that the customer chose to opt out of email marketing from the current Square seller or from all Square sellers.", + "title": "Email Unsubscribed" + } + }, + "title": "Preferences" + }, + "creation_source": { + "type": "string", + "description": "A creation source represents the method used to create the customer profile.", + "title": "Creation Source" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + } + }, + "title": "Customer" + } + } + } + } + }, + "summary": "Update customer", + "description": "Updates a customer profile. To change an attribute, specify the new value. To remove an attribute, specify the value as an empty string or empty object.", + "operationId": "CustomerUpdate", + "parameters": [ + { + "name": "customer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Customer ID", + "description": "The identifier of the customer." + } + ] + } + }, + "/customers/{customer_id}/groups/{group_id}": { + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Remove group from customer", + "description": "Removes a group membership from a customer. The customer is identified by the customer_id value and the customer group is identified by the group_id value.", + "operationId": "CustomerRemoveGroup", + "parameters": [ + { + "name": "customer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Customer ID", + "description": "The identifier of the customer." + }, + { + "name": "group_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Group ID", + "description": "The identifier of the group." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Add group to customer", + "description": "Adds a group membership to a customer. The customer is identified by the customer_id value and the customer group is identified by the group_id value.", + "operationId": "CustomerAddGroup", + "parameters": [ + { + "name": "customer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Customer ID", + "description": "The identifier of the customer." + }, + { + "name": "group_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Group ID", + "description": "The identifier of the group." + } + ] + } + }, + "/disputes": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "disputes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The dispute reason why the cardholder initiated the dispute with their bank.", + "title": "Reason" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "due_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Due At" + }, + "disputed_payments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "payment_id": { + "type": "string", + "description": "Square-generated unique ID of the payment being disputed.", + "title": "Payment ID" + } + } + }, + "title": "Disputed Payments" + }, + "card_brand": { + "type": "string", + "description": "The card brand used in the disputed payment.", + "title": "Card Brand" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "brand_dispute_id": { + "type": "string", + "description": "The ID of the dispute in the card brand system, generated by the card brand.", + "title": "Brand Dispute ID" + } + } + }, + "title": "Disputes" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List disputes", + "description": "Returns a list of disputes associated with a particular account.", + "operationId": "DisputeList", + "parameters": [ + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "states", + "in": "query", + "description": "The dispute states to filter the result. If not specified, the endpoint returns all open disputes (the dispute status is not INQUIRY_CLOSED, WON, or LOST).", + "x-ms-summary": "States", + "required": false, + "type": "string", + "enum": [ + "UNKNOWN_STATE", + "INQUIRY_EVIDENCE_REQUIRED", + "INQUIRY_PROCESSING", + "INQUIRY_CLOSED", + "EVIDENCE_REQUIRED", + "PROCESSING", + "WON", + "LOST", + "ACCEPTED", + "WAITING_THIRD_PARTY" + ] + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + } + ] + } + }, + "/disputes/{dispute_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "dispute": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "due_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Due At" + }, + "disputed_payments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "payment_id": { + "type": "string", + "description": "Square-generated unique ID of the payment.", + "title": "Payment ID" + } + } + }, + "title": "Disputed Payments" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "brand_dispute_id": { + "type": "string", + "description": "The ID of the dispute in the card brand system, generated by the card brand.", + "title": "Brand Dispute ID" + } + }, + "title": "Dispute" + } + } + } + } + }, + "summary": "Retrieve dispute", + "description": "Returns details about a specific dispute.", + "operationId": "DisputeRetrieve", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + } + ] + } + }, + "/disputes/{dispute_id}/accept": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "dispute": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "due_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Due At" + }, + "disputed_payments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "payment_id": { + "type": "string", + "description": "Square-generated unique ID of the payment.", + "title": "Payment ID" + } + } + }, + "title": "Disputed Payments" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "brand_dispute_id": { + "type": "string", + "description": "The ID of the dispute in the card brand system, generated by the card brand.", + "title": "Brand Dispute ID" + } + }, + "title": "Dispute" + } + } + } + } + }, + "summary": "Accept dispute", + "description": "Accepts the loss on a dispute. Square returns the disputed amount to the cardholder and updates the dispute state to ACCEPTED. Square debits the disputed amount from the seller\u2019s Square account. If the Square account does not have sufficient funds, Square debits the associated bank account.", + "operationId": "DisputeAccept", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + } + ] + } + }, + "/disputes/{dispute_id}/evidence": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "evidence": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "dispute_id": { + "type": "string", + "description": "The ID of the dispute the evidence is associated with.", + "title": "Dispute ID" + }, + "evidence_text": { + "type": "string", + "description": "The raw text.", + "title": "Evidence Text" + }, + "evidence_type": { + "type": "string", + "description": "The type of the evidence.", + "title": "Evidence Type" + }, + "uploaded_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Uploaded At" + }, + "evidence_id": { + "type": "string", + "description": "The Square-generated ID of the evidence.", + "title": "Evidence ID" + }, + "evidence_file": { + "type": "object", + "properties": { + "filename": { + "type": "string", + "description": "The file name including the file extension", + "title": "Filename" + }, + "filetype": { + "type": "string", + "description": "Dispute evidence files must be application/pdf, image/heic, image/heif, image/jpeg, image/png, or image/tiff formats.", + "title": "Filetype" + } + }, + "title": "Evidence File" + } + } + }, + "title": "Evidence" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List dispute evidence", + "description": "Returns a list of evidence associated with a dispute.", + "operationId": "DisputeListEvidence", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + } + ] + } + }, + "/disputes/{dispute_id}/evidence-text": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "evidence": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "dispute_id": { + "type": "string", + "description": "The ID of the dispute the evidence is associated with.", + "title": "Dispute ID" + }, + "evidence_text": { + "type": "string", + "description": "The raw text.", + "title": "Evidence Text" + }, + "evidence_type": { + "type": "string", + "description": "The type pf evidence.", + "title": "Evidence Type" + }, + "uploaded_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Uploaded At" + } + }, + "title": "Evidence" + } + } + } + } + }, + "summary": "Create dispute evidence text", + "description": "Uploads text to use as evidence for a dispute challenge.", + "operationId": "DisputeCreateEvidenceText", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "evidence_type": { + "type": "string", + "description": "The type of evidence you are uploading.", + "title": "Evidence Type", + "enum": [ + "GENERIC_EVIDENCE", + "ONLINE_OR_APP_ACCESS_LOG", + "AUTHORIZATION_DOCUMENTATION", + "CANCELLATION_OR_REFUND_DOCUMENTATION", + "CARDHOLDER_COMMUNICATION", + "CARDHOLDER_INFORMATION", + "PURCHASE_ACKNOWLEDGEMENT", + "DUPLICATE_CHARGE_DOCUMENTATION", + "PRODUCT_OR_SERVICE_DESCRIPTION", + "RECEIPT", + "SERVICE_RECEIVED_DOCUMENTATION", + "PROOF_OF_DELIVERY_DOCUMENTATION", + "RELATED_TRANSACTION_DOCUMENTATION", + "REBUTTAL_EXPLANATION", + "TRACKING_NUMBER" + ] + }, + "evidence_text": { + "type": "string", + "description": "The evidence string.", + "title": "Evidence Text" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/disputes/{dispute_id}/evidence/{evidence_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "evidence": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "dispute_id": { + "type": "string", + "description": "The ID of the dispute the evidence is associated with.", + "title": "Dispute ID" + }, + "evidence_file": { + "type": "object", + "properties": { + "filename": { + "type": "string", + "description": "Dispute evidence files must be application/pdf, image/heic, image/heif, image/jpeg, image/png, or image/tiff formats.", + "title": "Filename" + }, + "filetype": { + "type": "string", + "description": "The file name including the file extension.", + "title": "Filetype" + } + }, + "title": "Evidence File" + }, + "evidence_type": { + "type": "string", + "description": "The type pf evidence.", + "title": "Evidence Type" + }, + "uploaded_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Uploaded At" + } + }, + "title": "Evidence" + } + } + } + } + }, + "summary": "Retrieve dispute evidence", + "description": "Returns the evidence metadata specified by the evidence ID in the request URL path. You must maintain a copy of the evidence you upload if you want to reference it later. You cannot download the evidence after you upload it.", + "operationId": "DisputeRetrieveEvidence", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + }, + { + "name": "evidence_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Evidence ID", + "description": "The identifier of the evidence." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete dispute evidence", + "description": "Removes specified evidence from a dispute.", + "operationId": "DisputeDeleteEvidence", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + }, + { + "name": "evidence_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Evidence ID", + "description": "The identifier of the evidence." + } + ] + } + }, + "/disputes/{dispute_id}/submit-evidence": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "dispute": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "due_at": { + "type": "string", + "description": "The time when the next action is due, in RFC 3339 format.", + "title": "Due At" + }, + "disputed_payments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "payment_id": { + "type": "string", + "description": "Square-generated unique ID of the payment.", + "title": "Payment ID" + } + } + }, + "title": "Disputed Payments" + }, + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "brand_dispute_id": { + "type": "string", + "description": "The ID of the dispute in the card brand system, generated by the card brand.", + "title": "Brand Dispute ID" + } + }, + "title": "Dispute" + } + } + } + } + }, + "summary": "Submit evidence", + "description": "Submits evidence to the cardholder's bank. Before submitting evidence, Square compiles all available evidence. This includes evidence uploaded using the CreateDisputeEvidenceFile and CreateDisputeEvidenceText endpoints and evidence automatically provided by Square, when available.", + "operationId": "EvidenceSubmit", + "parameters": [ + { + "name": "dispute_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Dispute ID", + "description": "The identifier of the dispute." + } + ] + } + }, + "/inventory/adjustments/{adjustment_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "adjustment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "from_state": { + "type": "string", + "description": "The inventory state of the related quantity of items before the adjustment.", + "title": "From State" + }, + "to_state": { + "type": "string", + "description": "The inventory state of the related quantity of items after the adjustment.", + "title": "To State" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the adjustment as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Price Money" + }, + "occurred_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the inventory adjustment took place. For inventory adjustment updates, the occurred_at timestamp cannot be older than 24 hours or in the future relative to the time of the request.", + "title": "Occurred At" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "source": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product type for the application.", + "title": "Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + } + }, + "title": "Adjustment" + } + } + } + } + }, + "summary": "Retrieve inventory adjustment", + "description": "Returns the InventoryAdjustment object with the provided adjustment_id.", + "operationId": "InventoryRetrieveAdjustment", + "parameters": [ + { + "name": "adjustment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Adjustment ID", + "description": "The identifier of the adjustment." + } + ] + } + }, + "/inventory/changes/batch-create": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "counts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the estimated count as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "calculated_at": { + "type": "string", + "description": "An RFC 3339-formatted timestamp that indicates when the most recent physical count or adjustment affecting the estimated count is received.", + "title": "Calculated At" + } + } + }, + "title": "Counts" + } + } + } + } + }, + "summary": "Batch change inventory", + "description": "Applies adjustments and counts to the provided item quantities. On success: returns the current calculated counts for all objects referenced in the request.", + "operationId": "InventoryBatchChange", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "changes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "physical_count": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID that associates this card with another entity in an external system.", + "title": "Reference ID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "state": { + "type": "string", + "description": "The current inventory state for the related quantity of items.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The location ID for a recipient (other than the merchant) receiving a portion of this tender.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee responsible for the physical count.", + "title": "Employee ID" + }, + "occurred_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the physical count was examined. For physical count updates, the occurred_at timestamp cannot be older than 24 hours or in the future relative to the time of the request.", + "title": "Occurred At" + } + }, + "title": "Physical Count" + } + } + }, + "title": "Changes" + }, + "ignore_unchanged_counts": { + "type": "boolean", + "description": "Indicates whether the current physical count should be ignored if the quantity is unchanged since the last physical count.", + "title": "Ignore Unchanged Counts" + } + } + } + } + ] + } + }, + "/inventory/changes/batch-retrieve": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "changes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "physical_count": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID that associates this card with another entity in an external system.", + "title": "Reference ID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "state": { + "type": "string", + "description": "The current inventory state for the related quantity of items.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The location ID for a recipient (other than the merchant) receiving a portion of this tender.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "source": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product type for the application.", + "title": "Product" + }, + "application_id": { + "type": "string", + "description": "Square ID assigned to the application.", + "title": "Application ID" + }, + "name": { + "type": "string", + "description": "The name of the item.", + "title": "Name" + } + }, + "title": "Source" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee responsible for the physical count.", + "title": "Employee ID" + }, + "occurred_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the physical count was examined. For physical count updates, the occurred_at timestamp cannot be older than 24 hours or in the future relative to the time of the request.", + "title": "Occurred At" + }, + "created_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the physical count was created.", + "title": "Created At" + } + }, + "title": "Physical Count" + } + } + }, + "title": "Changes" + } + } + } + } + }, + "summary": "Batch retrieve inventory changes", + "description": "Returns historical physical counts and adjustments based on the provided filter criteria.", + "operationId": "InventoryBatchRetrieveChanges", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "catalog_object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Catalog Object IDs" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "types": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Types" + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "title": "States" + }, + "updated_after": { + "type": "string", + "description": "The filter to return results with their calculated_at value after the given time as specified in an RFC 3339 timestamp. ", + "title": "Updated After" + }, + "updated_before": { + "type": "string", + "description": "The filter to return results with their created_at or calculated_at value strictly before the given time as specified in an RFC 3339 timestamp.", + "title": "Updated Before" + } + } + } + } + ] + } + }, + "/inventory/counts/batch-retrieve": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "counts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the estimated count as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "calculated_at": { + "type": "string", + "description": "An RFC 3339-formatted timestamp that indicates when the most recent physical count or adjustment affecting the estimated count is received.", + "title": "Calculated At" + } + } + }, + "title": "Counts" + } + } + } + } + }, + "summary": "Batch retrieve inventory counts", + "description": "Returns current counts for the provided CatalogObjects at the requested Locations.", + "operationId": "InventoryBatchRetrieveCounts", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "catalog_object_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Catalog Object IDs" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "updated_after": { + "type": "string", + "description": "The filter to return results with their calculated_at value after the given time as specified in an RFC 3339 timestamp. ", + "title": "Updated After" + } + } + } + } + ] + } + }, + "/inventory/physical-counts/{physical_count_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "count": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the adjustment as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "source": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product type for the application.", + "title": "Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "occurred_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the inventory adjustment took place. For inventory adjustment updates, the occurred_at timestamp cannot be older than 24 hours or in the future relative to the time of the request.", + "title": "Occurred At" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + } + }, + "title": "Count" + } + } + } + } + }, + "summary": "Retrieve inventory physical count", + "description": "Returns the InventoryPhysicalCount object with the provided physical_count_id.", + "operationId": "InventoryRetrievePhysicalCount", + "parameters": [ + { + "name": "physical_count_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Physical Count ID", + "description": "The identifier of the physical count." + } + ] + } + }, + "/inventory/transfers/{transfer_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "transfer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "from_location_id": { + "type": "string", + "description": "The Square-generated ID of the Location where the related quantity of items was tracked before the transfer.", + "title": "From Location ID" + }, + "to_location_id": { + "type": "string", + "description": "The Square-generated ID of the Location where the related quantity of items was tracked after the transfer.", + "title": "To Location ID" + }, + "occurred_at": { + "type": "string", + "description": "A client-generated RFC 3339-formatted timestamp that indicates when the inventory adjustment took place. For inventory adjustment updates, the occurred_at timestamp cannot be older than 24 hours or in the future relative to the time of the request.", + "title": "Occurred At" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the adjustment as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "source": { + "type": "object", + "properties": { + "product": { + "type": "string", + "description": "Product type for the application.", + "title": "Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + } + }, + "title": "Transfer" + } + } + } + } + }, + "summary": "Retrieve inventory transfer (Beta)", + "description": "Returns the InventoryTransfer object with the provided transfer_id.", + "operationId": "InventoryRetrieveTransfer", + "parameters": [ + { + "name": "transfer_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Transfer ID", + "description": "The identifier of the transfer." + } + ] + } + }, + "/inventory/{catalog_object_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "counts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "catalog_object_type": { + "type": "string", + "description": "The type of the CatalogObject being tracked.", + "title": "Catalog Object Type" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the estimated count as a decimal string. Can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "calculated_at": { + "type": "string", + "description": "An RFC 3339-formatted timestamp that indicates when the most recent physical count or adjustment affecting the estimated count is received.", + "title": "Calculated At" + } + } + }, + "title": "Counts" + } + } + } + } + }, + "summary": "Retrieve inventory count", + "description": "Retrieves the current calculated stock count for a given CatalogObject at a given set of Locations.", + "operationId": "InventoryRetrieveCount", + "parameters": [ + { + "name": "catalog_object_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Catalog Object ID", + "description": "The identifier of the catalog object." + }, + { + "name": "location_ids", + "in": "query", + "description": "The Location IDs to look up as a comma-separated list. An empty list queries all locations.", + "x-ms-summary": "Location IDs", + "required": false, + "type": "string" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + } + ] + } + }, + "/invoices": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID of the payment request in an invoice.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date (in the invoice's time zone) for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, the Square-hosted invoice page (the public_url field of the invoice) provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A Square-assigned ID that uniquely identifies the reminder within the InvoicePaymentRequest.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent.", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The reminder message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The status of the reminder.", + "title": "Status" + } + } + }, + "description": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "description": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "description": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + }, + "percentage_requested": { + "type": "string", + "description": "Specifies the amount for the payment request in percentage.", + "title": "Percentage Requested" + }, + "card_id": { + "type": "string", + "description": "The ID of the credit or debit card on file to charge for the payment request.", + "title": "Card ID" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title of the invoice.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the invoice is scheduled for processing, in RFC 3339 format. After the invoice is published, Square processes the invoice on the specified date, according to the delivery method and payment request settings.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates on the invoice, such as due_date. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of a customer to be associated with the card.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + }, + "public_url": { + "type": "string", + "description": "The URL of the Square-hosted invoice page. After you publish the invoice using the PublishInvoice endpoint, Square hosts the invoice page and returns the page URL in the response.", + "title": "Public URL" + }, + "next_payment_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Next Payment Amount Money" + } + } + }, + "title": "Invoices" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List invoices", + "description": "Returns a list of invoices for a given location.", + "operationId": "InvoiceList", + "parameters": [ + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent. ", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + } + }, + "title": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + }, + "summary": "Create invoice", + "description": "Creates a draft invoice for an order created using the Orders API. A draft invoice remains in your account and no action is taken. You must publish the invoice before Square can process it (send it to the customer's email address or charge the customer\u2019s card on file).", + "operationId": "InvoiceCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "invoice": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + } + }, + "title": "Primary Recipient" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent. ", + "title": "Relative Scheduled Days" + } + } + }, + "title": "Reminders" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + ] + } + }, + "/invoices/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID of the payment request in an invoice.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date (in the invoice's time zone) for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, the Square-hosted invoice page (the public_url field of the invoice) provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "A Square-assigned ID that uniquely identifies the reminder within the InvoicePaymentRequest.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent.", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The reminder message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The status of the reminder.", + "title": "Status" + } + } + }, + "description": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "description": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "description": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + }, + "percentage_requested": { + "type": "string", + "description": "Specifies the amount for the payment request in percentage.", + "title": "Percentage Requested" + }, + "card_id": { + "type": "string", + "description": "The ID of the credit or debit card on file to charge for the payment request.", + "title": "Card ID" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title of the invoice.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the invoice is scheduled for processing, in RFC 3339 format. After the invoice is published, Square processes the invoice on the specified date, according to the delivery method and payment request settings.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates on the invoice, such as due_date. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of a customer to be associated with the card.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + }, + "public_url": { + "type": "string", + "description": "The URL of the Square-hosted invoice page. After you publish the invoice using the PublishInvoice endpoint, Square hosts the invoice page and returns the page URL in the response.", + "title": "Public URL" + }, + "next_payment_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Next Payment Amount Money" + } + } + }, + "title": "Invoices" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search invoices", + "description": "Searches for invoices from a location specified in the filter.", + "operationId": "InvoiceSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "customer_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Customer IDs" + } + }, + "title": "Filter" + }, + "sort": { + "type": "object", + "properties": { + "field": { + "type": "string", + "description": "Use one or more customer attributes as the sort key to sort searched customer profiles.", + "title": "Field" + }, + "order": { + "type": "string", + "description": "Indicates the order in which results should be sorted based on the sort field value. Strings use standard alphabetic comparison to determine order.", + "title": "Order" + } + }, + "title": "Sort" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "The maximum number of invoices to return (200 is the maximum limit). If not provided, the server uses a default limit of 100 invoices.", + "title": "Limit" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/invoices/{invoice_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent. ", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + } + }, + "title": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + }, + "summary": "Get invoice", + "description": "Retrieves an invoice by invoice ID.", + "operationId": "InvoiceGet", + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Invoice ID", + "description": "The identifier of the invoice." + } + ] + }, + "delete": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Delete invoice", + "description": "Deletes the specified invoice. When an invoice is deleted, the associated order status changes to CANCELED. You can only delete a draft invoice (you cannot delete a published invoice, including one that is scheduled for processing).", + "operationId": "InvoiceDelete", + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Invoice ID", + "description": "The identifier of the invoice." + }, + { + "name": "version", + "in": "query", + "description": "The version of the invoice to delete.", + "x-ms-summary": "Version", + "required": false, + "type": "integer" + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "next_payment_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Next Payment Amount Money" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + }, + "summary": "Update invoice", + "description": "Updates an invoice by modifying fields, clearing fields, or both.", + "operationId": "InvoiceUpdate", + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Invoice ID", + "description": "The identifier of the invoice." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "invoice": { + "type": "object", + "properties": { + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + } + } + }, + "title": "Payment Requests" + } + }, + "title": "Invoice" + }, + "fields_to_clear": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Fields to Clear" + } + } + } + } + ] + } + }, + "/invoices/{invoice_id}/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent. ", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + } + }, + "title": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + }, + "summary": "Cancel invoice", + "description": "Cancels an invoice. The seller cannot collect payments for the canceled invoice.", + "operationId": "InvoiceCancel", + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Invoice ID", + "description": "The identifier of the invoice." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "format": "int32", + "description": "The version.", + "title": "Version" + } + } + } + } + ] + } + }, + "/invoices/{invoice_id}/publish": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "invoice": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "payment_requests": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "request_type": { + "type": "string", + "description": "Identifies the payment request type. This type defines how the payment request amount is determined.", + "title": "Request Type" + }, + "due_date": { + "type": "string", + "description": "The due date for the payment request, in YYYY-MM-DD format.", + "title": "Due Date" + }, + "tipping_enabled": { + "type": "boolean", + "description": "If set to true, provides a place for the customer to pay a tip.", + "title": "Tipping Enabled" + }, + "reminders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "relative_scheduled_days": { + "type": "integer", + "format": "int32", + "description": "The number of days before (a negative number) or after (a positive number) the payment request due_date when the reminder is sent. ", + "title": "Relative Scheduled Days" + }, + "message": { + "type": "string", + "description": "The message.", + "title": "Message" + }, + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + } + }, + "title": "Reminders" + }, + "computed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Computed Amount Money" + }, + "total_completed_amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Completed Amount Money" + }, + "automatic_payment_source": { + "type": "string", + "description": "The payment method for an automatic payment.", + "title": "Automatic Payment Source" + } + } + }, + "title": "Payment Requests" + }, + "invoice_number": { + "type": "string", + "description": "A user-friendly invoice number. The value is unique within a location. If not provided when creating an invoice, Square assigns a value.", + "title": "Invoice Number" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "description": { + "type": "string", + "description": "The description.", + "title": "Description" + }, + "scheduled_at": { + "type": "string", + "description": "The timestamp when the processing is scheduled, in RFC 3339 format.", + "title": "Scheduled At" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "primary_recipient": { + "type": "object", + "properties": { + "customer_id": { + "type": "string", + "description": "The ID of the customer associated with the order.", + "title": "Customer ID" + }, + "given_name": { + "type": "string", + "description": "The recipient's given (that is, first) name.", + "title": "Given Name" + }, + "family_name": { + "type": "string", + "description": "The recipient's family (that is, last) name.", + "title": "Family Name" + }, + "email_address": { + "type": "string", + "description": "The recipient's email address.", + "title": "Email Address" + }, + "phone_number": { + "type": "string", + "description": "The recipient's phone number.", + "title": "Phone Number" + } + }, + "title": "Primary Recipient" + }, + "public_url": { + "type": "string", + "description": "The URL of the Square-hosted invoice page. After you publish the invoice using the PublishInvoice endpoint, Square hosts the invoice page and returns the page URL in the response.", + "title": "Public URL" + }, + "accepted_payment_methods": { + "type": "object", + "properties": { + "card": { + "type": "boolean", + "description": "Indicates whether credit card or debit card payments are accepted.", + "title": "Card" + }, + "square_gift_card": { + "type": "boolean", + "description": "Indicates whether Square gift card payments are accepted.", + "title": "Square Gift Card" + }, + "bank_account": { + "type": "boolean", + "description": "Indicates whether bank transfer payments are accepted.", + "title": "Bank Account" + } + }, + "title": "Accepted Payment Methods" + }, + "custom_fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "label": { + "type": "string", + "description": "The label or title of the custom field.", + "title": "Label" + }, + "value": { + "type": "string", + "description": "The text of the custom field.", + "title": "Value" + }, + "placement": { + "type": "string", + "description": "The location of the custom field on the invoice.", + "title": "Placement" + } + } + }, + "title": "Custom Fields" + }, + "delivery_method": { + "type": "string", + "description": "The delivery method that Square uses to send the invoice, reminders, and receipts to the customer. After the invoice is published, Square processes the invoice based on the delivery method and payment request settings, either immediately or on the scheduled_at date, if specified.", + "title": "Delivery Method" + }, + "sale_or_service_date": { + "type": "string", + "description": "The date of the sale or the date that the service is rendered, in YYYY-MM-DD format. This field can be used to specify a past or future date which is displayed on the invoice.", + "title": "Sale or Service Date" + } + }, + "title": "Invoice" + } + } + } + } + }, + "summary": "Publish invoice", + "description": "Publishes the specified draft invoice. After an invoice is published, Square follows up based on the invoice configuration. For example, Square sends the invoice to the customer's email address, charges the customer's card on file, or does nothing. Square also makes the invoice available on a Square-hosted invoice page.", + "operationId": "InvoicePublish", + "parameters": [ + { + "name": "invoice_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Invoice ID", + "description": "The identifier of the invoice." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "format": "int32", + "description": "The version.", + "title": "Version" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/orders": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "applied_taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "tax_uid": { + "type": "string", + "description": "The UID of the tax for which this applied tax represents.", + "title": "Tax UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Taxes" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "discount_uid": { + "type": "string", + "description": "The uid of the discount that the applied discount represents.", + "title": "Discount UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Discounts" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "variation_total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Variation Total Price Money" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "variation_name": { + "type": "string", + "description": "The name of the variation applied to this line item.", + "title": "Variation Name" + }, + "modifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "catalog_object_id": { + "type": "string", + "description": "The catalog object ID.", + "title": "Catalog Object ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Price Money" + } + } + }, + "title": "Modifiers" + } + } + }, + "title": "Line Items" + }, + "taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Taxes" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Discounts" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tip Money" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tax Money" + }, + "discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Discount Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Service Charge Money" + } + }, + "title": "Net Amounts" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Create order", + "description": "Creates a new order that can include information about products for purchase and settings to apply to the purchase.", + "operationId": "OrderCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "order": { + "type": "object", + "properties": { + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "modifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "catalog_object_id": { + "type": "string", + "description": "The catalog object ID.", + "title": "Catalog Object ID" + } + } + }, + "title": "Modifiers" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "discount_uid": { + "type": "string", + "description": "The uid of the discount that the applied discount represents.", + "title": "Discount UID" + } + } + }, + "title": "Applied Discounts" + } + } + }, + "title": "Line Items" + }, + "taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Taxes" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Discounts" + } + }, + "title": "Order" + } + } + } + } + ] + } + }, + "/orders/batch-retrieve": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "orders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID of the payment request in an invoice.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "A human-readable name.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The quantity purchased, formatted as a decimal number.", + "title": "Quantity" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + } + } + }, + "title": "Line Items" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + } + } + }, + "title": "Orders" + } + } + } + } + }, + "summary": "Batch retrieve orders", + "description": "Retrieves a set of orders by their IDs. If a given order ID does not exist, the ID is ignored instead of generating an error.", + "operationId": "OrderBatchRetrieve", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + }, + "order_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Order IDs" + } + } + } + } + ] + } + }, + "/orders/calculate": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "variation_total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Variation Total Price Money" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "discount_uid": { + "type": "string", + "description": "The uid of the discount that the applied discount represents.", + "title": "Discount UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Discounts" + } + } + }, + "title": "Line Items" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Discounts" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tip Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tax Money" + }, + "discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Discount Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Service Charge Money" + } + }, + "title": "Net Amounts" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Calculate order (Beta)", + "description": "Enables applications to preview order pricing without creating an order.", + "operationId": "OrderCalculate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "order": { + "type": "object", + "properties": { + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Discounts" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + } + } + }, + "title": "Line Items" + } + }, + "title": "Order" + } + } + } + } + ] + } + }, + "/orders/clone": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "applied_taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "tax_uid": { + "type": "string", + "description": "The UID of the tax for which this applied tax represents.", + "title": "Tax UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Taxes" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "discount_uid": { + "type": "string", + "description": "The uid of the discount that the applied discount represents.", + "title": "Discount UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Discounts" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "variation_total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Variation Total Price Money" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "variation_name": { + "type": "string", + "description": "The name of the variation applied to this line item.", + "title": "Variation Name" + }, + "modifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "catalog_object_id": { + "type": "string", + "description": "The catalog object ID.", + "title": "Catalog Object ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Price Money" + } + } + }, + "title": "Modifiers" + } + } + }, + "title": "Line Items" + }, + "taxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Taxes" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "catalog_object_id": { + "type": "string", + "description": "The Square-generated ID of the CatalogObject being tracked.", + "title": "Catalog Object ID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Discounts" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tip Money" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tax Money" + }, + "discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Discount Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Service Charge Money" + } + }, + "title": "Net Amounts" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Clone order (Beta)", + "description": "Creates a new order, in the DRAFT state, by duplicating an existing order. The newly created order has only the core fields (such as line items, taxes, and discounts) copied from the original order.", + "operationId": "OrderClone", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The order identifier.", + "title": "Order ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version.", + "title": "Version" + }, + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/orders/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order_entries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + } + } + }, + "title": "Order Entries" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search orders", + "description": "Search all orders for one or more locations. Orders include all sales, returns, and exchanges regardless of how or when they entered the Square ecosystem (such as Point of Sale, Invoices, and Connect APIs).", + "operationId": "OrderSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "return_entries": { + "type": "boolean", + "description": "A Boolean that controls the format of the search results. If true, SearchOrders returns OrderEntry objects. If false, SearchOrders returns complete order objects.", + "title": "Return Entries" + }, + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + }, + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "date_time_filter": { + "type": "object", + "properties": { + "closed_at": { + "type": "object", + "properties": { + "start_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range starts.", + "title": "Start At" + }, + "end_at": { + "type": "string", + "description": "A datetime value in RFC 3339 format indicating when the time range ends.", + "title": "End At" + } + }, + "title": "Closed At" + } + }, + "title": "Date Time Filter" + }, + "state_filter": { + "type": "object", + "properties": { + "states": { + "type": "array", + "items": { + "type": "string" + }, + "title": "States" + } + }, + "title": "State Filter" + } + }, + "title": "Filter" + }, + "sort": { + "type": "object", + "properties": { + "sort_field": { + "type": "string", + "description": "The field to sort by.", + "title": "Sort Field" + }, + "sort_order": { + "type": "string", + "description": "The chronological order in which results are returned.", + "title": "Sort Order" + } + }, + "title": "Sort" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/orders/{order_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "variation_total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Variation Total Price Money" + }, + "applied_discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": " A Square-assigned ID.", + "title": "UID" + }, + "discount_uid": { + "type": "string", + "description": "The uid of the discount that the applied discount represents.", + "title": "Discount UID" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + } + } + }, + "title": "Applied Discounts" + } + } + }, + "title": "Line Items" + }, + "discounts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "percentage": { + "type": "string", + "description": "The percentage in decimal form, using a '.' as the decimal separator and without a '%' sign. A value of 7.5 corresponds to 7.5%.", + "title": "Percentage" + }, + "applied_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Applied Money" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "scope": { + "type": "string", + "description": "Indicates the current level.", + "title": "Scope" + } + } + }, + "title": "Discounts" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tip Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tax Money" + }, + "discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Discount Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Service Charge Money" + } + }, + "title": "Net Amounts" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Retrieve order", + "description": "Retrieves an Order by ID.", + "operationId": "OrderRetrieve", + "parameters": [ + { + "name": "order_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Order ID", + "description": "The identifier of the order." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "total_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Total Money" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "total_tax_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Total Tax money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "total_discount_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Total Discount Money" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "variation_total_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Variation Total Price Money" + } + } + }, + "title": "Line Items" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "service_charge_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Service Charge Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "discount_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Discount Money" + }, + "tax_money": { + "type": "object", + "properties": { + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + }, + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + } + }, + "title": "Tax Money" + } + }, + "title": "Net Amounts" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Update order (Beta)", + "description": "Updates an open order by adding, replacing, or deleting fields. Orders with a COMPLETED or CANCELED state cannot be updated.", + "operationId": "OrderUpdate", + "parameters": [ + { + "name": "order_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Order ID", + "description": "The identifier of the order." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "order": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + } + } + }, + "title": "Line Items" + } + }, + "title": "Order" + }, + "fields_to_clear": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Fields to Clear" + } + } + } + } + ] + } + }, + "/orders/{order_id}/pay": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "order": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "line_items": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uid": { + "type": "string", + "description": "The Square-generated ID.", + "title": "UID" + }, + "quantity": { + "type": "string", + "description": "The number of items affected by the physical count as a decimal string. The number can support up to 5 digits after the decimal point.", + "title": "Quantity" + }, + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + }, + "base_price_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Base Price Money" + }, + "gross_sales_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Gross Sales Money" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + } + } + }, + "title": "Line Items" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "total_tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Tax money" + }, + "total_discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Discount Money" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "closed_at": { + "type": "string", + "description": "The time when closed, in ISO 8601 format.", + "title": "Closed At" + }, + "tenders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The identifier of the object", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The location ID for a recipient (other than the merchant) receiving a portion of this tender.", + "title": "Location ID" + }, + "transaction_id": { + "type": "string", + "description": "The ID of the tender's associated transaction.", + "title": "Transaction ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The credit card payment's current state (such as AUTHORIZED or CAPTURED)", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "last_4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the transaction.", + "title": "Entry Method" + } + }, + "title": "Card Details" + }, + "payment_id": { + "type": "string", + "description": "Square-generated unique ID of the payment.", + "title": "Payment ID" + } + } + }, + "title": "Tenders" + }, + "total_service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Service Charge Money" + }, + "net_amounts": { + "type": "object", + "properties": { + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "tax_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tax Money" + }, + "discount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Discount Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "service_charge_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Service Charge Money" + } + }, + "title": "Net Amounts" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + }, + "state": { + "type": "string", + "description": "The current state.", + "title": "State" + } + }, + "title": "Order" + } + } + } + } + }, + "summary": "Pay order (Beta)", + "description": "Pay for an order using one or more approved payments or settle an order with a total of 0. The total of the payment_ids listed in the request must be equal to the order total. Orders with a total amount of 0 can be marked as paid by specifying an empty array of payment_ids in the request.", + "operationId": "OrderPay", + "parameters": [ + { + "name": "order_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Order ID", + "description": "The identifier of the order." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "payment_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Payment IDs" + } + } + } + } + ] + } + }, + "/payments": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The card payment's current state. The state can be AUTHORIZED, CAPTURED, VOIDED, or FAILED.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "last_4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": " The first six digits of the card number, known as the Bank Identification Number (BIN)", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "Cvv Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "Avs Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + }, + "captured_at": { + "type": "string", + "description": "The timestamp when the payment was captured, in RFC 3339 format.", + "title": "Captured At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "processing_fee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "effective_at": { + "type": "string", + "description": "The timestamp of when the fee takes effect, in RFC 3339 format.", + "title": "Effective At" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Amount Money" + } + } + }, + "title": "Processing Fee" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "receipt_number": { + "type": "string", + "description": "The payment's receipt number. The field is missing if a payment is canceled.", + "title": "Receipt Number" + }, + "receipt_url": { + "type": "string", + "description": "The URL for the payment's receipt. The field is only populated for COMPLETED payments.", + "title": "Receipt URL" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed. ", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the TeamMember object for the team member associated with the object.", + "title": "Team Member ID" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "The Square ID assigned to the application used to take the payment. Application developers can use this information to identify payments that their application processed. For example, if a developer uses a custom application to process payments, this field contains the application ID from the Developer Dashboard. If a seller uses a Square App Marketplace application to process payments, the field contains the corresponding application ID.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "Used for optimistic concurrency. This opaque token identifies a specific version of the Payment object.", + "title": "Version Token" + } + } + }, + "title": "Payments" + } + } + } + } + }, + "summary": "List payments", + "description": "Retrieves a list of payments taken by the account making the request. Results are eventually consistent, and new payments or changes to payments might take several seconds to appear.", + "operationId": "PaymentList", + "parameters": [ + { + "name": "begin_time", + "in": "query", + "description": "The inclusive start time of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "Begin Time", + "required": false, + "type": "string" + }, + { + "name": "end_time", + "in": "query", + "description": "The exclusive end date of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "End Time", + "required": false, + "type": "string" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "total", + "in": "query", + "description": "The exact amount in the total_money for a payment.", + "x-ms-summary": "Total", + "required": false, + "type": "integer" + }, + { + "name": "last_4", + "in": "query", + "description": "The last four digits of a payment card.", + "x-ms-summary": "Last 4", + "required": false, + "type": "string" + }, + { + "name": "card_brand", + "in": "query", + "description": "The brand of the payment card (for example, VISA).", + "x-ms-summary": "Card Brand", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "app_fee_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "App Fee Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment. This automatic delay_action applies only to payments that do not reach a terminal state (COMPLETED, CANCELED, or FAILED) before the delay_duration time period. This field is specified as a time duration, in RFC 3339 format.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment. Current values include CARD, BANK_ACCOUNT, WALLET, CASH, or EXTERNAL.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "CVV Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "AVS Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + }, + "captured_at": { + "type": "string", + "description": "The timestamp when the payment was captured, in RFC 3339 format.", + "title": "Captured At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "risk_evaluation": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + }, + "risk_level": { + "type": "string", + "description": "The risk level associated with the payment.", + "title": "Risk Level" + } + }, + "title": "Risk Evaluation" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "receipt_number": { + "type": "string", + "description": "The payment's receipt number. The field is missing if a payment is canceled.", + "title": "Receipt Number" + }, + "receipt_url": { + "type": "string", + "description": "The URL for the payment's receipt. The field is only populated for COMPLETED payments.", + "title": "Receipt URL" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed.", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + }, + "summary": "Create payment", + "description": "Creates a payment using the provided source. You can use this endpoint to charge a card (credit/debit card or Square gift card) or record a payment that the seller received outside of Square (cash payment from a buyer or a payment that an external entity processed on behalf of the seller).", + "operationId": "PaymentCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money to accept for this payment, not including tip_money.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + } + }, + "title": "Money" + }, + "source_id": { + "type": "string", + "description": "The ID for the source of funds for this payment. This can be a payment token (card nonce) generated by the Square payment form or a card on file made with the Customers API. If recording a payment that the seller received outside of Square, specify either CASH or EXTERNAL.", + "title": "Source ID" + }, + "autocomplete": { + "type": "boolean", + "description": "If set to true, this payment will be completed when possible. If set to false, this payment is held in an approved state until either explicitly completed (captured) or canceled (voided).", + "title": "Autocomplete" + }, + "customer_id": { + "type": "string", + "description": "The ID of the customer to be linked.", + "title": "Customer ID" + }, + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "app_fee_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money to accept for this payment, not including tip_money.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + } + }, + "title": "App Fee Money" + } + } + } + } + ] + } + }, + "/payments/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": {} + } + } + }, + "summary": "Cancel payment by idempotency key", + "description": "Cancels (voids) a payment identified by the idempotency key that is specified in the request. Use this method when the status of a CreatePayment request is unknown (for example, after you send a CreatePayment request, a network error occurs and you do not get a response). In this case, you can direct Square to cancel the payment using this endpoint. In the request, you provide the same idempotency key that you provided in your CreatePayment request that you want to cancel. After canceling the payment, you can submit your CreatePayment request again. Note that if no payment with the specified idempotency key is found, no action is taken and the endpoint returns successfully.", + "operationId": "PaymentCancelIdempotency", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + } + } + } + } + ] + } + }, + "/payments/{payment_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment. This automatic delay_action applies only to payments that do not reach a terminal state (COMPLETED, CANCELED, or FAILED) before the delay_duration time period. This field is specified as a time duration, in RFC 3339 format.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment. Current values include CARD, BANK_ACCOUNT, WALLET, CASH, or EXTERNAL.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "CVV Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "AVS Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + }, + "captured_at": { + "type": "string", + "description": "The timestamp when the payment was captured, in RFC 3339 format.", + "title": "Captured At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "processing_fee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "effective_at": { + "type": "string", + "description": "The timestamp of when the fee takes effect, in RFC 3339 format.", + "title": "Effective At" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Processing Fee" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "receipt_number": { + "type": "string", + "description": "The payment's receipt number. The field is missing if a payment is canceled.", + "title": "Receipt Number" + }, + "receipt_url": { + "type": "string", + "description": "The URL for the payment's receipt. The field is only populated for COMPLETED payments.", + "title": "Receipt URL" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed.", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + }, + "summary": "Get payment", + "description": "Retrieves details for a specific payment.", + "operationId": "PaymentGet", + "parameters": [ + { + "name": "payment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Payment ID", + "description": "The identifier of the payment." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment. This automatic delay_action applies only to payments that do not reach a terminal state (COMPLETED, CANCELED, or FAILED) before the delay_duration time period. This field is specified as a time duration, in RFC 3339 format.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment. Current values include CARD, BANK_ACCOUNT, WALLET, CASH, or EXTERNAL.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "CVV Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "AVS Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "risk_evaluation": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + }, + "risk_level": { + "type": "string", + "description": "The risk level associated with the payment.", + "title": "Risk Level" + } + }, + "title": "Risk Evaluation" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "capabilities": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Capabilities" + }, + "receipt_number": { + "type": "string", + "description": "The payment's receipt number. The field is missing if a payment is canceled.", + "title": "Receipt Number" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed.", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + }, + "summary": "Update payment", + "description": "Updates a payment with the APPROVED status. You can update the amount_money and tip_money using this endpoint.", + "operationId": "PaymentUpdate", + "parameters": [ + { + "name": "payment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Payment ID", + "description": "The identifier of the payment." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "payment": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + ] + } + }, + "/payments/{payment_id}/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "tip_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Tip Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment. This automatic delay_action applies only to payments that do not reach a terminal state (COMPLETED, CANCELED, or FAILED) before the delay_duration time period. This field is specified as a time duration, in RFC 3339 format.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment. Current values include CARD, BANK_ACCOUNT, WALLET, CASH, or EXTERNAL.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "CVV Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "AVS Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + }, + "voided_at": { + "type": "string", + "description": "The timestamp when the payment was voided, in RFC 3339 format.", + "title": "Voided At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "risk_evaluation": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "description": "The timestamp when created, in RFC 3339 format.", + "title": "Created At" + }, + "risk_level": { + "type": "string", + "description": "The risk level associated with the payment.", + "title": "Risk Level" + } + }, + "title": "Risk Evaluation" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed.", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + }, + "summary": "Cancel payment", + "description": "Cancels (voids) a payment. You can use this endpoint to cancel a payment with the APPROVED status.", + "operationId": "PaymentCancel", + "parameters": [ + { + "name": "payment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Payment ID", + "description": "The identifier of the payment." + } + ] + } + }, + "/payments/{payment_id}/complete": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "payment": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "delay_duration": { + "type": "string", + "description": "The duration of time after the payment's creation when Square automatically applies the delay_action to the payment. This automatic delay_action applies only to payments that do not reach a terminal state (COMPLETED, CANCELED, or FAILED) before the delay_duration time period. This field is specified as a time duration, in RFC 3339 format.", + "title": "Delay Duration" + }, + "source_type": { + "type": "string", + "description": "The source type for this payment. Current values include CARD, BANK_ACCOUNT, WALLET, CASH, or EXTERNAL.", + "title": "Source Type" + }, + "card_details": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "prepaid_type": { + "type": "string", + "description": "Indicates whether the Card is prepaid or not.", + "title": "Prepaid Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "entry_method": { + "type": "string", + "description": "The method used to enter the card's details for the payment. The method can be KEYED, SWIPED, EMV, ON_FILE, or CONTACTLESS.", + "title": "Entry Method" + }, + "cvv_status": { + "type": "string", + "description": "The status code returned from the Card Verification Value (CVV) check. The code can be CVV_ACCEPTED, CVV_REJECTED, or CVV_NOT_CHECKED.", + "title": "CVV Status" + }, + "avs_status": { + "type": "string", + "description": "The status code returned from the Address Verification System (AVS) check. The code can be AVS_ACCEPTED, AVS_REJECTED, or AVS_NOT_CHECKED.", + "title": "AVS Status" + }, + "auth_result_code": { + "type": "string", + "description": "The status code returned by the card issuer that describes the payment's authorization status.", + "title": "Auth Result Code" + }, + "statement_description": { + "type": "string", + "description": "The statement description sent to the card networks.", + "title": "Statement Description" + }, + "card_payment_timeline": { + "type": "object", + "properties": { + "authorized_at": { + "type": "string", + "description": "The timestamp when the payment was authorized, in RFC 3339 format.", + "title": "Authorized At" + }, + "captured_at": { + "type": "string", + "description": "The timestamp when the payment was captured, in RFC 3339 format.", + "title": "Captured At" + } + }, + "title": "Card Payment Timeline" + } + }, + "title": "Card Details" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "processing_fee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "effective_at": { + "type": "string", + "description": "The timestamp of when the fee takes effect, in RFC 3339 format.", + "title": "Effective At" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Processing Fee" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "total_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Total Money" + }, + "approved_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Approved Money" + }, + "employee_id": { + "type": "string", + "description": "The Square-generated ID of the Employee.", + "title": "Employee ID" + }, + "receipt_number": { + "type": "string", + "description": "The payment's receipt number. The field is missing if a payment is canceled.", + "title": "Receipt Number" + }, + "receipt_url": { + "type": "string", + "description": "The URL for the payment's receipt. The field is only populated for COMPLETED payments.", + "title": "Receipt URL" + }, + "delay_action": { + "type": "string", + "description": "The action to be applied to the payment when the delay_duration has elapsed.", + "title": "Delay Action" + }, + "delayed_until": { + "type": "string", + "description": "The read-only timestamp of when the delay_action is automatically applied, in RFC 3339 format.", + "title": "Delayed Until" + }, + "team_member_id": { + "type": "string", + "description": "The ID of the team member.", + "title": "Team Member ID" + }, + "application_details": { + "type": "object", + "properties": { + "square_product": { + "type": "string", + "description": "The Square product, such as Square Point of Sale (POS), Square Invoices, or Square Virtual Terminal.", + "title": "Square Product" + }, + "application_id": { + "type": "string", + "description": "Read-only Square ID assigned to the application.", + "title": "Application ID" + } + }, + "title": "Application Details" + }, + "version_token": { + "type": "string", + "description": "This opaque token identifies a specific version of the object.", + "title": "Version Token" + } + }, + "title": "Payment" + } + } + } + } + }, + "summary": "Complete payment", + "description": "Completes (captures) a payment. By default, payments are set to complete immediately after they are created.", + "operationId": "PaymentComplete", + "parameters": [ + { + "name": "payment_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Payment ID", + "description": "The identifier of the payment." + } + ] + } + }, + "/refunds": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refunds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "payment_id": { + "type": "string", + "description": "The ID of the payment.", + "title": "Payment ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "processing_fee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "effective_at": { + "type": "string", + "description": "The timestamp of when the fee takes effect, in RFC 3339 format.", + "title": "Effective At" + }, + "type": { + "type": "string", + "description": "The type of this object.", + "title": "Type" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Amount Money" + } + } + }, + "title": "Processing Fee" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "reason": { + "type": "string", + "description": "The dispute reason why the cardholder initiated the dispute with their bank.", + "title": "Reason" + } + } + }, + "title": "Refunds" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "List payment refunds", + "description": "Retrieves a list of refunds for the account making the request. Results are eventually consistent, and new refunds or changes to refunds might take several seconds to appear.", + "operationId": "RefundList", + "parameters": [ + { + "name": "begin_time", + "in": "query", + "description": "The inclusive start time of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "Begin Time", + "required": false, + "type": "string" + }, + { + "name": "end_time", + "in": "query", + "description": "The exclusive end date of the query on opened_at, in ISO 8601 format.", + "x-ms-summary": "End Time", + "required": false, + "type": "string" + }, + { + "name": "sort_order", + "in": "query", + "description": "Sorts the returned list by when the card was created with the specified order.", + "x-ms-summary": "Sort Order", + "enum": [ + "ASC", + "DESC" + ], + "default": "ASC", + "required": false, + "type": "string" + }, + { + "name": "cursor", + "in": "query", + "description": "The pagination cursor returned by a previous call to this endpoint.", + "x-ms-summary": "Cursor", + "required": false, + "type": "string" + }, + { + "name": "location_id", + "in": "query", + "description": "You can specify this optional filter to retrieve only the records belonging to a specific location.", + "x-ms-summary": "Location ID", + "required": false, + "type": "string" + }, + { + "name": "status", + "in": "query", + "description": "If specified, only returns objects that match the specified statuses.", + "x-ms-summary": "Status", + "required": false, + "type": "string" + }, + { + "name": "source_type", + "in": "query", + "description": "If provided, only refunds with the given source type are returned.", + "x-ms-summary": "Source Type", + "required": false, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "description": "Upper limit on the number to return in the response.", + "x-ms-summary": "Limit", + "required": false, + "type": "integer" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refund": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_fee_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "App Fee Money" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + } + }, + "title": "Refund" + } + } + } + } + }, + "summary": "Refund payment", + "description": "Refunds a payment. You can refund the entire payment amount or a portion of it. You can use this endpoint to refund a card payment or record a refund of a cash or external payment.", + "operationId": "RefundPayment", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment being refunded.", + "title": "Payment ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money to accept for this payment, not including tip_money.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + } + }, + "title": "Money" + }, + "app_fee_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money to accept for this payment, not including tip_money.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + } + }, + "title": "App Fee Money" + }, + "reason": { + "type": "string", + "description": "A description of the reason for the refund.", + "title": "Reason" + } + } + } + } + ] + } + }, + "/refunds/{refund_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refund": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "processing_fee": { + "type": "array", + "items": { + "type": "object", + "properties": { + "effective_at": { + "type": "string", + "description": "The timestamp of when the fee takes effect, in RFC 3339 format.", + "title": "Effective At" + }, + "type": { + "type": "string", + "description": "Indicates the type.", + "title": "Type" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + } + } + }, + "title": "Processing Fee" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + } + }, + "title": "Refund" + } + } + } + } + }, + "summary": "Get payment refund", + "description": "Retrieves a specific refund using the refund_id.", + "operationId": "RefundGet", + "parameters": [ + { + "name": "refund_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Refund ID", + "description": "The identifier of the refund." + } + ] + } + }, + "/subscriptions": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "start_date": { + "type": "string", + "description": "The start date of the subscription, in YYYY-MM-DD format.", + "title": "Start Date" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "tax_percentage": { + "type": "string", + "description": "The tax amount applied when billing the subscription.", + "title": "Tax Percentage" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "card_id": { + "type": "string", + "description": "The ID of the customer card that is charged for the subscription.", + "title": "Card ID" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Subscription" + } + } + } + } + }, + "summary": "Create subscription", + "description": "Creates a subscription for a customer to a subscription plan. If you provide a card on file in the request, Square charges the card for the subscription. Otherwise, Square bills an invoice to the customer's email address. The subscription starts immediately, unless the request includes the optional start_date. Each individual subscription is associated with a particular location.", + "operationId": "SubscriptionCreate", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "location_id": { + "type": "string", + "description": "The location identifier.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the subscription plan created using the Catalog API.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of the customer to be linked.", + "title": "Customer ID" + }, + "card_id": { + "type": "string", + "description": "The ID of the customer card to charge.", + "title": "Card ID" + }, + "start_date": { + "type": "string", + "description": "The start date of the subscription, in YYYY-MM-DD format.", + "title": "Start Date" + }, + "tax_percentage": { + "type": "string", + "description": "The tax to add when billing the subscription.", + "title": "Tax Percentage" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount of money to accept for this payment, not including tip_money.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The 3-character ISO 4217 currency code.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "timezone": { + "type": "string", + "description": "The timezone that is used in date calculations for the subscription.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the object.", + "title": "Name" + } + }, + "title": "Source" + } + } + } + } + ] + } + }, + "/subscriptions/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscriptions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The Square-assigned ID of the customer that is associated with the account.", + "title": "Customer ID" + }, + "start_date": { + "type": "string", + "description": "The start date of the subscription, in YYYY-MM-DD format.", + "title": "Start Date" + }, + "canceled_date": { + "type": "string", + "description": "The subscription cancellation date, in YYYY-MM-DD format.", + "title": "Canceled Date" + }, + "charged_through_date": { + "type": "string", + "description": "The date up to which the customer is invoiced for the subscription, in YYYY-MM-DD format.", + "title": "Charged Through Date" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "card_id": { + "type": "string", + "description": "The ID of the customer card that is charged for the subscription.", + "title": "Card ID" + }, + "paid_until_date": { + "type": "string", + "description": "The date paid until.", + "title": "Paid Until Date" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates on the invoice, such as due_date. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The item's name. This is a searchable attribute for use in applicable query filters, its value must not be empty, and the length is of Unicode code points.", + "title": "Name" + } + }, + "title": "Source" + }, + "tax_percentage": { + "type": "string", + "description": "The tax amount applied when billing the subscription.", + "title": "Tax Percentage" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of the object.", + "title": "Version" + }, + "invoice_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Invoice IDs" + } + } + }, + "title": "Subscriptions" + } + } + } + } + }, + "summary": "Search subscriptions", + "description": "Searches for subscriptions. Results are ordered chronologically by subscription creation date. If the request specifies more than one location ID, the endpoint orders the result by location ID, and then by creation date within each location. If no locations are given in the query, all locations are searched.", + "operationId": "SubscriptionSearch", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "location_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Location IDs" + }, + "customer_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Customer IDs" + }, + "source_names": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Source Names" + } + }, + "title": "Filter" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/subscriptions/{subscription_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "start_date": { + "type": "string", + "description": "The start date of the subscription, in YYYY-MM-DD format.", + "title": "Start Date" + }, + "charged_through_date": { + "type": "string", + "description": "The date up to which the customer is invoiced for the subscription, in YYYY-MM-DD format.", + "title": "Charged Through Date" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "invoice_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Invoice IDs" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "paid_until_date": { + "type": "string", + "description": "The date paid until.", + "title": "Paid Until Date" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Subscription" + } + } + } + } + }, + "summary": "Retrieve subscription", + "description": "Retrieves a subscription.", + "operationId": "SubscriptionRetrieve", + "parameters": [ + { + "name": "subscription_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Subscription ID", + "description": "The identifier of the subscription." + } + ] + }, + "put": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Subscription" + } + } + } + } + }, + "summary": "Update subscription", + "description": "Updates a subscription. You can set, modify, and clear the subscription field values.", + "parameters": [ + { + "name": "subscription_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Subscription ID", + "description": "The identifier of the subscription." + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "tax_percentage": { + "type": "string", + "description": "The tax amount applied when billing the subscription.", + "title": "Tax Percentage" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + } + }, + "title": "Subscription" + } + } + } + } + ], + "operationId": "SubscriptionUpdate" + } + }, + "/subscriptions/{subscription_id}/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "card_id": { + "type": "string", + "description": "The ID of the customer card that is charged for the subscription.", + "title": "Card ID" + }, + "start_date": { + "type": "string", + "description": "The start date of the subscription, in YYYY-MM-DD format.", + "title": "Start Date" + }, + "canceled_date": { + "type": "string", + "description": "The subscription cancellation date, in YYYY-MM-DD format.", + "title": "Canceled Date" + }, + "paid_until_date": { + "type": "string", + "description": "The date paid until.", + "title": "Paid Until Date" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Subscription" + } + } + } + } + }, + "summary": "Cancel subscription", + "description": "Sets the canceled_date field to the end of the active billing period. After this date, the status changes from ACTIVE to CANCELED.", + "operationId": "SubscriptionCancel", + "parameters": [ + { + "name": "subscription_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Subscription ID", + "description": "The identifier of the subscription." + } + ] + } + }, + "/subscriptions/{subscription_id}/events": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription_events": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "subscription_event_type": { + "type": "string", + "description": "Type of the subscription event.", + "title": "Subscription Event Type" + }, + "effective_date": { + "type": "string", + "description": "The date, in YYYY-MM-DD format, when the subscription event went into effect.", + "title": "Effective Date" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan", + "title": "Plan ID" + } + } + }, + "title": "Subscription Events" + } + } + } + } + }, + "summary": "List subscription events", + "description": "Lists all events for a specific subscription.", + "operationId": "SubscriptionListEvents", + "parameters": [ + { + "name": "subscription_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Subscription ID", + "description": "The identifier of the subscription." + } + ] + } + }, + "/subscriptions/{subscription_id}/resume": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "subscription": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + }, + "plan_id": { + "type": "string", + "description": "The ID of the associated subscription plan.", + "title": "Plan ID" + }, + "customer_id": { + "type": "string", + "description": "The ID of this object representing the customer.", + "title": "Customer ID" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "price_override_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Price Override Money" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The current version of this object.", + "title": "Version" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "timezone": { + "type": "string", + "description": "The time zone used to interpret calendar dates. When an invoice is created, this field is set to the timezone specified for the seller location. The value cannot be changed.", + "title": "Timezone" + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + } + }, + "title": "Source" + } + }, + "title": "Subscription" + } + } + } + } + }, + "summary": "Resume subscription", + "description": "Resumes a deactivated subscription.", + "operationId": "SubscriptionResume", + "parameters": [ + { + "name": "subscription_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Subscription ID", + "description": "The identifier of the subscription." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": {} + } + } + ] + } + }, + "/terminals/checkouts": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "checkout": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "device_options": { + "type": "object", + "properties": { + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalCheckout.", + "title": "Device ID" + }, + "tip_settings": { + "type": "object", + "properties": { + "allow_tipping": { + "type": "boolean", + "description": "Indicates whether tipping is enabled for this checkout. Defaults to false.", + "title": "Allow Tipping" + } + }, + "title": "Tip Settings" + }, + "skip_receipt_screen": { + "type": "boolean", + "description": "Instructs the device to skip the receipt screen. Defaults to false.", + "title": "Skip Receipt Screen" + } + }, + "title": "Device Options" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + }, + "payment_type": { + "type": "string", + "description": "The type of payment the terminal should attempt to capture from. Defaults to CARD_PRESENT.", + "title": "Payment Type" + } + }, + "title": "Checkout" + } + } + } + } + }, + "summary": "Create terminal checkout", + "description": "Creates a Terminal checkout request and sends it to the specified device to take a payment for the requested amount.", + "operationId": "TerminalCreateCheckout", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "checkout": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "device_options": { + "type": "object", + "properties": { + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalCheckout.", + "title": "Device ID" + } + }, + "title": "Device Options" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + } + }, + "title": "Checkout" + } + } + } + } + ] + } + }, + "/terminals/checkouts/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "checkouts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reference_id": { + "type": "string", + "description": "An optional second ID used to associate the customer profile with an entity in another system.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "device_options": { + "type": "object", + "properties": { + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalCheckout.", + "title": "Device ID" + }, + "tip_settings": { + "type": "object", + "properties": { + "allow_tipping": { + "type": "boolean", + "description": "Indicates whether tipping is enabled for this checkout. Defaults to false.", + "title": "Allow Tipping" + } + }, + "title": "Tip Settings" + }, + "skip_receipt_screen": { + "type": "boolean", + "description": "Instructs the device to skip the receipt screen. Defaults to false.", + "title": "Skip Receipt Screen" + } + }, + "title": "Device Options" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "payment_ids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Payment IDs" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + } + } + }, + "title": "Checkouts" + }, + "cursor": { + "type": "string", + "description": "Include the pagination cursor in subsequent calls to this endpoint to retrieve the next set of results associated with the original query.", + "title": "Cursor" + } + } + } + } + }, + "summary": "Search terminal checkouts", + "description": "Retrieves a filtered list of Terminal checkout requests created by the account making the request.", + "operationId": "TerminalSearchCheckouts", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + }, + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + }, + "title": "Filter" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/terminals/checkouts/{checkout_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "checkout": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "note": { + "type": "string", + "description": "A custom note associated with the customer profile.", + "title": "Note" + }, + "device_options": { + "type": "object", + "properties": { + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalCheckout.", + "title": "Device ID" + }, + "tip_settings": { + "type": "object", + "properties": { + "allow_tipping": { + "type": "boolean", + "description": "Indicates whether tipping is enabled for this checkout. Defaults to false.", + "title": "Allow Tipping" + } + }, + "title": "Tip Settings" + }, + "skip_receipt_screen": { + "type": "boolean", + "description": "Instructs the device to skip the receipt screen. Defaults to false.", + "title": "Skip Receipt Screen" + } + }, + "title": "Device Options" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + } + }, + "title": "Checkout" + } + } + } + } + }, + "summary": "Get terminal checkout", + "description": "Retrieves a Terminal checkout request by checkout_id.", + "operationId": "TerminalGetCheckout", + "parameters": [ + { + "name": "checkout_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Checkout ID", + "description": "The identifier of the checkout." + } + ] + } + }, + "/terminals/checkouts/{checkout_id}/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "checkout": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reference_id": { + "type": "string", + "description": "An optional user-defined reference ID.", + "title": "Reference ID" + }, + "device_options": { + "type": "object", + "properties": { + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalCheckout.", + "title": "Device ID" + }, + "tip_settings": { + "type": "object", + "properties": { + "allow_tipping": { + "type": "boolean", + "description": "Indicates whether tipping is enabled for this checkout. Defaults to false.", + "title": "Allow Tipping" + } + }, + "title": "Tip Settings" + }, + "skip_receipt_screen": { + "type": "boolean", + "description": "Instructs the device to skip the receipt screen. Defaults to false.", + "title": "Skip Receipt Screen" + } + }, + "title": "Device Options" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "cancel_reason": { + "type": "string", + "description": "The reason for the cancelled transaction.", + "title": "Cancel Reason" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + } + }, + "title": "Checkout" + } + } + } + } + }, + "summary": "Cancel terminal checkout", + "description": "Cancels a Terminal checkout request if the status of the request permits it.", + "operationId": "TerminalCancelCheckout", + "parameters": [ + { + "name": "checkout_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Checkout ID", + "description": "The identifier of the checkout." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": {} + } + } + ] + } + }, + "/terminals/refunds": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refund": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalRefund.", + "title": "Device ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The brand of the card.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "last_4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + } + }, + "title": "Refund" + } + } + } + } + }, + "summary": "Create terminal refund", + "operationId": "TerminalCreateRefund", + "description": "Creates a request to refund an Interac payment completed on a Square Terminal.", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "idempotency_key": { + "type": "string", + "description": "A value you specify that uniquely identifies this request among all your requests. A common way to create a valid idempotency key is to use a Universally unique identifier (UUID).", + "title": "Idempotency Key" + }, + "refund": { + "type": "object", + "properties": { + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalRefund.", + "title": "Device ID" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + } + }, + "title": "Refund" + } + } + } + } + ] + } + }, + "/terminals/refunds/search": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refunds": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "refund_id": { + "type": "string", + "description": "The unique ID for this refund, generated by Square.", + "title": "Refund ID" + }, + "payment_id": { + "type": "string", + "description": "The ID of the payment.", + "title": "Payment ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The dispute reason why the cardholder initiated the dispute with their bank.", + "title": "Reason" + }, + "device_id": { + "type": "string", + "description": "The unique id of the device that used this code. Populated when the device is paired.", + "title": "Device ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The event time in ISO 8601 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "Last modification timestamp in RFC 3339 format", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The card's brand.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "Last 4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Expiration Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Expiration Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "location_id": { + "type": "string", + "description": "The identifier for the location.", + "title": "Location ID" + } + } + }, + "title": "Refunds" + } + } + } + } + }, + "summary": "Search terminal refunds", + "description": "Retrieves a filtered list of Interac Terminal refund requests created by the seller making the request.", + "operationId": "TerminalSearchRefunds", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "description": "A limit on the number of results to be returned in a single page. The limit is advisory - the implementation may return more or fewer results. If the supplied limit is negative, zero, or is higher than the maximum limit of 1,000, it will be ignored.", + "title": "Limit" + }, + "query": { + "type": "object", + "properties": { + "filter": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "The current status.", + "title": "Status" + } + }, + "title": "Filter" + } + }, + "title": "Query" + } + } + } + } + ] + } + }, + "/terminals/refunds/{terminal_refund_id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refund": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "refund_id": { + "type": "string", + "description": "The unique ID for this refund, generated by Square.", + "title": "Refund ID" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalRefund.", + "title": "Device ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The brand of the card.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "last_4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + } + }, + "title": "Refund" + } + } + } + } + }, + "summary": "Get terminal refund", + "description": "Retrieves an Interac Terminal refund object by ID.", + "operationId": "TerminalGetRefund", + "parameters": [ + { + "name": "terminal_refund_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Terminal Refund ID", + "description": "The identifier of the terminal refund." + } + ] + } + }, + "/terminals/refunds/{terminal_refund_id}/cancel": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "refund": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The unique, Square-issued identifier.", + "title": "ID" + }, + "payment_id": { + "type": "string", + "description": "The unique ID of the payment.", + "title": "Payment ID" + }, + "amount_money": { + "type": "object", + "properties": { + "amount": { + "type": "integer", + "format": "int32", + "description": "The amount.", + "title": "Amount" + }, + "currency": { + "type": "string", + "description": "The currency.", + "title": "Currency" + } + }, + "title": "Money" + }, + "reason": { + "type": "string", + "description": "The reason for this object.", + "title": "Reason" + }, + "device_id": { + "type": "string", + "description": "The unique ID of the device intended for this TerminalRefund.", + "title": "Device ID" + }, + "deadline_duration": { + "type": "string", + "description": "An RFC 3339 duration, after which the checkout is automatically canceled. A TerminalCheckout that is PENDING is automatically CANCELED and has a cancellation reason of TIMED_OUT. Default: 5 minutes from creation", + "title": "Deadline Duration" + }, + "status": { + "type": "string", + "description": "The current verification status of this object.", + "title": "Status" + }, + "cancel_reason": { + "type": "string", + "description": "The reason for the cancelled transaction.", + "title": "Cancel Reason" + }, + "created_at": { + "type": "string", + "description": "The timestamp specifying the creation time of this object, in RFC 3339 format.", + "title": "Created At" + }, + "updated_at": { + "type": "string", + "description": "The timestamp specifying the most recent update time of this object, in RFC 3339 format.", + "title": "Updated At" + }, + "app_id": { + "type": "string", + "description": "The ID of the application that created the checkout.", + "title": "App ID" + }, + "card": { + "type": "object", + "properties": { + "card_brand": { + "type": "string", + "description": "The brand of the card.", + "title": "Card Brand" + }, + "last_4": { + "type": "string", + "description": "The last 4 digits of the card number.", + "title": "last_4" + }, + "exp_month": { + "type": "integer", + "format": "int32", + "description": "The expiration month of the associated card as an integer between 1 and 12.", + "title": "Exp Month" + }, + "exp_year": { + "type": "integer", + "format": "int32", + "description": "The four-digit year of the card's expiration date.", + "title": "Exp Year" + }, + "fingerprint": { + "type": "string", + "description": "Intended as a Square-assigned identifier, based on the card number, to identify the card across multiple locations within a single application.", + "title": "Fingerprint" + }, + "card_type": { + "type": "string", + "description": "The type of the card.", + "title": "Card Type" + }, + "bin": { + "type": "string", + "description": "The first six digits of the card number, known as the Bank Identification Number (BIN).", + "title": "BIN" + } + }, + "title": "Card" + }, + "order_id": { + "type": "string", + "description": "The ID of the order.", + "title": "Order ID" + }, + "location_id": { + "type": "string", + "description": "The identifier of the location.", + "title": "Location ID" + } + }, + "title": "Refund" + } + } + } + } + }, + "summary": "Cancel terminal refund", + "description": "Cancels an Interac Terminal refund request by refund request ID if the status of the request permits it.", + "operationId": "TerminalCancelRefund", + "parameters": [ + { + "name": "terminal_refund_id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string", + "x-ms-summary": "Terminal Refund ID", + "description": "The identifier of the terminal refund." + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": {} + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://squareupsandbox.com/oauth2/authorize", + "tokenUrl": "https://connect.squareupsandbox.com/oauth2/token", + "scopes": { + "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE": "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "BANK_ACCOUNTS_READ CASH_DRAWER_READ CUSTOMERS_READ CUSTOMERS_WRITE DEVICE_CREDENTIAL_MANAGEMENT EMPLOYEES_READ EMPLOYEES_WRITE INVENTORY_READ INVENTORY_WRITE ITEMS_READ ITEMS_WRITE LOYALTY_READ LOYALTY_WRITE MERCHANT_PROFILE_READ ORDERS_READ ORDERS_WRITE PAYMENTS_READ PAYMENTS_WRITE PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS PAYMENTS_WRITE_IN_PERSON SETTLEMENTS_READ TIMECARDS_READ TIMECARDS_WRITE TIMECARDS_SETTINGS_READ TIMECARDS_SETTINGS_WRITE APPOINTMENTS_READ APPOINTMENTS_WRITE APPOINTMENTS_BUSINESS_SETTINGS_READ INVOICES_READ INVOICES_WRITE SUBSCRIPTIONS_READ SUBSCRIPTIONS_WRITE DISPUTES_READ DISPUTES_WRITE GIFTCARDS_READ GIFTCARDS_WRITE ONLINE_STORE_SNIPPETS_WRITE ONLINE_STORE_SNIPPETS_READ ONLINE_STORE_SITE_READ PAYMENTS_WRITE_SHARED_ONFILE" + ] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://squareup.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://squareup.com/us/en/legal/general/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Commerce;Sales and CRM" + } + ] +} \ No newline at end of file diff --git a/independent-publisher-connectors/Square Payments/apiProperties.json b/independent-publisher-connectors/Square Payments/apiProperties.json new file mode 100644 index 0000000000..fdbe47dc13 --- /dev/null +++ b/independent-publisher-connectors/Square Payments/apiProperties.json @@ -0,0 +1,47 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[YOUR_CLIENT_ID]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://squareupsandbox.com/oauth2/authorize" + }, + "tokenUrl": { + "value": "https://connect.squareupsandbox.com/oauth2/token" + }, + "refreshUrl": { + "value": "https://connect.squareupsandbox.com/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "Square-Version", + "parameters": { + "x-ms-apimTemplateParameter.name": "Square-Version", + "x-ms-apimTemplateParameter.value": "2021-10-20", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Troy Taylor", + "stackOwner": "Square, Inc." + } +} \ No newline at end of file diff --git a/independent-publisher-connectors/Square Payments/readme.md b/independent-publisher-connectors/Square Payments/readme.md new file mode 100644 index 0000000000..1f882760f2 --- /dev/null +++ b/independent-publisher-connectors/Square Payments/readme.md @@ -0,0 +1,205 @@ +# Square Payments +Square helps millions of sellers run their business - from secure credit card processing to point of sale solutions. This connector contains actions for the following endpoints: Payments, Terminal, Orders, Subscriptions, Invoices, Catalog, Inventory and Customers. + +## Publisher: Troy Taylor + +## Prerequisites +Use of this connector will require permission from the owner of a seller account for production use with OAuth 2. You should also sign up for a [Square Developer account](https://developer.squareup.com/us/en) to gain access to a sandbox environment, also using OAuth 2. + +## Obtaining Credentials +In your Square Developer account, you will need to create an application registration to be granted a sandbox OAuth 2 application ID and access token. You will also need to set the OAuth redirect URL to https://global.consent.azure-apim.net/redirect. Once you are ready to use the connector in production, the owner will need to register a production application with the same redirect URL. + +## Supported Operations + +### Apple Pay +#### Register domain for Apple Pay +Activates a domain for use with Apple Pay on the Web and Square. A validation is performed on this domain by Apple to ensure that it is properly set up as an Apple Pay enabled domain. +### Cards +#### List cards +Retrieves a list of cards owned by the account making the request. +#### Create card +Adds a card on file to an existing merchant. +#### Retrieve card +Retrieves details for a specific Card. +#### Disable card +Disables the card, preventing any further updates or charges. Disabling an already disabled card is allowed but has no effect. +### Catalog +#### Batch delete catalog objects +Deletes a set of CatalogItems based on the provided list of target IDs and returns a set of successfully deleted IDs in the response. +#### Batch retrieve catalog objects +Returns a set of objects based on the provided ID. Each CatalogItem returned in the set includes all of its child information including: all of its CatalogItemVariation objects, references to its CatalogModifierList objects, and the ids of any CatalogTax objects that apply to it. +#### Batch upsert catalog objects +Creates or updates up to 10,000 target objects based on the provided list of objects. The target objects are grouped into batches and each batch is inserted/updated in an all-or-nothing manner. If an object within a batch is malformed in some way, or violates a database constraint, the entire batch containing that item will be disregarded. However, other batches in the same request may still succeed. Each batch may contain up to 1,000 objects, and batches will be processed in order as long as the total object count for the request (items, variations, modifier lists, discounts, and taxes) is no more than 10,000. +#### Catalog info +Retrieves information about the Square Catalog API, such as batch size limits that can be used by the BatchUpsertCatalogObjects endpoint. +#### List catalog +Returns a list of CatalogObjects that includes all objects of a set of desired types (for example, all CatalogItem and CatalogTax objects) in the catalog. ListCatalog does not return deleted catalog items. +#### Upsert catalog object +Creates or updates the target CatalogObject. +#### Retrieve catalog object +Returns a single CatalogItem as a CatalogObject based on the provided ID. The returned object includes all of the relevant CatalogItem information including: CatalogItemVariation children, references to its CatalogModifierList objects, and the ids of any CatalogTax objects that apply to it. +#### Delete catalog object +Deletes a single CatalogObject based on the provided ID and returns the set of successfully deleted IDs in the response. Deletion is a cascading event such that all children of the targeted object are also deleted. For example, deleting a CatalogItem will also delete all of its CatalogItemVariation children. +#### Search catalog objects +Searches for CatalogObject of any type by matching supported search attribute values, excluding custom attribute values on items or item variations, against one or more of the specified query filters. +#### Update item modifier lists +Updates the CatalogModifierList objects that apply to the targeted CatalogItem without having to perform an upsert on the entire item. +#### Update item taxes +Updates the CatalogTax objects that apply to the targeted CatalogItem without having to perform an upsert on the entire item. +### Checkouts +#### Create checkout +Links a checkoutId to a checkout_page_url that customers are directed to in order to provide their payment information using a payment processing workflow. +### Customers +#### List customer groups +Retrieves the list of customer groups of a business. +#### Create customer group +Creates a new customer group for a business. +#### Retrieve customer group +Retrieves a specific customer group. +#### Delete customer group +Deletes a customer group as identified by the group_id value. +#### Update customer group +Updates a customer group. +#### List customer segments +Retrieves the list of customer segments of a business. +#### Retrieve customer segment +Retrieves a specific customer segment. +#### List customers +Lists customer profiles associated with a Square account. Under normal operating conditions, newly created or updated customer profiles become available for the listing operation in well under 30 seconds. Occasionally, propagation of the new or updated profiles can take closer to one minute or longer, especially during network incidents and outages. +#### Create customer +Creates a new customer for a business. +#### Search customers +Searches the customer profiles associated with a Square account using a supported query filter. Calling SearchCustomers without any explicit query filter returns all customer profiles ordered alphabetically based on given_name and family_name. +#### Retrieve customer +Returns details for a single customer. +#### Delete customer +Deletes a customer profile from a business. This operation also unlinks any associated cards on file. +#### Update customer +Updates a customer profile. To change an attribute, specify the new value. To remove an attribute, specify the value as an empty string or empty object. +#### Remove group from customer +Removes a group membership from a customer. The customer is identified by the customer_id value and the customer group is identified by the group_id value. +#### Add group to customer +Adds a group membership to a customer. The customer is identified by the customer_id value and the customer group is identified by the group_id value. +### Disputes +#### List disputes +Returns a list of disputes associated with a particular account. +#### Retrieve dispute +Returns details about a specific dispute. +#### Accept dispute +Accepts the loss on a dispute. Square returns the disputed amount to the cardholder and updates the dispute state to ACCEPTED. Square debits the disputed amount from the seller’s Square account. If the Square account does not have sufficient funds, Square debits the associated bank account. +#### List dispute evidence +Returns a list of evidence associated with a dispute. +#### Create dispute evidence text +Uploads text to use as evidence for a dispute challenge. +#### Retrieve dispute evidence +Returns the evidence metadata specified by the evidence ID in the request URL path. You must maintain a copy of the evidence you upload if you want to reference it later. You cannot download the evidence after you upload it. +#### Delete dispute evidence +Removes specified evidence from a dispute. +#### Submit evidence +Submits evidence to the cardholder's bank. Before submitting evidence, Square compiles all available evidence. This includes evidence uploaded using the CreateDisputeEvidenceFile and CreateDisputeEvidenceText endpoints and evidence automatically provided by Square, when available. +### Inventory +#### Retrieve inventory adjustment +Returns the InventoryAdjustment object with the provided adjustment_id. +#### Batch change inventory +Applies adjustments and counts to the provided item quantities. On success: returns the current calculated counts for all objects referenced in the request. +#### Batch retrieve inventory changes +Returns historical physical counts and adjustments based on the provided filter criteria. +#### Batch retrieve inventory counts +Returns current counts for the provided CatalogObjects at the requested Locations. +#### Retrieve inventory physical count +Returns the InventoryPhysicalCount object with the provided physical_count_id. +#### Retrieve inventory transfer (Beta) +Returns the InventoryTransfer object with the provided transfer_id. +#### Retrieve inventory count +Retrieves the current calculated stock count for a given CatalogObject at a given set of Locations. +### Invoices +#### List invoices +Returns a list of invoices for a given location. +#### Create invoice +Creates a draft invoice for an order created using the Orders API. A draft invoice remains in your account and no action is taken. You must publish the invoice before Square can process it (send it to the customer's email address or charge the customer’s card on file). +#### Search invoices +Searches for invoices from a location specified in the filter. +#### Get invoice +Retrieves an invoice by invoice ID. +#### Delete invoice +Deletes the specified invoice. When an invoice is deleted, the associated order status changes to CANCELED. You can only delete a draft invoice (you cannot delete a published invoice, including one that is scheduled for processing). +#### Update invoice +Updates an invoice by modifying fields, clearing fields, or both. +#### Cancel invoice +Cancels an invoice. The seller cannot collect payments for the canceled invoice. +#### Publish invoice +Publishes the specified draft invoice. After an invoice is published, Square follows up based on the invoice configuration. For example, Square sends the invoice to the customer's email address, charges the customer's card on file, or does nothing. Square also makes the invoice available on a Square-hosted invoice page. +### Orders +#### Create order +Creates a new order that can include information about products for purchase and settings to apply to the purchase. +#### Batch retrieve orders +Retrieves a set of orders by their IDs. If a given order ID does not exist, the ID is ignored instead of generating an error. +#### Calculate order (Beta) +Enables applications to preview order pricing without creating an order. +#### Clone order (Beta) +Creates a new order, in the DRAFT state, by duplicating an existing order. The newly created order has only the core fields (such as line items, taxes, and discounts) copied from the original order. +#### Search orders +Search all orders for one or more locations. Orders include all sales, returns, and exchanges regardless of how or when they entered the Square ecosystem (such as Point of Sale, Invoices, and Connect APIs). +#### Retrieve order +Retrieves an Order by ID. +#### Update order (Beta) +Updates an open order by adding, replacing, or deleting fields. Orders with a COMPLETED or CANCELED state cannot be updated. +#### Pay order (Beta) +Pay for an order using one or more approved payments or settle an order with a total of 0. The total of the payment_ids listed in the request must be equal to the order total. Orders with a total amount of 0 can be marked as paid by specifying an empty array of payment_ids in the request. +### Payments +#### List payments +Retrieves a list of payments taken by the account making the request. Results are eventually consistent, and new payments or changes to payments might take several seconds to appear. +#### Create payment +Creates a payment using the provided source. You can use this endpoint to charge a card (credit/debit card or Square gift card) or record a payment that the seller received outside of Square (cash payment from a buyer or a payment that an external entity processed on behalf of the seller). +#### Cancel payment by idempotency key +Cancels (voids) a payment identified by the idempotency key that is specified in the request. Use this method when the status of a CreatePayment request is unknown (for example, after you send a CreatePayment request, a network error occurs and you do not get a response). In this case, you can direct Square to cancel the payment using this endpoint. In the request, you provide the same idempotency key that you provided in your CreatePayment request that you want to cancel. After canceling the payment, you can submit your CreatePayment request again. Note that if no payment with the specified idempotency key is found, no action is taken and the endpoint returns successfully. +#### Get payment +Retrieves details for a specific payment. +#### Update payment +Updates a payment with the APPROVED status. You can update the amount_money and tip_money using this endpoint. +#### Cancel payment +Cancels (voids) a payment. You can use this endpoint to cancel a payment with the APPROVED status. +#### Complete payment +Completes (captures) a payment. By default, payments are set to complete immediately after they are created. +### Refunds +#### List payment refunds +Retrieves a list of refunds for the account making the request. Results are eventually consistent, and new refunds or changes to refunds might take several seconds to appear. +#### Refund payment +Refunds a payment. You can refund the entire payment amount or a portion of it. You can use this endpoint to refund a card payment or record a refund of a cash or external payment. +#### Get payment refund +Retrieves a specific refund using the refund_id. +### Subscriptions +#### Create subscription +Creates a subscription for a customer to a subscription plan. If you provide a card on file in the request, Square charges the card for the subscription. Otherwise, Square bills an invoice to the customer's email address. The subscription starts immediately, unless the request includes the optional start_date. Each individual subscription is associated with a particular location. +#### Search subscriptions +Searches for subscriptions. Results are ordered chronologically by subscription creation date. If the request specifies more than one location ID, the endpoint orders the result by location ID, and then by creation date within each location. If no locations are given in the query, all locations are searched. +#### Retrieve subscription +Retrieves a subscription. +#### Update subscription +Updates a subscription. You can set, modify, and clear the subscription field values. +#### Cancel subscription +Sets the canceled_date field to the end of the active billing period. After this date, the status changes from ACTIVE to CANCELED. +#### List subscription events +Lists all events for a specific subscription. +#### Resume subscription +Resumes a deactivated subscription. +### Terminals +#### Create terminal checkout +Creates a Terminal checkout request and sends it to the specified device to take a payment for the requested amount. +#### Search terminal checkouts +Retrieves a filtered list of Terminal checkout requests created by the account making the request. +#### Get terminal checkout +Retrieves a Terminal checkout request by checkout_id. +#### Cancel terminal checkout +Cancels a Terminal checkout request if the status of the request permits it. +#### Create terminal refund +Creates a request to refund an Interac payment completed on a Square Terminal. +#### Search terminal refunds +Retrieves a filtered list of Interac Terminal refund requests created by the seller making the request. +#### Get terminal refund +Retrieves an Interac Terminal refund object by ID. +#### Cancel terminal refund +Cancels an Interac Terminal refund request by refund request ID if the status of the request permits it. + +## Known Issues and Limitations +There are some actions that have '(Beta)' appended to the action name. These actions may not return all fields while still in beta. From 0e16ea142c914dda0b7e733682660302ff3feb68 Mon Sep 17 00:00:00 2001 From: Akuthota Deekshith <77965954+A-Deekshith@users.noreply.github.com> Date: Tue, 21 Dec 2021 06:26:25 +0530 Subject: [PATCH 191/219] Zoom Meetings (Independent Publisher) (Student) (#1143) * Adding Zoom Meetings to the independent-publisher-connectors folder * Update readme.md Added Readme.md File * Update apiProperties.json Added StackOwner * Added Obtaining Credentials Section * Added Response Schema * Updated stackOwner * Added Schema and Metadata Updated the entire File. Request schema for Create Meeting is done. * Few Descriptions Updated participant_video pre_schedule * Added Dynamic Request URL * Added metadata Also Updated participant_video Description * Added x-ms-summary Also Removed Extra space in the URL * Removed all title and Fixed enum * Fixed Errors related to default respose * Added x-ms-url-encoding * Added consumes * Added meeting:master * Made Changes to Documentation Fixed Redirect URI Error * Fixes Invalid Scope Scopes must be Match. --- .../Zoom Meetings/apiDefinition.swagger.json | 539 ++++++++++++++++++ .../Zoom Meetings/apiProperties.json | 37 ++ .../Zoom Meetings/readme.md | 44 ++ 3 files changed, 620 insertions(+) create mode 100644 independent-publisher-connectors/Zoom Meetings/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/Zoom Meetings/apiProperties.json create mode 100644 independent-publisher-connectors/Zoom Meetings/readme.md diff --git a/independent-publisher-connectors/Zoom Meetings/apiDefinition.swagger.json b/independent-publisher-connectors/Zoom Meetings/apiDefinition.swagger.json new file mode 100644 index 0000000000..191765864f --- /dev/null +++ b/independent-publisher-connectors/Zoom Meetings/apiDefinition.swagger.json @@ -0,0 +1,539 @@ +{ + "swagger": "2.0", + "info": { + "title": "Zoom Meetings", + "description": "This Connector will help to automate Zoom Meeting Operations", + "version": "1.0", + "contact": { + "name": "Akuthota Deekshith", + "url": "https://www.linkedin.com/in/akuthota-deekshith/", + "email": "akuthotadeekshith28@gmail.com" + } + }, + "host": "api.zoom.us", + "basePath": "/", + "schemes": [ + "https" + ], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://zoom.us/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://zoom.us/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Communication;Collaboration" + } + ], + + "consumes": [], + "produces": [], + "paths": { + "/v2/users/me/meetings": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "page_size": { + "type": "integer", + "format": "int32", + "description": "The number of records returned with a single API" + }, + "total_records": { + "type": "integer", + "format": "int32", + "description": "The Total number of all the records available across pages" + }, + "next_page_token": { + "type": "string", + "description": "The next page token is used to paginate through large result sets" + }, + "meetings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "uuid" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "id" + }, + "host_id": { + "type": "string", + "description": "ID of the user who set as the host of the meeting" + }, + "topic": { + "type": "string", + "description": "topic" + }, + "type": { + "type": "integer", + "format": "int32", + "description": "type" + }, + "start_time": { + "type": "string", + "description": "Meeting start time" + }, + "duration": { + "type": "integer", + "format": "int32", + "description": "duration" + }, + "timezone": { + "type": "string", + "description": "timezone" + }, + "created_at": { + "type": "string", + "description": "Time of Creation" + }, + "join_url": { + "type": "string", + "description": "URL using which participants can join a meeting" + } + } + }, + "description": "meetings" + } + } + } + } + }, + "summary": "Get Meetings", + "description": "Gives the Upcoming Meetings", + "operationId": "GetMeetings", + "parameters": [] + }, + "post": { + "consumes": ["application/json"], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "page_size": { + "type": "integer", + "format": "int32", + "description": "The number of records returned with a single API" + }, + "total_records": { + "type": "integer", + "format": "int32", + "description": "The Total number of all the records available across pages" + }, + "next_page_token": { + "type": "string", + "description": "The next page token is used to paginate through large result sets" + }, + "meetings": { + "type": "array", + "items": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "uuid" + }, + "id": { + "type": "integer", + "format": "int32", + "description": "id" + }, + "host_id": { + "type": "string", + "description": "ID of the user who set as the host of the meeting" + }, + "topic": { + "type": "string", + "description": "topic" + }, + "start_time": { + "type": "string", + "description": "Meeting start time" + }, + "duration": { + "type": "integer", + "format": "int32", + "description": "duration" + }, + "timezone": { + "type": "string", + "description": "timezone" + }, + "created_at": { + "type": "string", + "description": "Time of Creation" + }, + "join_url": { + "type": "string", + "description": "URL using which participants can join a meeting" + } + } + }, + "description": "meetings" + } + } + } + } + }, + "summary": "Create Meeting", + "description": "For Creating Meetings", + "operationId": "CreateMeeting", + "parameters": [ + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "topic": { + "type": "string", + "description": "topic" + }, + "type": { + "type": "integer", + "format": "int32", + "description": "type" + }, + "start_time": { + "type": "string", + "description": "The meeting's start time" + }, + "duration": { + "type": "string", + "description": "duration" + }, + "settings": { + "type": "object", + "properties": { + "host_video": { + "type": "boolean", + "description": "Whether to start meetings with the host video on", + "enum": [ + true, + false + ] + }, + "participant_video": { + "type": "boolean", + "description": "Whether to start meetings with the participant video on", + "enum": [ + true, + false + ] + }, + "join_before_host": { + "type": "boolean", + "description": "Whether participants can join the meeting before its host", + "enum": [ + true, + false + ] + }, + "mute_upon_entry": { + "type": "string", + "description": "Whether to mute participants upon entry" + }, + "watermark": { + "type": "string", + "description": "watermark" + }, + "audio": { + "type": "string", + "description": "audio" + }, + "auto_recording": { + "type": "string", + "description": "The automatic recording settings local cloud none" + } + }, + "description": "settings" + } + } + } + } + ] + } + }, + + "/v2/meetings/{meetingid}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "uuid": { + "type": "string", + "description": "Unique Meeting Id for each meeting instance will generate its own Meeting UUID." + }, + "id": { + "type": "integer", + "format": "int32", + "description": "Meeting ID is also known as the meeting number in long format" + }, + "host_id": { + "type": "string", + "description": "ID of the user who is set as host of meeting" + }, + "host_email": { + "type": "string", + "description": "Email address of the meeting host" + }, + "assistant_id": { + "type": "string", + "description": "Unique identifier of the scheduler who scheduled this meeting on behalf of the host" + }, + "topic": { + "type": "string", + "description": "topic" + }, + "type": { + "type": "integer", + "format": "int32", + "description": "type" + }, + "status": { + "type": "string", + "description": "status" + }, + "start_time": { + "type": "string", + "description": "Meeting start time in GMT/UTC" + }, + "duration": { + "type": "integer", + "format": "int32", + "description": "duration" + }, + "timezone": { + "type": "string", + "description": "timezone" + }, + "agenda": { + "type": "string", + "description": "agenda" + }, + "created_at": { + "type": "string", + "description": "Time of creation" + }, + "start_url": { + "type": "string", + "description": "Using which a host or an alternative host can start the Meeting" + }, + "join_url": { + "type": "string", + "description": "URL using which participants can join a meeting" + }, + "password": { + "type": "string", + "description": "password" + }, + "h323_password": { + "type": "string", + "description": "room system passcode" + }, + "pstn_password": { + "type": "string", + "description": "pstn password" + }, + "encrypted_password": { + "type": "string", + "description": "Encrypted passcode for third party endpoints (H323/SIP)" + }, + "settings": { + "type": "object", + "properties": { + "host_video": { + "type": "boolean", + "description": "Start video when the host joins the meeting" + }, + "participant_video": { + "type": "boolean", + "description": "Whether to start meetings with the participant video on" + }, + "cn_meeting": { + "type": "boolean", + "description": "Host meeting in China" + }, + "in_meeting": { + "type": "boolean", + "description": "Host meeting in India" + }, + "join_before_host": { + "type": "boolean", + "description": "Allow participants to join the meeting before the host starts the meeting" + }, + "jbh_time": { + "type": "integer", + "format": "int32", + "description": "Join Before Host with few options" + }, + "mute_upon_entry": { + "type": "boolean", + "description": "Mute participants upon entry" + }, + "watermark": { + "type": "boolean", + "description": "watermark" + }, + "use_pmi": { + "type": "boolean", + "description": "Use a personal meeting ID. Only used for scheduled meetings and recurring meetings without fixed time" + }, + "approval_type": { + "type": "integer", + "format": "int32", + "description": "Enable registration and set approval for the registration" + }, + "audio": { + "type": "string", + "description": "audio" + }, + "auto_recording": { + "type": "string", + "description": "local cloud none three possibilities" + }, + "enforce_login": { + "type": "boolean", + "description": "Only signed in users can join this meeting" + }, + "enforce_login_domains": { + "type": "string", + "description": "Only signed in users with specified domains can join meetings" + }, + "alternative_hosts": { + "type": "string", + "description": "Alternative host's emails or IDs multiple values are separated by a semicolon" + }, + "close_registration": { + "type": "boolean", + "description": "Close registration after event date" + }, + "show_share_button": { + "type": "boolean", + "description": "Show social share buttons on the meeting registration page" + }, + "allow_multiple_devices": { + "type": "boolean", + "description": "Allow attendees to join the meeting from multiple devices" + }, + "registrants_confirmation_email": { + "type": "boolean", + "description": "Whether to send registrants an email confirmation" + }, + "waiting_room": { + "type": "boolean", + "description": "Enable waiting room" + }, + "request_permission_to_unmute_participants": { + "type": "boolean", + "description": "Permission for participants to request for unmute" + }, + "registrants_email_notification": { + "type": "boolean", + "description": "Whether to send registrants email notifications about their registration approval cancellation or rejection" + }, + "meeting_authentication": { + "type": "boolean", + "description": "Only authenticated users can join meetings" + }, + "encryption_type": { + "type": "string", + "description": "Choose between enhanced encryption and end-to-end encryption" + }, + "approved_or_denied_countries_or_regions": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "description": "enable" + } + }, + "description": "Approve or block users from specific regions or countries from joining this meeting" + }, + "breakout_room": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "description": "enable" + } + }, + "description": "Breakout room" + }, + "alternative_hosts_email_notification": { + "type": "boolean", + "description": "Flag to determine whether to send email notifications to alternative hosts" + }, + "device_testing": { + "type": "boolean", + "description": "Device Testing" + } + }, + "description": "settings" + }, + "pre_schedule": { + "type": "boolean", + "description": "whether to create a prescheduled meeting" + } + } + } + } + }, + "summary": "Meeting Details", + "description": "For Selected Meeting you will get the Details", + "operationId": "MeetingDetails", + "parameters": [ + { + "name": "meetingid", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Zoom Meeting Id", + "x-ms-url-encoding":"single", + "description": "Meeting ID also known as the meeting number in long format" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://zoom.us/oauth/authorize", + "tokenUrl": "https://zoom.us/oauth/token", + "scopes": { + "meeting:read:admin meeting:read": "meeting:read:admin meeting:read" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "meeting:read:admin meeting:read" + ] + } + ], + "tags": [] +} diff --git a/independent-publisher-connectors/Zoom Meetings/apiProperties.json b/independent-publisher-connectors/Zoom Meetings/apiProperties.json new file mode 100644 index 0000000000..573ccf27e9 --- /dev/null +++ b/independent-publisher-connectors/Zoom Meetings/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "Zoom Client ID", + "scopes": [ + "meeting:read:admin meeting:master" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://zoom.us/oauth/authorize" + }, + "tokenUrl": { + "value": "https://zoom.us/oauth/token" + }, + "refreshUrl": { + "value": "https://zoom.us/oauth/token" + } + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Akuthota Deekshith", + "stackOwner": "Zoom Video Communications, Inc." + } +} diff --git a/independent-publisher-connectors/Zoom Meetings/readme.md b/independent-publisher-connectors/Zoom Meetings/readme.md new file mode 100644 index 0000000000..bc7b3e8a58 --- /dev/null +++ b/independent-publisher-connectors/Zoom Meetings/readme.md @@ -0,0 +1,44 @@ +# Zoom Connector +Zoom is widely used for Virtual Meetings. Using this Connector you can Create Meetings, Get Meetings and Fetch Meeting Details (Individually). In some scenarios we want to perform certain actions Ex: Add Meetings into Excel. For this process Zoom Meetings Connector will gets the work done. + +## Prerequisites +You will need the following to proceed: +* A Microsoft Power Apps or Power Automate plan with custom connector feature +* A Zoom Account + +## Supported Operations +Currently there are three actions: +* `Create Meeting` : This Action will help to create Meeting with few inputs required for the Meeting. You will get a Response which contains all the Meeting Details Ex: Meeting URL, Meeting ID +* `Get Meetings` : This Action will get the Meetings that you have in Zoom Platform. The Response you will get will contain all the Meeting details for every Meeting that you created. +* `Meeting Details` : This Action will help the get the details for a specific Meeting. The Response will contain all the Meeting details that you requested. + +## The API Documentation +This is the official documentation for Zoom API: https://marketplace.zoom.us/docs/api-reference/introduction + +## Building a Connector +Creating App: +* Go to Zoom Developer Portal https://marketplace.zoom.us/. +* Sign In with your Account. +* Then to Develop Tab and Build App. +* Choose App as OAuth to create. +* Enter Name and select Account-level app. Turn off the toggle of publishing your app. + +Getting Credentials: +* In "My Dashboard" go to "Created Apps". +* Click on App Name. +* Copy Client ID and Client Secret and Add this in the Security tab of the Connector. +* In "Redirect URL for OAuth" https://us.flow.microsoft.com/en-us/. +* In "Add Allow List" insert https://us.flow.microsoft.com/en-us/ and https://global.consent.azure-apim.net/redirect. +* In Information Tab Add Contact Details, Short Description and Long Description. +* `Note` : Scopes in Marketplace and Security Tab must be Same. +* The App uses admin read and write. So you need the following scope to be included meeting:write:admin, meeting:read:admin, meeting:master. +* `Note` : There is small issue while creating a connection in https://us.flow.microsoft.com/en-us/. +* There is an Error Message "Invalid Scope". +* For fixing this Simply Sign Out(https://1drv.ms/u/s!An7eWraK_9KraqxPrDbgQUQf_hw?e=UhHW1B) Zoom Account and Sign In Again. +* That's it you are ready to go. + + + + +## Known Issues and Limitations +No issues and limitations are known at this time From c3c0dcfa5944029fc8bbced495701feb4b4b0db6 Mon Sep 17 00:00:00 2001 From: Hrvoje Kusulja Date: Tue, 21 Dec 2021 02:57:05 +0100 Subject: [PATCH 192/219] New Nodefusion Portal certified connector submission (#1278) * Create Readme.md * Nodefusion Portal certified connector added * action route updated * updated according to the PR comments * x-ms-summary back in the code * security property removal revert Co-authored-by: mmustapic --- .../Nodefusion Portal/Readme.md | 27 +++ .../apiDefinition.swagger.json | 187 ++++++++++++++++++ .../Nodefusion Portal/apiProperties.json | 37 ++++ 3 files changed, 251 insertions(+) create mode 100644 certified-connectors/Nodefusion Portal/Readme.md create mode 100644 certified-connectors/Nodefusion Portal/apiDefinition.swagger.json create mode 100644 certified-connectors/Nodefusion Portal/apiProperties.json diff --git a/certified-connectors/Nodefusion Portal/Readme.md b/certified-connectors/Nodefusion Portal/Readme.md new file mode 100644 index 0000000000..7dbd7ce75c --- /dev/null +++ b/certified-connectors/Nodefusion Portal/Readme.md @@ -0,0 +1,27 @@ +# Nodefusion Portal +Nodefusion Portal connector is published here with the intent to provide Nodefusion customers with the actions they already have in Nodefusion Portal so they can automate their processes. + +## Publisher: Nodefusion + +## Prerequisites +* Valid [Nodefusion Portal](https://portal.nodefusion.com/) account +* Assigned permissions to organization + +## Supported Operations +The connector supports the following operations: +### Get Organization Profile +Get your organization profile properties along with its contacts and billing services. + +## Obtaining Credentials +You should use your Organization's AD Account when creating PowerApps Connection, the same one you use on [Nodefusion Portal](https://portal.nodefusion.com/). + +## Known Issues and Limitations +- The connector is based on integration with Nodefusion Portal accounts. +- It is not currently possible to create, get cases +- It is not currently possible to create and update subscriptions +- It is not currently possible to create domains +- It is not currently possible to create hosting plans +- It is not currently possible to get service roadmaps + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. diff --git a/certified-connectors/Nodefusion Portal/apiDefinition.swagger.json b/certified-connectors/Nodefusion Portal/apiDefinition.swagger.json new file mode 100644 index 0000000000..dd4ac5006f --- /dev/null +++ b/certified-connectors/Nodefusion Portal/apiDefinition.swagger.json @@ -0,0 +1,187 @@ +{ + "swagger": "2.0", + "info": { + "title": "Nodefusion Portal", + "description": "A Nodefusion Portal Connector is used for various actions, such as opening support case, managing subscriptions, checking service roadmaps and other actions available in Nodefusion Portal for Nodefusion's customers", + "contact": { + "name": "Nodefusion", + "url": "https://www.nodefusion.com", + "email": "nodefusion@nodefusion.com" + }, + "license": { + "name": "MIT", + "url": "http://opensource.org/licenses/MIT" + }, + "version": "1.0.0" + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.nodefusion.com" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.nodefusion.com/terms" + }, + { + "propertyName": "Categories", + "propertyValue": "IT Operations;Website" + } + ], + "host": "3proportal-functions.azurewebsites.net", + "basePath": "/api", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/organizations/{organizationId}/Profile": { + "get": { + "tags": [ + "Organization", + "Profile" + ], + "summary": "Get Organization Profile", + "description": "This function returns the data about the requested organization if you have permissions", + "operationId": "GetOrgProfile", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "path", + "name": "organizationId", + "x-ms-summary": "organizationId", + "x-ms-url-encoding": "single", + "description": "This parameter is a Guid of your Organization", + "required": true, + "type": "string", + "format": "uuid" + } + ], + "responses": { + "200": { + "description": "Payload of OrganizationProfileResponse", + "schema": { + "$ref": "#/definitions/organizationProfileResponse" + }, + "x-ms-summary": "The response" + } + }, + "security": [ + { + "oauth2_auth": [ + "https://3procloud.onmicrosoft.com/3proportal/user_impersonation" + ] + } + ], + "x-ms-visibility": "important" + } + } + }, + "definitions": { + "organizationBillingServiceResponse": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "name": { + "type": "string" + }, + "billTo": { + "type": "string" + }, + "businessUnit": { + "type": "string" + } + } + }, + "organizationProfileContactResponse": { + "type": "object", + "properties": { + "id": { + "format": "uuid", + "type": "string" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "workPhone": { + "type": "string" + }, + "mobilePhone": { + "type": "string" + }, + "isCoordinator": { + "type": "boolean" + } + } + }, + "organizationProfileResponse": { + "type": "object", + "properties": { + "companyName": { + "type": "string" + }, + "companyAddress": { + "type": "string" + }, + "organizationID": { + "format": "uuid", + "type": "string" + }, + "vatID": { + "type": "string" + }, + "city": { + "type": "string" + }, + "country": { + "type": "string" + }, + "billingServices": { + "type": "array", + "items": { + "$ref": "#/definitions/organizationBillingServiceResponse" + } + }, + "contacts": { + "type": "array", + "items": { + "$ref": "#/definitions/organizationProfileContactResponse" + } + } + } + } + }, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.microsoftonline.com/te/3procloud.onmicrosoft.com/b2c_1a_signuporsigninwithaad/oauth2/v2.0/authorize", + "tokenUrl": "https://login.microsoftonline.com/te/3procloud.onmicrosoft.com/b2c_1a_signuporsigninwithaad/oauth2/v2.0/token", + "scopes": { + "https://3procloud.onmicrosoft.com/3proportal/user_impersonation": "https://3procloud.onmicrosoft.com/3proportal/user_impersonation" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "https://3procloud.onmicrosoft.com/3proportal/user_impersonation" + ] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Nodefusion Portal/apiProperties.json b/certified-connectors/Nodefusion Portal/apiProperties.json new file mode 100644 index 0000000000..add3545645 --- /dev/null +++ b/certified-connectors/Nodefusion Portal/apiProperties.json @@ -0,0 +1,37 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[Dummy]]", + "scopes": [ + "https://3procloud.onmicrosoft.com/3proportal/user_impersonation" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://login.microsoftonline.com/te/3procloud.onmicrosoft.com/b2c_1a_signuporsigninwithaad/oauth2/v2.0/authorize" + }, + "tokenUrl": { + "value": "https://login.microsoftonline.com/te/3procloud.onmicrosoft.com/b2c_1a_signuporsigninwithaad/oauth2/v2.0/token" + }, + "refreshUrl": { + "value": "https://login.microsoftonline.com/te/3procloud.onmicrosoft.com/b2c_1a_signuporsigninwithaad/oauth2/v2.0/token" + } + } + } + } + }, + "iconBrandColor": "#d37352", + "capabilities": ["actions"], + "publisher": "Nodefusion", + "stackOwner": "Nodefusion" + } +} \ No newline at end of file From 7ca80eedb5558b45f431e4fed844792237ac2ad1 Mon Sep 17 00:00:00 2001 From: InEightDevOps <94008776+InEightDevOps@users.noreply.github.com> Date: Mon, 20 Dec 2021 20:05:27 -0600 Subject: [PATCH 193/219] updated the files based on review from microsoft (#1280) * Added InEight folder and files realted to connector * updated the files based on review from microsoft * updated the files based on review from microsoft * Updated as microsoft's comments Co-authored-by: Riyaz Hussain Gange Mohammed --- .../InEight/apiDefinition.swagger.json | 3051 +++++++++++++++++ .../InEight/apiProperties.json | 35 + certified-connectors/InEight/readme.md | 39 + 3 files changed, 3125 insertions(+) create mode 100644 certified-connectors/InEight/apiDefinition.swagger.json create mode 100644 certified-connectors/InEight/apiProperties.json create mode 100644 certified-connectors/InEight/readme.md diff --git a/certified-connectors/InEight/apiDefinition.swagger.json b/certified-connectors/InEight/apiDefinition.swagger.json new file mode 100644 index 0000000000..46b5221b65 --- /dev/null +++ b/certified-connectors/InEight/apiDefinition.swagger.json @@ -0,0 +1,3051 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "InEight", + "description": "The InEight Connector provides a mechanism to create new data in InEight or extract data from InEight. It can be used to integrate other systems with InEight.", + "contact": { + "name": "InEight Support", + "url": "https://ineight.com/help-support/", + "email": "support@ineight.com" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://ineight.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://ineight.com/privacy-statement/" + }, + { + "propertyName": "Categories", + "propertyValue": "Data;Productivity" + } + ], + "host": "api.ineight.com", + "basePath": "/integrations/v1", + "schemes": [ + "https" + ], + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", + "tokenUrl": "https://login.microsoftonline.com/common/oauth2/token", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "paths": { + "/api/DailyPlan": { + "get": { + "description": "The Daily Plan integration allows customers to provide time keeping information for employees and equipment as recorded in InEight Plan. This integration includes summary information about the daily plan, from employee hours to cost items, equipment hours to cost items, payroll indicators, and notes.
The Daily Plan integration can also be used to track and provide plan status in systems outside of InEight cloud platform. When a daily plan is used for this purpose, an optional response message can be used to trigger a status change in the daily plan to indicate the change has been successfully received by the external system.", + "operationId": "DailyPlan_Get", + "summary": "To get complete Daily Plan details", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "x-ms-summary": "This field contains tenant prefix", + "description": "Tenant Prefix", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "x-ms-summary": "This field contains Tenant Subscription key", + "description": "Subscription Key", + "in": "header", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "DailyPlanCostItem": { + "type": "array", + "description": "Array header for cost item.", + "items": { + "type": "object", + "properties": { + "DailyPlanCostItemEmployee": { + "type": "array", + "description": "Array header for employee.", + "items": { + "type": "object", + "properties": { + "ResourceId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display Id (Employee ID in the UI) of the employee associated to the daily plan cost item. There can be many employees for each cost item." + }, + "SubmittedDoubletimeHours": { + "format": "float", + "type": "number", + "description": "Double time hours submitted by employee." + }, + "SubmittedOvertimeHours": { + "format": "float", + "type": "number", + "description": "Over time hours submitted by employee." + }, + "SubmittedStandardHours": { + "format": "float", + "type": "number", + "description": "Straight time hours submitted by employee." + }, + "ApprovedDoubletimeHours": { + "format": "float", + "type": "number", + "description": "Double time hours approved for employee and used for payroll processing." + }, + "ApprovedOvertimeHours": { + "format": "float", + "type": "number", + "description": "Over time hours approved for employee and used for payroll processing." + }, + "ApprovedStandardHours": { + "format": "float", + "type": "number", + "description": "Straight time hours approved for employee and used for payroll processing." + }, + "PlannedDoubletimeHours": { + "format": "float", + "type": "number", + "description": "Double time hours planned for employee." + }, + "PlannedOvertimeHours": { + "format": "float", + "type": "number", + "description": "Over time hours planned for employee." + }, + "PlannedStandardHours": { + "format": "float", + "type": "number", + "description": "Straight time planned for employee." + }, + "EmployeeId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID for the Employee." + }, + "CraftCode": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display Id of a valid craft in InEight master data." + }, + "ReasonCodes": { + "type": "array", + "description": "Array header for reason codes associated to the employee and cost item combination.", + "items": { + "type": "object", + "properties": { + "ReasonCodeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display Id of a reason code." + }, + "HourType": { + "type": "string", + "maxLength": 250, + "minLength": 0, + "description": "The hour type associated with the reason code." + }, + "Hours": { + "format": "float", + "type": "number", + "description": "Number of hours associated to the employee and costitem and reason code." + }, + "Premiums": { + "type": "array", + "description": "A comma separated list of premium codes associated with the employee and costitemand reason code.", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "DailyPlanCostItemEquipment": { + "type": "array", + "description": "Array header for equipment.", + "items": { + "type": "object", + "properties": { + "ResourceId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Display Id (Equipment Id in the UI) for each piece of equipment on the timesheet. There can be multiple records for each cost items." + }, + "SubmittedStandardHours": { + "format": "float", + "type": "number", + "description": "Hours entered against the equipment." + }, + "ApprovedStandardHours": { + "format": "float", + "type": "number", + "description": "Hours approved for equipment and used for final equipment hours." + }, + "PlannedStandardHours": { + "format": "float", + "type": "number", + "description": "Planned equipment hours." + }, + "EquipmentId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID for the equipment record." + }, + "EquipmentType": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "Equipment type that corresponds to the equipment." + }, + "ReasonCodes": { + "type": "array", + "description": "Array header for reason codes associated to the equipment and cost item.", + "items": { + "type": "object", + "properties": { + "OperatedEmployeeId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Display Id for operated employee" + }, + "ReasonCodeId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Display Id of a reason code." + }, + "Hours": { + "format": "float", + "type": "number", + "description": "Number of hours associated to the equipment and cost item and reason code." + } + } + } + } + } + } + }, + "DailyPlanCostItemComponent": { + "type": "array", + "description": "Array header for component.", + "items": { + "type": "object", + "properties": { + "ResourceId": { + "maxLength": 200, + "minLength": 0, + "type": "string", + "description": "ID of the estimating resource that is displayed in the applications." + }, + "ComponentId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID from InEight Plan for the component." + }, + "ProjectEstimatingResourceId": { + "format": "int64", + "type": "integer", + "description": "ID of the estimating resource, which would be the material." + }, + "ProjectEstimatingResourceSourceSystemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "ID of the estimating resource in the source system." + }, + "InstalledQuantity": { + "format": "double", + "type": "number", + "description": "Quantity of work claimed against the component." + }, + "ComponentType": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Component type of the component. Possible values are: Material, Activity." + } + } + } + }, + "CostItemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "InEight ID of the cost item associated to the daily plan." + }, + "TaskPriority": { + "format": "int64", + "type": "integer", + "description": "Order of tasks within the daily plan." + }, + "PlanQuantity": { + "format": "double", + "type": "number", + "description": "Quantity planned for the day to complete." + }, + "SubmittedQuantity": { + "format": "double", + "type": "number", + "description": "Quantity entered or submitted by the foreman." + }, + "ApprovedQuantity": { + "format": "double", + "type": "number", + "description": "Quantity entered or approved." + }, + "CostItemSourceSystemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Unique ID of the cost item from the source system of cost items. For example, if cost items are imported from an external system or ERP, the ID from that system would in this field. This is for referential mapping." + }, + "WBSCode": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "WBS phase code for the given cost item" + } + } + } + }, + "DailyPlanNote": { + "type": "array", + "description": "Array header for the note.", + "items": { + "type": "object", + "properties": { + "DailyPlanNoteEmployee": { + "type": "array", + "description": "Array header for the employee note.", + "items": { + "type": "object", + "properties": { + "EmployeeDisplay": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Employee associated with the note. There can be many employees associated with a note." + } + } + } + }, + "DailyPlanNoteEquipment": { + "type": "array", + "description": "Array header for the equipment note.", + "items": { + "type": "object", + "properties": { + "EquipmentId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "InEight ID for the equipment associated with the note. There can be many equipment records associated to a note." + } + } + } + }, + "DailyPlanNoteTag": { + "type": "array", + "description": "Array header for section for all note tags assigned to the daily plan. This section repeats for each note tag record.", + "items": { + "type": "object", + "properties": { + "DailyPlanNoteTagId": { + "format": "int64", + "type": "integer", + "description": "InEight ID for the tag associated with the note. There can be many tag records associated to a note." + }, + "TagCode": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "Tag code associated with the note. Tag codes are derived from a list provided to InEight Plan from a payroll or HR system. There can be many tag codes associated with a note." + } + } + } + }, + "DailyPlanNoteTask": { + "type": "array", + "description": "Array header for section for all note tasks assigned to the daily plan. This section repeats for each note task record.", + "items": { + "type": "object", + "properties": { + "CostItemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display ID of a cost item associated with the note. There can be many cost item records for a note." + } + } + } + }, + "DailyPlanNoteMaintenance": { + "type": "array", + "items": { + "type": "object", + "properties": { + "MaintenanceEquipmentId": { + "type": "string" + }, + "WBSPhaseCode": { + "type": "string" + }, + "WorkOrderId": { + "type": "string" + } + } + } + }, + "NoteId": { + "format": "int64", + "type": "integer", + "description": "Internal identifier for a specific note." + }, + "Description": { + "maxLength": 4000, + "minLength": 0, + "type": "string", + "description": "Free-form text of the note." + } + } + } + }, + "DailyPlanSignOff": { + "type": "array", + "description": "Array header for the signoff of the daily plan.", + "items": { + "type": "object", + "properties": { + "DailyPlanSignOffResponse": { + "type": "array", + "description": "Array header for the signoff response. This section is repeated for each employee that signed off for their hours.", + "items": { + "type": "object", + "properties": { + "EmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Employee associated with the signoff records. There can be multiple signoff records per daily plan." + }, + "QuestionKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display value/code that is used to identify a question in the signoff questionnaire. Each question has a unique code assigned by an ERP to identify the question. For example, 2001 could represent the question 'I was injured today.' which is shown in the signoff screen." + }, + "DailyPlanSignoffResponseId": { + "format": "int64", + "type": "integer", + "description": "Unique internal InEight ID for the responses submitted for the signoff questionnaire on that daily plan." + }, + "ResponseKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display value/code that could be used to identify a unique response. The value represents a code that could be used by an ERP to identify a YES/NO response to any of the signoff questions." + }, + "ResponseText": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Actual text a user views in the UI for a response to a question." + } + } + } + }, + "EmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "InEight ID of the employee maintained by the InEight cloud platform. This is not the Display Id that users would view in the UI." + }, + "QuestionnaireKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Code that represents the questions asked when signing-off hours." + }, + "SignoffEmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Employee who performed the signoff. This can be different from the Employee ID for the hours that are being signed off against." + }, + "SignoffDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date of the signoff." + }, + "SignoffStandardHours": { + "format": "float", + "type": "number", + "description": "Submitted hours that are being signed off against the daily plan." + }, + "SignoffOvertimeHours": { + "format": "float", + "type": "number", + "description": "Submitted hours that are being signed off against the daily plan." + }, + "SignoffDoubletimeHours": { + "format": "float", + "type": "number", + "description": "Submitted hours that are being signed off against the daily plan." + } + } + } + }, + "DailyPlanSignIns": { + "type": "array", + "description": "Array header for the signIns of the daily plan.", + "items": { + "type": "object", + "properties": { + "DailyPlanSignInResponses": { + "type": "array", + "description": "Signin response array", + "items": { + "type": "object", + "properties": { + "DailyPlanSignInResponseId": { + "format": "int64", + "type": "integer", + "description": "Unique internal InEight ID for the responses submitted for the sign in questionnaire on that daily plan.", + "example": "6" + }, + "QuestionKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display value/code that is used to identify a question in the sign in questionnaire. Each question has a unique code assigned by an ERP to identify the question. For example, 2001 could represent the question 'I was injured today.' which is shown in the signoff screen.", + "example": "1" + }, + "QuestionDescription": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The full text of the signin question", + "example": "I have received today's safety briefing" + }, + "ResponseKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display value/code that could be used to identify a unique response. The value represents a code that could be used by an ERP to identify a YES/NO response to any of the signoff questions.", + "example": "1" + }, + "ResponseDescription": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Actual text a user views in the UI for a response to a question.", + "example": "Yes" + } + } + } + }, + "EmployeeDisplay": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "This is the Display Id of the employee being signed in", + "example": "333903" + }, + "SignedInByEmployeeDisplay": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "This is the Display ID of the employee performing the sign in", + "example": "333903" + }, + "SignedInByUserDisplay": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "This is the Display ID of the Loggedin User performing the sign in using on behalf/Signout all eligible Option(value exist Only if loggedin user doesn\u2019t have Employee association)", + "example": "333563" + }, + "SignedInDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The datetime that the employee was signed in", + "example": "2021/02/04 13:26:57" + } + } + } + }, + "DailyPlanBreaks": { + "type": "array", + "description": "Array header for the employee breaks of the daily plan.", + "items": { + "type": "object", + "properties": { + "EmployeeDisplay": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The Display ID of the employee taking a break", + "example": "333903" + }, + "BreakNumber": { + "type": "integer", + "format": "int64", + "description": "The break number for the day. There can be multiple", + "example": "1" + }, + "BreakStartTime": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The employee break start day/time", + "example": "2021/02/04 00:02:00" + }, + "BreakInMinutes": { + "type": "integer", + "format": "int64", + "description": "The duration of the break in minutes", + "example": "15" + } + } + } + }, + "Executers": { + "type": "array", + "description": "Array header for the executers of the daily plan.", + "items": { + "type": "object", + "properties": { + "DisplayId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display ID of the user that executed the daily plan." + }, + "RoleName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "User role selected to represent the executor of the daily plan." + } + } + } + }, + "Approvers": { + "type": "array", + "description": "Array header for the approvers of the daily plan.", + "items": { + "type": "object", + "properties": { + "DisplayId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display ID of the user that approved the daily plan." + }, + "RoleName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "User role selected to represent the approver of the daily plan." + } + } + } + }, + "DailyPlanEmployeePayrollIndicator": { + "type": "array", + "description": "Array header for the employee payroll indicators in the daily plan.", + "items": { + "type": "object", + "properties": { + "DailyPlanEmployeePayrollIndicatorId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID for the payroll indicator that was assigned to the employee on a daily plan." + }, + "EmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Employee display ID for who the payroll indicator was assigned." + }, + "PayrollIndicatorId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID of the payroll indicator." + }, + "DailyPlanNoteId": { + "format": "int64", + "type": "integer", + "description": "Internal InEight ID for the note, if a note was created and generated for the payroll indicator assignment." + }, + "CostItemId": { + "format": "int64", + "type": "integer", + "description": "Cost item against which the payroll indicator was assigned to on a daily plan." + }, + "PayrollIdentifier": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display ID or code for the payroll indicator that was assigned." + }, + "WBSPhaseCode": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "WBS phase code for the cost item that the payroll indicator was assigned." + }, + "EmployeeSourceSystemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The Source System Id of the Employee that the indicator was applied to." + } + } + } + }, + "DailyPlanClientSignOff": { + "type": "array", + "description": "Array header for the client that signed off the daily plan.", + "items": { + "type": "object", + "properties": { + "Name": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Name of the client that signed off on the daily plan. This is an optional configuration item." + }, + "Email": { + "maxLength": 300, + "minLength": 0, + "type": "string", + "description": "Email address of the client who signed off on the daily plan." + } + } + } + }, + "PlanId": { + "format": "int64", + "type": "integer", + "description": "InEight ID of the daily plan." + }, + "CreatedDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date when the daily plan was originally created." + }, + "ProjectId": { + "maxLength": 200, + "minLength": 0, + "type": "string", + "description": "Display Id of the project associated with the daily plan." + }, + "LanguageKey": { + "maxLength": 10, + "minLength": 0, + "type": "string", + "description": "Display Id of the default language of the daily plan." + }, + "Location": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Free-form text that describes the location of the project where the work will be performed." + }, + "CreatedById": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display Id of the user who created the daily plan." + }, + "DeviceKey": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "GUID of a device (usually mobile) on which the daily plan was created." + }, + "Shift": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Code that represents the shift when the work was performed." + }, + "PlanDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date the daily plan will be or was executed. This is the date that represents the hours used for payroll." + }, + "PlanTitle": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Free-form text to describe the name of the daily plan." + }, + "PlanStatusCode": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Current status of the daily plan. The following are the possible status codes of a daily plan: PLAN - Planning phase, EXEC - Execution phase, WAPP - Waiting for approval, APPR - Approved, FINL - Final, closed. Only daily plans with a status of APPR, indicating they have been approved, are made available to external systems." + }, + "ModifiedById": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "ID of a user that modified the daily plan." + }, + "ModifiedDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date of the last modification to the daily plan." + }, + "PlannedDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date on which the daily plan was moved into the planning phase." + }, + "PlannedById": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "ID of the user that moved the daily plan into the planning phase." + }, + "ExecutedDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date on which the daily plan was moved into execution phase." + }, + "ExecutedById": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "ID of the User that moved the daily plan into the execution phase." + }, + "ApprovedDate": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "Date on which the daily plan was moved into the approval phase." + }, + "ApprovedById": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "ID of the User that moved the daily plan into the approval phase." + }, + "ErrorHandlingToken": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Unique token that can be used to either retrieve or report issues related to the integration instance." + }, + "CommitmentCode": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Display number of the commitment/purchase order that was assigned to the daily plan." + }, + "ExternalSyncStatus": { + "format": "int64", + "type": "integer", + "description": "Allowed values are: 0 = Ready to send, 1 = Success, 2 = FAIL" + }, + "CommitmentId": { + "format": "int64", + "type": "integer", + "description": "InEight ID for a commitment/purchase order assigned to the daily plan." + }, + "DailyPlanMaintenance": { + "type": "array", + "description": "Array header for maintenance.", + "items": { + "type": "object", + "properties": { + "EmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Display ID of the employee whose time was recorded for the work order." + }, + "WorkOrderId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Source System ID of the work order (see Daily Plan Work Orders for details)." + }, + "WBSPhaseCode": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "WBS phase code of the associated cost item." + }, + "CostItemSourceSystemId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Source System Id of the associated cost item." + }, + "TotalHours": { + "format": "double", + "type": "number", + "description": "Hours associated to the cost item or work order. If there are multiple reason codes against the maintenance hours entered, this would contain the total of all hours entered against different reason codes, against that specific work order or cost item, and for the employee and equipment." + }, + "MaintenanceEquipmentId": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "Source System ID of the associated equipment." + }, + "Segment1": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "First segment of the cost item associated with the hours." + }, + "Segment2": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "Second segment of the cost item associated with the hours." + }, + "Segment3": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "Third segment of the cost item associated with the hours." + }, + "Segment4": { + "maxLength": 250, + "minLength": 0, + "type": "string", + "description": "Fourth segment of the cost item associated with the hours." + }, + "ReasonCodes": { + "type": "array", + "description": "Array header for reason codes associated to the equipment maintenance.", + "items": { + "type": "object", + "properties": { + "ReasonCodeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "Abbreviated code for a specific reason." + }, + "HourType": { + "type": "string", + "maxLength": 250, + "minLength": 0, + "description": "The hour type associated with the reason code." + }, + "Hours": { + "format": "float", + "type": "number", + "description": "Number of hours associated to the equipment maintenance record." + }, + "Premiums": { + "type": "array", + "description": "Comma separated list of premium codes associated with the equipment maintenance/reason code.", + "items": { + "type": "string" + } + } + } + } + } + } + } + }, + "ShiftDetail": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Shift": { + "maxLength": 200, + "minLength": 0, + "type": "string", + "description": "The name of the shift" + }, + "ShiftStartDateTime": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The start date and time of the shift" + }, + "ShiftEndDateTime": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The end date and time of the shift" + }, + "EmployeeShiftDetails": { + "type": "array", + "description": "Array of employees that worked within the shift on the daily plan", + "items": { + "type": "object", + "properties": { + "EmployeeId": { + "maxLength": 50, + "minLength": 0, + "type": "string", + "description": "The Display Id of the employee that worked" + }, + "ShiftStartDateTime": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The start date and time of the shift" + }, + "ShiftEndDateTime": { + "maxLength": 25, + "minLength": 0, + "type": "string", + "description": "The end date and time of the shift" + } + } + } + } + } + } + }, + "ClientSignoffReportRecipients": { + "type": "array", + "description": "List of email addresses of people to receive a copy of the Client Signoff Report.", + "items": { + "type": "string" + } + } + } + } + } + } + } + } + }, + "/api/TimeCard": { + "get": { + "description": "The Time Card integration provides payroll or pre-payroll processing systems with a detailed breakdown of hours for employees along with the type of work performed and custom-defined that are applied for blocks of hours or for the entire day. This integration is available if Time Center has been enabled within the customer environment. Time Center is an application within InEight Plan that generates time cards of individual employees or equipment for each combination that is entered on a daily plan. The application allows an administrator to review the hours before sending it to an ERP for further processing of actual hours for other business processes such as payroll. All time cards, when required, can be sent through the Time Card integration to an ERP or other system for further business process workflows.", + "operationId": "TimeCard_Get", + "summary": "To get complete Time Card details", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "x-ms-summary": "This field contains Tenant Prefix", + "description": "Tenant Prefix", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "x-ms-summary": "This field contains Tenant Subscription key", + "description": "Subscription Key", + "in": "header", + "required": true, + "type": "string" + } + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "PlanId": { + "type": "integer", + "format": "int64", + "description": "Unique identifier of the daily plan where the hours were reported for the employee.", + "example": "1234" + }, + "PlanDate": { + "type": "string", + "format": "date-time", + "description": "Date on which the daily plan hours were performed.", + "example": "2018-05-31T00:00:00Z" + }, + "PlanTitle": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "Name given to the daily plan where the hours were entered.", + "example": "Excavation - Mike\u2019s crew" + }, + "TimecardId": { + "type": "string", + "maxLength": 21, + "minLength": 0, + "description": "Unique identifier of the time card record.", + "example": "RD1234" + }, + "TimeCardType": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Indicates what type of timecard is being sent. Labor, Equipment, Labor-Equipment, Administrative, Maintenance", + "example": "Labor" + }, + "CreatedDate": { + "type": "string", + "format": "date-time", + "description": "Date when this specific time card version, was originally created.", + "example": "2018-02-20T14:47:05.9833049Z" + }, + "ModifiedDate": { + "type": "string", + "format": "date-time", + "description": "Date when the this specific time card version was last modified.", + "example": "2018-02-20T14:58:47.4779635Z" + }, + "Executor": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier of the employee representing the role of Executor on the daily plan.", + "example": "foreman@company.com" + }, + "ShiftDetails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Shift": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "Name or abbreviated code of the shift represented by the daily plan. Shift names are custom-defined in Plan application settings.", + "example": "Day" + }, + "ShiftStartDateTime": { + "format": "date-time", + "type": "string", + "description": "The default datetime that the crew began work for a specific daily plan.", + "example": "2018-06-29T00:00:00Z" + }, + "ShiftEndDateTime": { + "format": "date-time", + "type": "string", + "description": "The default datetime that the crew completed work for a specific daily plan.", + "example": "2018-06-30T00:00:00Z" + }, + "EmployeeShiftDetails": { + "type": "array", + "description": "Array of employees that worked within the shift on the daily plan.", + "items": { + "type": "object", + "properties": { + "ShiftStartDateTime": { + "format": "date-time", + "type": "string", + "description": "The datetime that a specific employee began work for a specific daily plan.", + "example": "2018-06-29T00:00:00Z" + }, + "ShiftEndDateTime": { + "format": "date-time", + "type": "string", + "description": "The datetime that a specific employee completed work for a specific daily plan.", + "example": "2018-06-30T00:00:00Z" + } + } + } + } + } + } + }, + "Trade": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier from the trade system of record for the employee/time card. The system will evaluate Project Employee Trade first (if present), and Employee Trade second", + "example": "CARP" + }, + "Craft": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier from the craft system of record for the employee/time card. The system will evaluate Project Employee Craft first (if present), and Employee Craft second", + "example": "APP1" + }, + "EmployeeId": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier from the HR system of record of the employee. This must match the employee\u2019s Source System Id.", + "example": "301847" + }, + "EquipmentId": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Equipment that was operated while performing labor operations for reported hours. This value is based on the Source System Id received from an external system.", + "example": "478933" + }, + "EmployeeReasonCode": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "One of the following:\u2022 Reason code for labor hours, \u2022 Reason code for allowances, if the time card is for allowance only.Each allowance given to an employee for the day will be on a separate time card with zero hours.Each reason code/hours combination for an employee are on a separate time card. NOTE: The exception is when there are hours worked and equipment operated (linked). In this case, the employee reason code is in this field and the equipment reason code is in the equipment reason code field on the same time card.", + "example": "AWK" + }, + "EquipmentReasonCode": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "If the hours entered in a daily plan are for operated equipment and a reason code was selected for the block of hours, the reason code will be reported here.", + "example": "OPT" + }, + "LaborHourType": { + "type": "string", + "maxLength": 250, + "minLength": 0, + "description": "The hour type associated with the reason code on the timecard.", + "example": "Standard time" + }, + "EmployeeHours": { + "type": "number", + "format": "double", + "description": "This field is used to for employee activities hours that are entered on the time card. When the time card represents work against a work order, the hours spent on the work order is shown here.", + "example": "7.50" + }, + "EquipmentHours": { + "type": "number", + "format": "double", + "description": "Hours reported for equipment being operated during labor operations.", + "example": "7.50" + }, + "Version": { + "type": "integer", + "format": "int64", + "description": "Current version of the Time Card. Versioning starts at 0 and is incremented each time it is resent to the receiving system.", + "example": "1" + }, + "Segment1": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "First segment of the cost item associated with the hours.", + "example": "104354" + }, + "Segment2": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Second segment of the cost item associated with the hours.", + "example": "104354A" + }, + "Segment3": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Third segment of the cost item associated with the hours.", + "example": "4093" + }, + "Segment4": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Fourth segment of the cost item associated with the hours.", + "example": "1234" + }, + "WorkOrder": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier for a work order if one was selected for the hours. This value is based on the Source System Id received from an external system.", + "example": "EQ12387" + }, + "MaintenanceEquipmentId": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Unique identifier for the equipment that was either specified by a work order, or the selected equipment for maintenance hours. A value for this field is only present if a work order was selected for the hours. This value is based on the Source System Id received from an external system.", + "example": "834698" + }, + "OverrideTrade": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "If the trade has been overridden on the time card from the default trade assigned to the employee, this field will show the overridden TradeId value.", + "example": "ELECT" + }, + "OverrideCraft": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "If the craft has been overridden on the time card from the default craft assigned to the employee, this field will show the overridden CraftId value.", + "example": "APP1" + }, + "Premiums": { + "type": "array", + "items": { + "type": "string", + "description": "Array for the list of all premium code payroll indicators belonging to the premiums category that were assigned to this specific time card version.", + "example": "D/N" + } + }, + "TimeCardCharacteristics": { + "type": "array", + "description": "Array header for the custom-defined fields used in the daily plan and associated with the hours in the time card. Within this array, any characteristic name/value pair may be repeated if there are hours in the time card for multiple resource types (e.g. Labor and Equipment).", + "items": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Name of the time card characteristic for which the value is being set. This field may be repeated as needed within the TimeCardCharacteristic list. Available options for name are EmployeeCostType and EquipmentCostType.", + "example": "EquipmentCostType" + }, + "Value": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "Value of the time card characteristic name. This field may be repeated for each characteristic name provided.", + "example": "1940" + } + } + } + }, + "AdditionalPayrollInstructionCodeOverridden": { + "type": "boolean", + "description": "If the Allow Additional Payroll Instruction Code for the employee has been modified (changed or removed) for the time card for any reason, this field will show as true.", + "example": "false" + }, + "IsActive": { + "type": "boolean", + "description": "If the timecard is active, this field will show true", + "example": "true" + } + } + } + } + } + } + } + }, + "/api/TimeCardConfirmation": { + "post": { + "description": "The Time Card Confirmation integration allows external systems to report on the success or failure to process time cards obtained from Time Center and update a status to support a business workflow.", + "operationId": "TimeCardConfirmation_Import", + "summary": "To confirm the status of Time Cards", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "x-ms-summary": "This field contains Tenant Prefix", + "description": "Tenant Prefix", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "x-ms-summary": "This field contains Tenant Subscription key", + "description": "Subscription Key", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "TimeCardId": { + "type": "string", + "description": "TimeCardId" + }, + "Version": { + "type": "string", + "description": "Version" + }, + "Status": { + "type": "string", + "description": "Status" + }, + "Errors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Errors" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + } + } + }, + "/Crafts/Import": { + "post": { + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + }, + "summary": "To import Crafts data", + "description": "Crafts Integration allows InEight customers to provide a list of crafts for their organization. Within the application, Crafts records are found in the Account level menu options under \"Master data libraries > Operational resources\" or from within the Project level menu under \"Assigned operational resources\".", + "operationId": "Crafts_Import", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "CraftId", + "CraftDescription", + "TradeId" + ], + "properties": { + "CraftId": { + "type": "string", + "description": "Craft Id" + }, + "CraftDescription": { + "type": "string", + "description": "Craft Description" + }, + "TradeId": { + "type": "string", + "description": "Trade Id" + }, + "CurrencyCode": { + "type": "string", + "description": "Currency Code" + }, + "VendorCode": { + "type": "string", + "description": "Vendor Code" + }, + "SourceSystemId": { + "type": "string", + "description": "Source System Id" + }, + "SourceSystemName": { + "type": "string", + "description": "Source System Name" + }, + "UnionSourceSystemId": { + "type": "string", + "description": "Union Source System Id" + }, + "UoMName": { + "type": "string", + "description": "UoM Name" + }, + "UseBaseWageFactors": { + "type": "boolean", + "description": "Use Base Wage Factors" + }, + "StraightTimeRate": { + "type": "number", + "format": "double", + "description": "Straight Time Rate" + }, + "OverTimeFactor": { + "type": "number", + "format": "double", + "description": "Over Time Factor" + }, + "OverTimeRate": { + "type": "number", + "format": "double", + "description": "Over Time Rate" + }, + "DoubleTimeFactor": { + "type": "number", + "format": "double", + "description": "Double Time Factor" + }, + "DoubleTimeRate": { + "type": "number", + "format": "double", + "description": "Double Time Rate" + }, + "IsActive": { + "type": "boolean", + "description": "IsActive" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ] + } + }, + "/DailyPlanStatus/Import": { + "post": { + "description": "If approved daily plans are sent to an external system, the external system can optionally process the daily plan data and return a message informing the InEight cloud platform that the status should be updated to Final Processing Complete.", + "operationId": "DailyPlanStatus_Import", + "summary": "To confirm status of Daily Plans", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "x-ms-summary": "This field contains Tenant Prefix", + "description": "Tenant Prefix", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "x-ms-summary": "This field contains Tenant Subscription key", + "description": "Subscription Key", + "in": "header", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "DailyPlanId": { + "type": "integer", + "format": "int32", + "description": "DailyPlanId" + }, + "PlanStatusCode": { + "type": "string", + "description": "PlanStatusCode" + }, + "ModifiedById": { + "type": "string", + "description": "ModifiedById" + }, + "ModifiedDate": { + "type": "string", + "description": "ModifiedDate" + }, + "DtModifiedDate": { + "type": "string", + "description": "DtModifiedDate" + }, + "ReleasedDate": { + "type": "string", + "description": "ReleasedDate" + }, + "DtReleasedDate": { + "type": "string", + "description": "DtReleasedDate" + }, + "ReleasedById": { + "type": "string", + "description": "ReleasedById" + }, + "Errors": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Errors" + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object" + } + } + } + } + }, + "/Employees/Import": { + "post": { + "description": "The Employees Integration allows InEight customers to provide a list of all employee resources for their entire organization, and to maintain the list as employees are hired, terminated, or details of their employment change.

Within the application, Employee records are found in the Account level menu options under ''Master data libraries'' > ''Operational resources''.", + "operationId": "Employees_Import", + "summary": "This allows Employee integrations with InEight", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "CraftId", + "EmployeeId", + "FirstName", + "LastName" + ], + "properties": { + "CraftId": { + "type": "string", + "description": "Craft Id" + }, + "VendorCode": { + "type": "string", + "description": "Vendor Code" + }, + "EmployeeId": { + "type": "string", + "description": "Employee Id" + }, + "FirstName": { + "type": "string", + "description": "First Name" + }, + "LastName": { + "type": "string", + "description": "Last Name" + }, + "IsActive": { + "type": "boolean", + "description": "Is Active" + }, + "EmployeePIN": { + "type": "string", + "description": "Employee PIN" + }, + "CanReportTime": { + "type": "boolean", + "description": "Can Report Time" + }, + "SourceSystemId": { + "type": "string", + "description": "Source System Id" + }, + "SourceSystemName": { + "type": "string", + "description": "Source System Name" + }, + "StartDate": { + "type": "string", + "format": "date-time", + "description": "Start Date" + }, + "EndDate": { + "type": "string", + "format": "date-time", + "description": "End Date" + }, + "CurrencyCode": { + "type": "string", + "description": "Currency Code" + }, + "UOMName": { + "type": "string", + "description": "UOM Name" + }, + "StraightTimeRate": { + "type": "number", + "format": "double", + "description": "Straight Time Rate" + }, + "OverTimeFactor": { + "type": "number", + "format": "double", + "description": "Over Time Factor" + }, + "OverTimeRate": { + "type": "number", + "format": "double", + "description": "Over Time Rate" + }, + "DoubleTimeFactor": { + "type": "number", + "format": "double", + "description": "Double Time Factor" + }, + "DoubleTimeRate": { + "type": "number", + "format": "double", + "description": "Double Time Rate" + }, + "UseBaseWageFactors": { + "type": "boolean", + "description": "Use Base Wage Factors" + }, + "UnionSourceSystemId": { + "type": "string", + "description": "Union Source System Id" + }, + "PrimaryCompany": { + "type": "string", + "description": "Primary Company" + }, + "JobTitle": { + "type": "string", + "description": "Job Title" + }, + "UnionJobTitle": { + "type": "string", + "description": "Union Job Title" + }, + "SupervisorId": { + "type": "string", + "description": "Supervisor Id" + }, + "CountryISOCode": { + "type": "string", + "description": "Country ISO Code" + }, + "DefaultCostCenterSourceSystemId": { + "type": "string", + "description": "Default Cost Center Source System Id" + }, + "AdditionalPayrollInstructionCode": { + "type": "string", + "description": "Additional Payroll Instruction Code" + }, + "IsOverrideAdditionalPayrollInstructionCodeAllowed": { + "type": "boolean", + "description": "Is Override Additional Payroll Instruction Code Allowed" + }, + "IsAvailableWeeklyTimeSheet": { + "type": "boolean", + "description": "Is Available Weekly Time Sheet" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + } + } + }, + "/Equipments/Import": { + "post": { + "description": "The Equipment Integration allows InEight customers to provide and maintain a complete list of equipment that can be used on any given project. In this integration, it is expected that ''Equipment'' refers to items that are mobile, have an estimated usage rate, and can be tracked by hours of usage. Equipment can include cranes, backhoes, generators, trucks used for transportation, and any other tracked resource. This integration includes specific details about the equipment such as manufacturer, model, serial number, and whether the equipment is owned or rented.

Within the application, Equipment records are found in the Account level menu options under ''Master data libraries'' > ''Operational resources''.", + "operationId": "Equipments_Import", + "summary": "To import Equipments data", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "EquipmentNumber", + "OwnershipType", + "EquipmentType", + "EquipmentDescription" + ], + "properties": { + "EquipmentSystemStatus": { + "description": "Availability or current state of the equipment. Allowed values for this field are 'Available' and 'Unavailable'. If not specifically provided, the value of 'Available' will assumed.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EquipmentNumber": { + "description": "Equipment item system of record identifier, which must be unique for each piece of equipment.", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "OwnershipType": { + "description": "Indicates whether the equipment item is either owned or rented by the customer. Valid options for this field are 'Owned' and 'Rented'.", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "EquipmentType": { + "description": "Associates equipment item to an Equipment Type. Value must match that of an existing EquipmentTypeId.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "VendorCode": { + "description": "Identifies a Vendor that exists in InEight. Equipment with a Vendor Code are managed by the associated Vendor and their availability is limited to that Vendor.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "SerialNumber": { + "description": "Physical Serial Number or Vehicle Identification Number (VIN) of the equipment.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "Manufacturer": { + "description": "The name of the equipment manufacturer.", + "maxLength": 200, + "minLength": 0, + "type": "string" + }, + "Dot": { + "description": "Indicates if the equipment is Department of Transportation (DOT) regulated.", + "type": "boolean" + }, + "EquipmentDescription": { + "description": "User-defined field that is typically describes or give details about the Category or model/type of specific equipment.", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "IsActive": { + "description": "This field is not recommended for use. Sending a value of false within this field will cause the record to be soft deleted from InEight and unrecoverable without assistance from InEight Professional Services.", + "type": "boolean" + }, + "SourceSystemId": { + "description": "The identification of the equipment used within the external system. In most cases, this matches the Equipment Number field. This field is used by InEight to match equipment records to other entities (e.g. Project Equipment) where an Equipment is cross-referenced.", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "SourceSystemName": { + "description": "The name of the external system providing the data.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "CurrencyCode": { + "description": "Identifies the currency type associated with the equipment.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "CostCenterSourceSystemId": { + "description": "The cost center the equipment belongs to.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "Location": { + "description": "Free-text field that is used to display a location of where the equipment may be found.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "UnitCost": { + "format": "double", + "description": "Cost associated with operating the equipment. The value entered here corresponds with the Unit of Measure (UoMName).", + "type": "number" + }, + "UoMName": { + "description": "Identifies the Unit of Measure associated with the equipment. The value provided here must match the Name OR Source System Id of an existing Unit of Measure record.", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "IsAvailableDailyPlan": { + "description": "Determines if the record may be used for Daily Planning in the Plan and Progress applications", + "default": true, + "type": "boolean" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + } + } + }, + "/EquipmentCategories/Import": { + "post": { + "description": "The EquipmentCategories Integration allows InEight customers to provide and maintain a complete list of EquipmentCategories that can be used on any equipment.

Within the application, Equipment Catgory records are found in the Account level menu options under ''Master data libraries'' > ''Operational resources''.", + "operationId": "EquipmentCategories_Import", + "summary": "To import Equipment Categories data", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "EquipmentCategoryId": { + "description": "The public unique identifier for an Equipment Category", + "maxLength": 200, + "minLength": 0, + "type": "string" + }, + "Description": { + "description": "The description for the Equipment Category", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "SourceSystemId": { + "description": "The unique identifier provided by the system of record for Equipment Categories", + "maxLength": 200, + "minLength": 0, + "type": "string" + }, + "SourceSystemName": { + "description": "The name of the system of record for Equipment Categories", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "IsActive": { + "description": "Determines if the record is available for use", + "type": "boolean" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + } + } + }, + "/EquipmentTypes/Import": { + "post": { + "description": "The Equipment Types Integration allows an external system to maintain a master list of Equipment Types in InEight.", + "operationId": "EquipmentTypes_Import", + "summary": "To import Equipment Types data", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "EquipmentTypeId", + "Description", + "EquipmentCategoryId" + ], + "properties": { + "EquipmentTypeId": { + "description": "Unique identifier that is publicly recognizable. This field is displayed in normal use of InEight applications. The value sent in this field may match Source System Id if there is no need to use a public vs private unique identifier.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "Description": { + "description": "Informal description of the record that will be shown in normal use of InEight applications to assist users when performing searches or selections. This field supports a large number of text characters but it is recommended to keep the description as short as possible while retaining an easily recognized meaning.", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "IsActive": { + "description": "This field is not recommended for use. Setting a value of false in this field will cause the record to be soft deleted from InEight and will not be recoverable without assistance from InEight Professional Services.", + "type": "boolean" + }, + "EquipmentCategoryId": { + "description": "The Equipment Category to which this Equipment Type will be assigned. The value provided in this field must match an existing Equipment Category Id record in InEight.", + "maxLength": 200, + "minLength": 0, + "type": "string" + }, + "SourceSystemId": { + "description": "Identifier created by the system of record and used in all system communications as the primary method of specifying a unique record. This field does not display in normal use of InEight applications and may contain internal identifiers such as a GUID that is not understandable by typical system users.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "SourceSystemName": { + "description": "Name of the external system that is using the integration.Customers should work with InEight to provision a unique value for this field.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "VendorCode": { + "description": "Providing a value in this field will limit who in InEight can select this Equipment Type to only users that are assigned to the same Vendor Code. This allows vendors who are given access to the primary contractors project the ability to perform their own work planning.", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "CurrencyCode": { + "description": "Default currency for equipment rates. The value provided here must match a valid CurrencyCode in InEight master data.", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "UoMName": { + "description": "Identifies the UoM associated with the equipment.", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "UnitCost": { + "format": "double", + "description": "Cost associated with operating the equipment type. The value entered here corresponds with the UoMName.", + "type": "number" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ], + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + } + } + }, + "/Roles/Import": { + "post": { + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + }, + "summary": "To import Roles data", + "description": "This integration allows customers to create their master list of Roles that may be used for various business functions within several InEight cloud applications.", + "operationId": "Roles_Import", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "RoleName", + "AdminLevel", + "SourceSystemId" + ], + "properties": { + "RoleName": { + "description": "Name of the role", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "Description": { + "description": "Description of the role", + "maxLength": 250, + "minLength": 0, + "type": "string" + }, + "AdminLevel": { + "description": "Admin level to be assigned to this role at 0, 1, 2, or 3", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "SourceSystemId": { + "description": "Unique record ID assigned by Suite and matching the external system that is using the integration. Work with InEight to provision a unique value for this field", + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "SourceSystemName": { + "description": "Unique Name assigned by Suite and matching the external system that is using the integration. Work with InEight to provision a unique value for this field", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "IsSystem": { + "type": "boolean", + "default": "false" + }, + "IsActive": { + "type": "boolean", + "default": "true" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ] + } + }, + "/Trades/Import": { + "post": { + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + }, + "summary": "To import Trades data", + "description": "Trades Integration allows InEight customers to provide a list of trades for their organization. Within the application, Trades records are found in the Account level menu options under \"Master data libraries > Operational resources\" or from within the Project level menu under \"Assigned operational resources\".", + "operationId": "Trades_Import", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "TradeDisplay", + "TradeDescription" + ], + "properties": { + "TradeDisplay": { + "type": "string", + "description": "The public unique identifier for a Trade", + "maxLength": 50, + "minLength": 0 + }, + "TradeDescription": { + "description": "The description for the Trade", + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "SourceSystemId": { + "description": "The unique identifier provided by the system of record for trades", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "SourceSystemName": { + "description": "The name of the system of record for Trades", + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "IsActive": { + "type": "boolean" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ] + } + }, + "/Users/Import": { + "post": { + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + }, + "summary": "To import Users data", + "description": "Users Integration allows InEight customers to provide a list of all user resources for their entire organization and to maintain the list as users are added or removed. Within the application, user records are found in the Account level menu options under \"Suite Administration\"", + "operationId": "Users_Import", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "FirstName", + "LastName", + "EmailAddress" + ], + "properties": { + "FirstName": { + "type": "string", + "description": "First Name" + }, + "LastName": { + "type": "string", + "description": "Last Name" + }, + "IsActive": { + "type": "boolean", + "description": "Is Active" + }, + "Language": { + "type": "string", + "description": "Language" + }, + "DecimalFormat": { + "type": "string", + "description": "Decimal Format" + }, + "DateFormat": { + "type": "string", + "description": "Date Format" + }, + "EmployeeId": { + "type": "string", + "description": "Employee Id" + }, + "VendorCode": { + "type": "string", + "description": "Vendor Code" + }, + "SourceSystemName": { + "type": "string", + "description": "Source System Name" + }, + "SourceSystemId": { + "type": "string", + "description": "Source System Id" + }, + "MobileNumber": { + "type": "string", + "description": "Mobile Number" + }, + "WorkNumber": { + "type": "string", + "description": "Work Number" + }, + "DisplayUserId": { + "type": "string", + "description": "Display User Id" + }, + "EmailAddress": { + "type": "string", + "description": "Email Address" + }, + "StartDate": { + "type": "string", + "format": "date-time", + "description": "Start Date" + }, + "EndDate": { + "type": "string", + "format": "date-time", + "description": "End Date" + }, + "IsExternalUser": { + "type": "boolean", + "description": "Is External User" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ] + } + }, + "/UserRoles/Import": { + "post": { + "responses": { + "202": { + "description": "Accepted", + "schema": { + "type": "string" + }, + "headers": { + "cache-control": { + "description": "cache-control", + "type": "string" + }, + "content-length": { + "description": "content-length", + "type": "string" + }, + "content-type": { + "description": "content-type", + "type": "string" + }, + "date": { + "description": "date", + "type": "string" + }, + "expires": { + "description": "expires", + "type": "string" + }, + "location": { + "description": "location", + "type": "string" + }, + "pragma": { + "description": "pragma", + "type": "string" + }, + "request-context": { + "description": "request-context", + "type": "string" + }, + "retry-after": { + "description": "retry-after", + "type": "string" + }, + "x-ms-apihub-cached-response": { + "description": "x-ms-apihub-cached-response", + "type": "string" + }, + "x-powered-by": { + "description": "x-powered-by", + "type": "string" + }, + "x-requestid": { + "description": "x-requestid", + "type": "string" + } + } + } + }, + "summary": "To import User Roles data", + "description": "UserRoles Integration allows InEight customers to import a list of users and roles mapping at the intended project or organization level. Within the application, user role assignments are found in the Account level menu options under \"Suite Administration > User management > Edit user\".", + "operationId": "UserRoles_Import", + "parameters": [ + { + "name": "X-IN8-TENANT-PREFIX", + "in": "header", + "description": "The tenant-prefix of your Project Suite base URL. For example, if you are accessing Project Suite at *https://domain.hds.ineight.com/* then the value for this parameter would be **domain**", + "x-ms-summary": "The tenant-prefix of https://Domain.hds.ineight.com/ would be \"Domain\"", + "required": true, + "type": "string" + }, + { + "name": "Ocp-Apim-Subscription-Key", + "in": "header", + "description": "This is found in in your APIM Profile.", + "x-ms-summary": "This is found in in your APIM Profile.", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "required": [ + "RoleName", + "UserSourceSystemId" + ], + "properties": { + "RoleName": { + "type": "string", + "description": "RoleName" + }, + "UserSourceSystemId": { + "type": "string", + "description": "User Source System Id" + }, + "IsActive": { + "type": "boolean", + "description": "IsActive" + }, + "ProjectSourceSystemId": { + "type": "string", + "description": "Project Source System Id" + }, + "OrganizationSourceSystemId": { + "type": "string", + "description": "Organization Source System Id" + } + } + } + } + } + ], + "consumes": [ + "application/json", + "text/plain" + ], + "produces": [ + "application/json", + "text/plain" + ] + } + } + }, + "definitions": {}, + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/InEight/apiProperties.json b/certified-connectors/InEight/apiProperties.json new file mode 100644 index 0000000000..d4930de2f3 --- /dev/null +++ b/certified-connectors/InEight/apiProperties.json @@ -0,0 +1,35 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[DUMMY]]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://login.windows.net/common/oauth2/authorize" + }, + "tokenUrl": { + "value": "https://login.microsoftonline.com/common/oauth2/token" + }, + "refreshUrl": { + "value": "https://login.microsoftonline.com/common/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#4D595A", + "capabilities": [], + "publisher": "InEight", + "stackOwner": "InEight" + } +} \ No newline at end of file diff --git a/certified-connectors/InEight/readme.md b/certified-connectors/InEight/readme.md new file mode 100644 index 0000000000..3a13b4ee2e --- /dev/null +++ b/certified-connectors/InEight/readme.md @@ -0,0 +1,39 @@ +# InEight Connector +The InEight Connector provides a mechanism to create new data in InEight or extract data from InEight. It can be used to integrate other systems with InEight. + +## Publisher: InEight + +## Prerequisites +You will need the following to proceed: +* Access to the InEight Cloud platform + +## Obtaining Credentials: + +### User account: +A valid user account is required to create a connection and use the InEight connector. Work with administrator to set up a user account to access the InEight cloud platform. + +### Tenant Prefix: +This is part of the environment url. +Example: +- Environment url: [customer].hds.ineight.com +- Tenant Prefix: [customer] + +### Ocp-Apim Subscription Key: +Work with an administrator to get subscription key. + +## Supported Operations +The connector supports the following operations: +​ +* `DailyPlan_Get`: Gets all approved daily plans. +* `DailyPlanStatus_Import`: Sends confirmation to all received daily plans. +* `TimeCard_Get`: Gets all submitted time cards. +* `TimeCardConfirmation_Import`: Sends confirmation to all received time cards. +* `Crafts_Import`: Allows customers to provide and maintain a complete list of crafts or individual records as maintenance of the master list. +* `Employees_Import`: Allows customers to provide and maintain a complete list of all employee resources for their entire organization. +* `Equipments_Import`: Allows customers to provide and maintain a complete list of equipment that can be used on any given project. +* `EquipmentCategories_Import`: Allows an external system to maintain a master list of Equipment Categories in the InEight cloud platform. +* `EquipmentTypes_Import`: Allows an external system to maintain a master list of Equipment Types in the InEight cloud platform. +* `Roles_Import`: Allows customers to create roles in bulk for any user with default permissions. +* `Trades_Import`: Allows customers to provide a complete list of trades or individual records as maintenance of the master list. +* `Users_Import`: Allows customers to create and maintain information about the people that have login credentials and access to the InEight cloud platform from a third-party system. +* `UserRoles_Import`: Allows customers to assign roles to the users to setup access to the InEight cloud platform. \ No newline at end of file From 9d2524185fafebf78e96d9d0d32943a2a8393684 Mon Sep 17 00:00:00 2001 From: mdujardibs <88819755+mdujardibs@users.noreply.github.com> Date: Mon, 3 Jan 2022 23:10:05 +0100 Subject: [PATCH 194/219] Sociabble Connector : Update (#1299) * New connector : Sociabble * Changes requested during certification process * Missing descriptions * Missing titles * Update iconBrandColor * Updating swagger with UploadMedia and UploadMediaUrl returing an object + changing visibility of some endpoints * Updating media endpoints again * Update Sociabble connector * Sociabble Connector : Fix after paconn validate * Sociabble Connector: default value on enum * Revert * Update apiDefinition.swagger.json * New API Key Header name --- .../Sociabble/apiDefinition.swagger.json | 1258 ++++++++++++----- 1 file changed, 885 insertions(+), 373 deletions(-) diff --git a/certified-connectors/Sociabble/apiDefinition.swagger.json b/certified-connectors/Sociabble/apiDefinition.swagger.json index 03b73ae2dc..c093506850 100644 --- a/certified-connectors/Sociabble/apiDefinition.swagger.json +++ b/certified-connectors/Sociabble/apiDefinition.swagger.json @@ -30,11 +30,13 @@ "properties": { "id": { "type": "string", - "description": "id" + "description": "id", + "title": "Id" }, "name": { "type": "string", - "description": "name" + "description": "name", + "title": "Name" } } } @@ -59,11 +61,13 @@ "properties": { "id": { "type": "string", - "description": "id" + "description": "id", + "title": "Id" }, "name": { "type": "string", - "description": "name" + "description": "name", + "title": "Name" } } } @@ -76,83 +80,63 @@ "description": "Get channels" } }, - "/content/internalnews": { - "post": { + "/categories": { + "get": { + "summary": "Get all categories", + "description": "Get all categories", + "operationId": "GetCategories", + "produces": [ + "application/json" + ], "responses": { "200": { - "description": "An internal news", + "description": "Success", "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the content", - "title": "Id" - }, - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "language": { - "type": "string", - "description": "Language", - "title": "language" - }, - "isDefault": { - "type": "boolean", - "description": "Is the language default", - "title": "language default ?" - }, - "title": { - "type": "string", - "description": "Title", - "title": "title" - }, - "summary": { - "type": "string", - "description": "A short summary of the content", - "title": "summary" - }, - "description": { - "type": "string", - "description": "Content", - "title": "content" - }, - "mediaIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The unique identifier of the medias you want to attached to this content" - } - } + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the category", + "type": "string", + "title": "Id" }, - "description": "Content", - "title": "Content" - }, - "channelIds": { - "type": "array", - "items": { + "name": { + "description": "The name of the category", "type": "string", - "description": "The unique identifiers of the channels the content is published to", - "title": "Channels" + "title": "Name" }, - "description": "Channel Ids" - }, - "audienceId": { - "type": "string", - "description": "The audience that can access this content", - "title": "Audience" - }, - "date": { - "type": "string", - "description": "The publication date of the content", - "title": "Publication date" + "backgroundColor": { + "description": "The background color of the category", + "type": "string", + "title": "Background color" + }, + "textColor": { + "description": "The text color of the category", + "type": "string", + "title": "Text color" + }, + "shouldFillBackground": { + "description": "If the background color should fill all the background, the value is true. If the background color should be used in border only mode, the value is false", + "type": "boolean", + "title": "Shoud fill background" + } } } } } + } + } + }, + "/content/internalnews": { + "post": { + "responses": { + "200": { + "description": "An internal news", + "schema": { + "$ref": "#/definitions/InternalContent" + } + } }, "summary": "Create an internal news", "operationId": "CreateInternalNews", @@ -165,99 +149,7 @@ "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Write a title for your content", - "title": "title", - "x-ms-summary": "Title" - }, - "summary": { - "type": "string", - "description": "Write a short summary of the content", - "title": "summary", - "x-ms-summary": "Summary" - }, - "description": { - "type": "string", - "description": "Write your content", - "title": "content", - "x-ms-summary": "Content" - }, - "language": { - "type": "string", - "description": "Choose a language for the content", - "title": "language", - "x-ms-summary": "Language" - }, - "isDefault": { - "type": "boolean", - "description": "If you want this language to be the default, choose yes", - "title": "is the language default ?", - "x-ms-summary": "Is default language" - }, - "mediaIds": { - "type": "array", - "items": { - "type": "string", - "description": "The unique identifiers of images from a previous media upload to use" - }, - "title": "image", - "description": "An array of unique identifiers" - } - }, - "required": [ - "description", - "language", - "summary", - "title" - ], - "description": "An array of content", - "title": "Content" - } - }, - "channelIds": { - "type": "array", - "items": { - "type": "string", - "title": "Channels", - "x-ms-dynamic-values": { - "operationId": "GetChannels", - "value-path": "id", - "value-title": "name" - }, - "description": "Choose a channel that the content will be published to" - } - }, - "audienceId": { - "type": "string", - "description": "Choose an audience that will have access to this content", - "title": "Audience", - "x-ms-summary": "Audience", - "x-ms-dynamic-values": { - "operationId": "GetAudiences", - "value-path": "id", - "value-title": "name" - } - }, - "date": { - "type": "string", - "description": "Choose a date for the publication of the content", - "title": "Publication date", - "format": "date-time", - "x-ms-summary": "Publication date" - } - }, - "required": [ - "channelIds", - "contents" - ] + "$ref": "#/definitions/InternalContentCreation" } } ], @@ -270,91 +162,7 @@ "200": { "description": "An external content", "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the content", - "title": "Id" - }, - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "language": { - "type": "string", - "description": "Language", - "title": "Language" - }, - "isDefault": { - "type": "boolean", - "description": "Is the language default", - "title": "Is the language default" - }, - "title": { - "type": "string", - "description": "Title", - "title": "Title" - }, - "description": { - "type": "string", - "description": "Content", - "title": "Content" - }, - "proposedCommentForSharing": { - "type": "string", - "description": "The comment that will be proposed to users during share", - "title": "Comment for sharing" - }, - "mediaId": { - "type": "string", - "description": "The unique identifier used for the content", - "title": "Media unique identifier" - } - } - } - }, - "contentUrl": { - "type": "string", - "description": "The url of the content", - "title": "Content url" - }, - "channelIds": { - "type": "array", - "items": { - "type": "string", - "description": "The channels that the content is published to", - "title": "Channels" - }, - "description": "Channel Ids" - }, - "audienceId": { - "type": "string", - "description": "The audience that can access this content", - "title": "Audience" - }, - "date": { - "type": "string", - "description": "The publication date of the content", - "title": "Publication date" - }, - "isShareable": { - "type": "boolean", - "description": "If the response is yes, the content can be shared on external social networks", - "title": "Is shareable" - }, - "isOfficialContent": { - "type": "boolean", - "description": "If the response is yes, the content is displayed as official", - "title": "Is contentofficial ?" - }, - "areCommentsAuthorized": { - "type": "boolean", - "description": "If the response is yes, users can comment the content", - "title": "Can users comment the content ?" - } - } + "$ref": "#/definitions/ExternalContent" } } }, @@ -370,103 +178,7 @@ "in": "body", "required": true, "schema": { - "type": "object", - "properties": { - "contents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "title": { - "type": "string", - "description": "Write a title for the content", - "title": "title" - }, - "description": { - "type": "string", - "description": "Write your content", - "title": "content" - }, - "language": { - "type": "string", - "description": "Choose a language for the content", - "title": "language" - }, - "isDefault": { - "type": "boolean", - "description": "If you want this language to be the default, choose yes", - "title": "is default ?" - }, - "proposedCommentForSharing": { - "type": "string", - "description": "Write a comment that will be proposed to the users during share", - "title": "comment for sharing" - }, - "mediaId": { - "type": "string", - "description": "The unique identifier from a previous media upload to use", - "title": "image" - } - }, - "required": [ - "description", - "language", - "title" - ] - }, - "description": "Content", - "title": "Content" - }, - "channelIds": { - "type": "array", - "items": { - "type": "string", - "title": "Channel", - "x-ms-dynamic-values": { - "operationId": "GetChannels", - "value-path": "id", - "value-title": "name" - }, - "description": "Choose a channel that the content will be published to" - }, - "description": "channelIds" - }, - "audienceId": { - "type": "string", - "description": "Choose an audience that will have access to this content", - "title": "Audience", - "x-ms-dynamic-values": { - "operationId": "GetAudiences", - "value-path": "id", - "value-title": "name" - } - }, - "contentUrl": { - "type": "string", - "description": "The url of the content", - "title": "Content url" - }, - "isShareable": { - "type": "boolean", - "description": "If you want the content to be shareable by users on external social networks, choose yes", - "title": "Is shareable ?" - }, - "isOfficialContent": { - "type": "boolean", - "description": "If you want the content to be displayed as official, choose yes", - "title": "Is official ?" - }, - "areCommentsAuthorized": { - "type": "boolean", - "description": "If you want to allow users to comment, choose yes", - "title": "Can users comment ?" - } - }, - "required": [ - "channelIds", - "contentUrl", - "contents" - ] + "$ref": "#/definitions/ExternalContentCreation" } } ] @@ -647,11 +359,13 @@ "properties": { "id": { "type": "string", - "description": "id" + "description": "id", + "title": "Id" }, "name": { "type": "string", - "description": "name" + "description": "name", + "title": "Name" } } } @@ -676,16 +390,19 @@ "properties": { "badgeId": { "type": "string", - "description": "badgeId" + "description": "badgeId", + "title": "Badge Id" }, "level": { "type": "integer", "format": "int32", - "description": "level" + "description": "level", + "title": "Level" }, "name": { "type": "string", - "description": "name" + "description": "name", + "title": "Name" } } } @@ -712,16 +429,9 @@ "post": { "responses": { "200": { - "description": "A media unique identifier", + "description": "Success", "schema": { - "type": "object", - "properties": { - "mediaId": { - "type": "string", - "description": "A media unique identifier", - "title": "Media Id" - } - } + "$ref": "#/definitions/UploadMediaResponse" } } }, @@ -733,21 +443,37 @@ ], "parameters": [ { - "name": "media", "in": "formData", - "required": false, - "type": "file", - "x-ms-media-kind": "image", - "description": "The media to be uploaded", - "x-ms-summary": "Media" + "type": "string", + "enum": [ + "private", + "public" + ], + "x-ms-summary": "Media Visibility", + "name": "mediaVisibility", + "description": "This represents the visibility of a media. If the media is not intended to be publicly visible (for exemple linked to an internal news that can't be shared) the value should be private", + "required": true }, { + "in": "formData", + "x-ms-summary": "Media URL", "name": "mediaUrl", + "description": "The url of the media to upload. You can either specify media or mediaUrl but not both", + "type": "string" + }, + { "in": "formData", - "required": false, - "type": "string", - "description": "The url of a media to be uploaded", - "x-ms-summary": "Media URL" + "x-ms-summary": "Folder Id", + "name": "folderId", + "description": "The unique identifier of the media drive folder in which the media should be uploaded into. This parameter is optional and only accessible for Standard subscriptions", + "type": "string" + }, + { + "in": "formData", + "x-ms-summary": "Media", + "name": "media", + "description": "The media to upload. You can either specify media or mediaUrl but not both", + "type": "file" } ] } @@ -939,6 +665,7 @@ }, "/mediafolders": { "get": { + "deprecated": true, "responses": { "200": { "description": "An array of folders", @@ -985,6 +712,7 @@ }, "/mediafolders/{folderId}/medias": { "post": { + "deprecated": true, "responses": { "200": { "description": "default", @@ -1024,6 +752,34 @@ } ] } + }, + "/mediadrive": { + "get": { + "summary": "Get Media Drive folders", + "description": "Get Media Drive folders", + "operationId": "GetMediaDriveFolders", + "produces": [ + "application/json" + ], + "parameters": [ + { + "in": "query", + "name": "culture", + "x-ms-summary": "Culture", + "description": "The language in which the labels are returned", + "type": "string", + "default": "en" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/GetFoldersResponse" + } + } + } + } } }, "x-ms-connector-metadata": [ @@ -1040,14 +796,770 @@ "propertyValue": "Website" } ], - "definitions": {}, + "definitions": { + "MyNewsDisplayBehavior": { + "description": "Define the behavior regarding the display of a content in \"My News\"", + "enum": [ + "default", + "always", + "never" + ], + "type": "string", + "title": "My News Display" + }, + "InternalContent": { + "description": "Represents an internal news", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the content", + "type": "string", + "title": "Id" + }, + "date": { + "format": "date-time", + "description": "The publication date for the content", + "type": "string", + "title": "Publication date" + }, + "internalUrl": { + "description": "The url to view the content", + "type": "string", + "title": "Internal URL" + }, + "channelIds": { + "description": "An array containing all unique identifiers of the channels where the content appears. Deprecated: The property Channels should be used instead", + "type": "array", + "items": { + "type": "string" + } + }, + "channels": { + "title": "Channels", + "description": "An array containing all channels where the content appears", + "type": "array", + "items": { + "$ref": "#/definitions/ContentChannel" + } + }, + "audienceId": { + "description": "The unique identifier of the audience Deprecated: This property will always be empty or null", + "type": "string", + "title": "Audience Id" + }, + "categories": { + "title": "Categories", + "description": "The categories associated with the content", + "type": "array", + "items": { + "$ref": "#/definitions/ContentCategory" + } + }, + "likeNumber": { + "format": "int32", + "description": "The number of times users clicked \"like\"", + "type": "integer", + "title": "Like number" + }, + "commentNumber": { + "format": "int32", + "description": "The number of times users wrote a comment", + "type": "integer", + "title": "Comment number" + }, + "clickNumber": { + "format": "int32", + "description": "The number of times users clicked on the content", + "type": "integer", + "title": "Click number" + }, + "hasBeenRead": { + "description": "If the content has been already read the value is yes", + "type": "boolean", + "title": "Content has been read" + }, + "contents": { + "title": "Contents", + "description": "An array containing the content in different languages", + "type": "array", + "items": { + "$ref": "#/definitions/LocalizedInternalContent" + } + } + } + }, + "LocalizedInternalContent": { + "required": [ + "description", + "language", + "summary", + "title" + ], + "type": "object", + "properties": { + "language": { + "description": "The language of the content", + "type": "string", + "title": "Language" + }, + "isDefault": { + "description": "If the language should be considered as default, choose yes", + "type": "boolean", + "title": "Is language default ?" + }, + "title": { + "description": "The title", + "type": "string", + "title": "Title" + }, + "summary": { + "description": "A short summary of the content", + "type": "string", + "title": "Summary" + }, + "description": { + "description": "The content", + "type": "string", + "title": "Description" + }, + "mediaIds": { + "description": "An array containing the unique identifiers of the previously uploaded medias that are linked to the content. Deprecated: The property Medias should be used instead", + "type": "array", + "items": { + "type": "string" + } + }, + "medias": { + "title": "Medias", + "description": "The images of the content", + "type": "array", + "items": { + "$ref": "#/definitions/ContentImage" + } + } + } + }, + "ContentCategory": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the category", + "type": "string", + "title": "Category Id" + }, + "name": { + "description": "The name of the category", + "type": "string", + "title": "Category name" + }, + "backgroundColor": { + "description": "The background color of the category", + "type": "string", + "title": "Category background color" + }, + "textColor": { + "description": "The text color of the category", + "type": "string", + "title": "Category text color" + }, + "shouldFillBackground": { + "description": "If the background color should fill all the background, the value is true. If the background color should be used in border only mode, the value is false", + "type": "boolean", + "title": "Should fill background" + } + } + }, + "ContentChannel": { + "description": "Represents a channel associated with a content", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the channel", + "type": "string", + "title": "Channel Id" + }, + "name": { + "description": "The name of the channel", + "type": "string", + "title": "Channel name" + }, + "image": { + "description": "The image url of the channel", + "type": "string", + "title": "Channel image" + }, + "backgroundColor": { + "description": "The background color of the channel in case there is no image", + "type": "string", + "title": "Channel background color" + } + } + }, + "ContentImage": { + "description": "Represents an image associated with a content", + "type": "object", + "properties": { + "id": { + "description": "The unique identifier for the image", + "type": "string", + "title": "Content image Id" + }, + "short": { + "description": "A short hash that can be used to ask transformation on the image", + "type": "string", + "title": "Content image short" + }, + "url": { + "description": "The image url", + "type": "string", + "title": "Content image url" + }, + "order": { + "format": "int32", + "description": "If there are multiple image associated with the content, an order can be specified", + "type": "integer", + "title": "Content image order" + } + } + }, + "InternalContentCreation": { + "description": "Represents a request to create an internal content", + "required": [ + "contents", + "channelIds" + ], + "type": "object", + "properties": { + "channelIds": { + "title": "Channel", + "type": "array", + "items": { + "type": "string", + "description": "Choose a channel that the content will be published to", + "x-ms-dynamic-values": { + "operationId": "GetChannels", + "value-path": "id", + "value-title": "name" + } + } + }, + "categoryIds": { + "title": "Category", + "type": "array", + "items": { + "type": "string", + "description": "Choose a category that the content will be tagged with", + "title": "Category", + "x-ms-dynamic-values": { + "operationId": "GetCategories", + "value-path": "id", + "value-title": "name" + } + } + }, + "audienceId": { + "description": "The unique identifier of the audience", + "type": "string", + "title": "Audience Id" + }, + "shouldPinTopOfMyNews": { + "description": "If you want the content to be pinned at the top of \"My News\", choose yes", + "type": "boolean", + "title": "Should pin at the top of My News ?" + }, + "pinOfMyNewsStartDate": { + "format": "date-time", + "description": "The date at which you want the content to be pinned at the top of \"My News\"", + "type": "string", + "title": "Start date pin at the top of My News" + }, + "pinOfMyNewsEndDate": { + "format": "date-time", + "description": "The date at which you want the content to be unpinned from \"My News\"", + "type": "string", + "title": "End date pin at the top of My News" + }, + "shouldPinTopOfSelectedChannels": { + "description": "If you want the content to be pinned at the top of the selected channels, choose yes", + "type": "boolean", + "title": "Should pin at the top of selected channels ?" + }, + "pinTopOfSelectedChannelsStartDate": { + "format": "date-time", + "description": "The date at which you want the content to be pinned at the top of the selected channels", + "type": "string", + "title": "Start date pin at the top of selected channels" + }, + "pinTopOfSelectedChannelsEndDate": { + "format": "date-time", + "description": "The date at which you want the content to be unpinned from selected channels", + "type": "string", + "title": "End date pin at the top of selected channels" + }, + "myNewsDisplay": { + "$ref": "#/definitions/MyNewsDisplayBehavior" + }, + "contents": { + "title": "Contents", + "description": "An array containing the content in different languages", + "type": "array", + "items": { + "$ref": "#/definitions/LocalizedInternalContentCreation" + } + }, + "date": { + "format": "date-time", + "description": "The publication date for the content. Deprecated: PublicationStartDate should be used instead", + "type": "string", + "title": "Date" + }, + "publicationStartDate": { + "format": "date-time", + "description": "The date at which the content should be displayed", + "type": "string", + "title": "Publication start date" + }, + "publicationEndDate": { + "format": "date-time", + "description": "The date at which the content should not be displayed anymore", + "type": "string", + "title": "Publication end date" + }, + "areCommentsAuthorized": { + "description": "If the content can be commented, choose yes", + "type": "boolean", + "title": "Are comments authorized ?" + }, + "shouldNotifyUsers": { + "description": "If a notification should be sent to users when content is available, choose yes", + "type": "boolean", + "title": "Should notify users ?" + }, + "isMustReadContent": { + "description": "If you want users explicitely mark the content as read, choose yes", + "type": "boolean", + "title": "Is must read ?" + } + } + }, + "ExternalContent": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the content", + "type": "string", + "title": "Id" + }, + "date": { + "format": "date-time", + "description": "The publication date for the content", + "type": "string", + "title": "Publication date" + }, + "internalUrl": { + "description": "The url to view the content", + "type": "string", + "title": "Internal URL" + }, + "channelIds": { + "description": "An array containing all unique identifiers of the channels where the content appears. Deprecated: The property Channels should be used instead", + "type": "array", + "items": { + "type": "string", + "description": "channel", + "title": "channel" + } + }, + "channels": { + "title": "Channels", + "description": "An array containing all channels where the content appears", + "type": "array", + "items": { + "$ref": "#/definitions/ContentChannel" + } + }, + "audienceId": { + "description": "The unique identifier of the audience. Deprecated: This property will always be empty or null", + "type": "string", + "title": "Audience Id" + }, + "categories": { + "title": "Categories", + "description": "The categories associated with the content", + "type": "array", + "items": { + "$ref": "#/definitions/ContentCategory" + } + }, + "likeNumber": { + "format": "int32", + "description": "The number of times users clicked \"like\"", + "type": "integer", + "title": "Like number" + }, + "commentNumber": { + "format": "int32", + "description": "The number of times users wrote a comment", + "type": "integer", + "title": "Comment number" + }, + "clickNumber": { + "format": "int32", + "description": "The number of times users clicked on the content", + "type": "integer", + "title": "Click number" + }, + "hasBeenRead": { + "description": "If the content has been already read the value is yes", + "type": "boolean", + "title": "Content has been read" + }, + "contents": { + "title": "Contents", + "description": "An array containing the content in different languages", + "type": "array", + "items": { + "$ref": "#/definitions/LocalizedExternalContent" + } + }, + "contentUrl": { + "description": "The link pointing to an external source", + "type": "string", + "title": "Content url" + }, + "isShareable": { + "description": "If the content can be shared on external networks, choose yes", + "type": "boolean", + "title": "Is content shareable ?" + }, + "isOfficialContent": { + "description": "If the content should be considered as official, choose yes", + "type": "boolean", + "title": "Is content official ?" + }, + "areCommentsAuthorized": { + "description": "If the content can be commented, choose yes", + "type": "boolean", + "title": "Are comments authorized ?" + } + } + }, + "ExternalContentCreation": { + "description": "Represents a request to create an internal content", + "required": [ + "contents", + "contentUrl", + "channelIds" + ], + "type": "object", + "properties": { + "channelIds": { + "title": "Channel", + "type": "array", + "items": { + "type": "string", + "description": "Choose a channel that the content will be published to", + "x-ms-dynamic-values": { + "operationId": "GetChannels", + "value-path": "id", + "value-title": "name" + } + } + }, + "categoryIds": { + "title": "Category", + "type": "array", + "items": { + "type": "string", + "description": "Choose a category that the content will be tagged with", + "x-ms-dynamic-values": { + "operationId": "GetCategories", + "value-path": "id", + "value-title": "name" + } + } + }, + "audienceId": { + "description": "The unique identifier of the audience", + "type": "string", + "title": "Audience Id" + }, + "shouldPinTopOfMyNews": { + "description": "If you want the content to be pinned at the top of \"My News\", choose yes", + "type": "boolean", + "title": "Should pin at the top of My News ?" + }, + "pinOfMyNewsStartDate": { + "format": "date-time", + "description": "The date at which you want the content to be pinned at the top of \"My News\"", + "type": "string", + "title": "Start date pin at the top of My News" + }, + "pinOfMyNewsEndDate": { + "format": "date-time", + "description": "The date at which you want the content to be unpinned from \"My News\"", + "type": "string", + "title": "End date pin at the top of My News" + }, + "shouldPinTopOfSelectedChannels": { + "description": "If you want the content to be pinned at the top of the selected channels, choose yes", + "type": "boolean", + "title": "Should pin at the top of selected channels ?" + }, + "pinTopOfSelectedChannelsStartDate": { + "format": "date-time", + "description": "The date at which you want the content to be pinned at the top of the selected channels", + "type": "string", + "title": "Start date pin at the top of selected channels" + }, + "pinTopOfSelectedChannelsEndDate": { + "format": "date-time", + "description": "The date at which you want the content to be unpinned from selected channels", + "type": "string", + "title": "End date pin at the top of selected channels" + }, + "myNewsDisplay": { + "$ref": "#/definitions/MyNewsDisplayBehavior" + }, + "contents": { + "title": "Contents", + "description": "An array containing the content in different languages", + "type": "array", + "items": { + "$ref": "#/definitions/LocalizedExternalContentCreation" + } + }, + "date": { + "format": "date-time", + "description": "The publication date for the content. Deprecated: PublicationStartDate should be used instead", + "type": "string", + "title": "Date" + }, + "publicationStartDate": { + "format": "date-time", + "description": "The date at which the content should be displayed", + "type": "string", + "title": "Publication start date" + }, + "publicationEndDate": { + "format": "date-time", + "description": "The date at which the content should not be displayed anymore", + "type": "string", + "title": "Publication end date" + }, + "contentUrl": { + "description": "The link pointing to an external source", + "type": "string", + "title": "Content URL" + }, + "isShareable": { + "description": "If the content can be shared on external networks, choose yes", + "type": "boolean", + "title": "Is content shareable ?" + }, + "isOfficialContent": { + "description": "If the content should be considered as official, choose yes", + "type": "boolean", + "title": "Is an official content ?" + }, + "areCommentsAuthorized": { + "description": "If the content can be commented, choose yes", + "type": "boolean", + "title": "Are comments authorized ?" + }, + "shouldNotifyUsers": { + "description": "If a notification should be sent to users when content is available, choose yes", + "type": "boolean", + "title": "Should notify users ?" + }, + "isMustReadContent": { + "description": "If you want users explicitely mark the content as read, choose yes", + "type": "boolean", + "title": "Is a must read content ?" + } + } + }, + "LocalizedExternalContentCreation": { + "required": [ + "description", + "language", + "title" + ], + "type": "object", + "properties": { + "language": { + "description": "The language of the content", + "type": "string", + "title": "Language" + }, + "isDefault": { + "description": "If the language should be considered as default, choose yes", + "type": "boolean", + "title": "Is the language default ?" + }, + "title": { + "description": "The title", + "type": "string", + "title": "Title" + }, + "description": { + "description": "The content", + "type": "string", + "title": "Description" + }, + "proposedCommentForSharing": { + "description": "A comment that will be proposed to users when sharing", + "type": "string", + "title": "Proposed comment" + }, + "mediaId": { + "description": "The unique identifier of the previously uploaded media that should be linked to the content", + "type": "string", + "title": "Media Id" + } + } + }, + "LocalizedExternalContent": { + "type": "object", + "properties": { + "language": { + "description": "The language of the content", + "type": "string", + "title": "Language" + }, + "isDefault": { + "description": "If the language should be considered as default, choose yes", + "type": "boolean", + "title": "Is language default ?" + }, + "title": { + "description": "The title", + "type": "string", + "title": "Title" + }, + "description": { + "description": "The content", + "type": "string", + "title": "Description" + }, + "proposedCommentForSharing": { + "description": "A comment that will be proposed to users when sharing", + "type": "string", + "title": "Proposed comment" + }, + "mediaId": { + "description": "The unique identifier of the previously uploaded media that should be linked to the content", + "type": "string", + "title": "Media Id" + }, + "image": { + "$ref": "#/definitions/ContentImage" + } + } + }, + "LocalizedInternalContentCreation": { + "required": [ + "description", + "language", + "summary", + "title" + ], + "type": "object", + "properties": { + "language": { + "description": "The language of the content.", + "type": "string", + "title": "Language" + }, + "isDefault": { + "description": "If the language should be considered as default, choose yes", + "type": "boolean", + "title": "Is the language default ?" + }, + "title": { + "description": "The title", + "type": "string", + "title": "Title" + }, + "summary": { + "description": "A short summary of the content", + "type": "string", + "title": "Summary" + }, + "description": { + "description": "The content", + "type": "string", + "title": "Description" + }, + "mediaIds": { + "description": "An array containing the unique identifiers of the previously uploaded medias that are linked to the content", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "GetFoldersResponse": { + "type": "object", + "properties": { + "folders": { + "description": "An array of media folders", + "type": "array", + "items": { + "$ref": "#/definitions/MediaFolder" + } + } + } + }, + "MediaFolder": { + "type": "object", + "properties": { + "id": { + "description": "The unique identifier of the folder", + "type": "string", + "title": "Folder id" + }, + "name": { + "description": "The name of the folder", + "type": "string", + "title": "Folder name" + }, + "isGeneratedFolder": { + "description": "If the folder is generated by the system, the value is yes", + "type": "boolean", + "title": "Is folder generated" + }, + "canUploadInto": { + "description": "If you can upload files in this folder, the value is yes", + "type": "boolean", + "title": "Can upload into folder" + } + } + }, + "UploadMediaResponse": { + "type": "object", + "properties": { + "mediaId": { + "description": "The unique identifier of the media", + "type": "string", + "title": "Media Id" + }, + "url": { + "description": "The media url", + "type": "string", + "title": "Media url" + } + } + } + }, "parameters": {}, "responses": {}, "securityDefinitions": { "API Key": { "type": "apiKey", "in": "header", - "name": "Subscription-Key" + "name": "X-Sociabble-SubscriptionKey" } }, "security": [ @@ -1056,4 +1568,4 @@ } ], "tags": [] -} \ No newline at end of file +} From 18af063b25d5e91cfa895f83a1239eee3bfc890d Mon Sep 17 00:00:00 2001 From: RjImpx <72759719+RjImpx@users.noreply.github.com> Date: Mon, 3 Jan 2022 18:49:44 -0500 Subject: [PATCH 195/219] Adding 50+ new actions + 8 new triggers to the connector (#1281) * Update Icon brand color * Change to API Key Authentication - Changed to API key Authentication - Added policy to set host * New Action and fix responses and descriptions 1. New Action Added 2. Updated response objects, these were missing 3. Updated parameter descriptions and summary * Trying to fix merge errors Trying to fix merge errors * Fixed question mark in summary Fixed question mark in summary * Fix /api/v1/Individuals response user schema * Add /api/v1/Customers/{pageNumber} response schema, update title & summary * Add /api/v1/Individuals/{id}/Customfields response schema * Fix properties description, visibility, types * Revert "Add /api/v1/Individuals/{id}/Customfields response schema" This reverts commit b38badc049d3eaef8abc3ac5ca4917fe5ecf762c. * Update responses Title and Description * Fix Paconn Validate warnings * Fix types in OrganizationData model * Revert "Fix Warnings and types on OrganizationData Model" * Update apiDefinition.swagger.json Fix datatype bug and warnings * Added four new trigger : CommitteeMemberUpdated,PurchaseCancelled,RequestUpdated and EmailUpdated * Updated ProductPurchased Trigger description and added ref to ProductPurchasedPayload * Update apiDefinition.swagger.json fix name for emailAddress property of CustomerRequestPayload * Added punctuation and spaces between words to descriptions * Added missing Titles * Add new actions - Add new actions - Fix 'primary' field texts - Multiple fixes * Fix "Cancelled" typo * Remove references to PowerAutomate name * Update apiDefinition.swagger.json Fix format for Date type input parameters * Revert "Fix format for Date type input parameters" * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json I removed the action "List all Organization" since there are internal decisions that are needing to be made. * Next 5 Actions * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * PR 3 References: (8) PhoneDataset PhoneSaveData EventData MembershipData CustomFieldData CommitteeMemberData RegistrationData RelationshipData Actions: (10) Get All Events Get Organization Active Memberships Get Organization Custom Field Values Get Committee Information for an Individual Add Phone to Individual Get Individual Active Memberships Get All Event Registrations Information for an Individual Get Individual's Relationships Update an Individual Email Save Relationship for Organization * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json got it to validate successfully, but has warnings of similar paths. * Update apiDefinition.swagger.json * Add files via upload * Delete apiDefinition.swagger.json * Update apiDefinition.swagger.json Made changes, waiting for verdict on response schema for Add or Update a list of Custom Fields Per Individual, on whether to keep empty, troubleshoot, or omit from PR * Update apiDefinition.swagger.json * Microsoft Pull Request Changes Indentation changes and Removal of Empty response Schema. * Update apiDefinition.swagger.json * Used JSON Beautifier as suggested * JSON Beautifier to have same format as Microsoft-PR * Removed Schema * Update apiDefinition.swagger.json * PR5 Actions: Delete an Individual Web Link Add Web Link for Individual Add Phone to Organization Update Phone for an Organization Update Phone for an Individual Get a List of All Services of an Organization Add a Service to an Organization Find Members (Individuals) by Name Get a List of Licenses List All Awards References: RelationshipSaveData ServiceData LicenseData AwardData * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json Actions: Get a List of Licenses Register an Individual for a Free Session Add Activity to Organization Get Individual Inactive Memberships Get List of Active Certications for an Individual Get List of Active Certications for an Organization List All Individual Members Add a New Task Add Categories for an Individual Add Notification to Individual Delete a Category for an Individual Assign Task to a User Find member (Individuals) by last name Find Members (Individuals) by first name Update User Task Progress or Mark as Completed Delete Record From Custom Data Table Get Organization Inactive Memberships List all Open Customer Request List of Customer Relationships References: RelationshipTypeData RequestData UserTaskData NotificationData SaveCategoryBasicData TaskData TaskSaveData CertificationData Activity Data SessionRegistrationData LicenseData * Add Customer.CustomFieldValueUpdated trigger * Add Customer.Merged trigger * Add Customer.RelationshipUpdated trigger * Add Customer.PhoneUpdated trigger * Add Event.Registration.Substituted trigger * Fix Customer.PhoneUpdated summary * Add Individual.RequestToBeForgotten trigger * Add Customer.AddressUpdated trigger * Add missing space to Customer.PhoneUpdated summary * Add Individual.Deleted trigger * Reorder trigger, refactor IndividualCreated parameters, fix Customer.AddressUpdated operation id * Remove enum options, make text styles consistent * Update apiDefinition.swagger.json Fix typo * Remove empty schemas, remove filters from webhooks that don't use them * Removed Blank Schema- Microsoft PR Co-authored-by: William Llanos Co-authored-by: Fabio Vides F <11657124+fdjvf@users.noreply.github.com> Co-authored-by: Fabio Vides F Co-authored-by: Fabio Vides F Co-authored-by: jokano12 <83984082+jokano12@users.noreply.github.com> --- .../Impexium/apiDefinition.swagger.json | 18227 ++++++++++++---- 1 file changed, 14442 insertions(+), 3785 deletions(-) diff --git a/certified-connectors/Impexium/apiDefinition.swagger.json b/certified-connectors/Impexium/apiDefinition.swagger.json index cead14774f..fd3909182c 100644 --- a/certified-connectors/Impexium/apiDefinition.swagger.json +++ b/certified-connectors/Impexium/apiDefinition.swagger.json @@ -12,96 +12,58 @@ }, "host": "automation.impexium.com", "basePath": "/", - "schemes": ["https"], - "consumes": ["application/json"], - "produces": ["application/json"], + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], "paths": { - "/api/v1/Individuals": { - "post": { - "tags": ["Individuals"], + "/api/v1/Customers/RelationshipTypes/{Page Number}": { + "get": { + "tags": [ + "Customers" + ], "responses": { "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/IndividualData" - } - } - }, - "summary": "Add Individual", - "description": "Adds an Individual.", - "operationId": "Add-Individual", - "parameters": [ - { - "name": "createUser", - "in": "query", - "required": false, - "type": "string", - "default": "False", - "description": "Choose True if a user account should be created when the individual is created.", - "enum": ["True", "False"], - "x-ms-visibility": "advanced", - "x-ms-summary": "Create User." - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, + "description": "default", "schema": { "type": "object", "properties": { - "firstName": { - "type": "string", - "description": "First Name.", - "title": "First Name" - }, - "lastName": { - "type": "string", - "description": "Last Name.", - "title": "Last Name" + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" }, - "email": { - "type": "string", - "description": "Email Address.", - "title": "Email Address", - "x-ms-visibility": "advanced" + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationshipTypeData" + }, + "description": "dataList" } - }, - "required": ["firstName", "lastName"] + } } } - ] - } - }, - "/api/v1/Individuals/{id}/Activities": { - "post": { - "tags": ["Individuals"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } }, - "summary": "Add Activity", - "description": "Add Activity.", - "operationId": "Add-Activity", + "summary": "List of Customer Relationships", + "description": "List of Customer Relationships", + "operationId": "List-of-Customer-Relationships", "parameters": [ { - "name": "id", + "name": "Page Number", "in": "path", "required": true, - "type": "string", - "format": "uuid", - "description": "Individual Id.", - "x-ms-summary": "Individual Id", - "x-ms-url-encoding": "single" + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" }, { "name": "Content-Type", @@ -110,99 +72,89 @@ "type": "string", "default": "application/json", "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, - "schema": { - "type": "object", - "properties": { - "category": { - "type": "string", - "description": "Category.", - "title": "Category", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "text": { - "type": "string", - "description": "Text.", - "title": "Text" - }, - "url": { - "type": "string", - "description": "URL.", - "title": "URL" - }, - "activityDate": { - "type": "string", - "format": "date", - "description": "Activity Date.", - "title": "Activity Date" - } - }, - "required": ["text", "category"] - } } ] } }, - "/api/v1/Individuals/Profile/{idOrRecordNumberOrEmail}/{pageNumber}/": { + "/api/v1/Requests/Open/{Page Number}": { "get": { - "tags": ["Individuals"], + "tags": [ + "Requests" + ], "responses": { "200": { - "description": "Success", + "description": "default", "schema": { "type": "object", "properties": { "pageNumber": { "type": "integer", "format": "int32", - "title": "Page Number", - "description": "Page Number." + "description": "Page Number.", + "title": "Page Number" }, "dataList": { "type": "array", "items": { - "$ref": "#/definitions/IndividualData" + "$ref": "#/definitions/RequestData" }, - "description": "Data List." + "description": "dataList" } } } } }, - "summary": "Find Individual by Id or Email or Record Number", - "description": "Find Individual by Id or Email.", - "operationId": "Find-Individual-IDOrEmail", "parameters": [ { - "name": "idOrRecordNumberOrEmail", - "in": "path", - "required": true, - "type": "string", - "description": "Id or Record Number or Email.", - "x-ms-summary": "Id or Record Number or Email", - "x-ms-url-encoding": "single" - }, - { - "name": "pageNumber", + "name": "Page Number", "in": "path", "required": true, "type": "integer", "default": 1, - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" }, { - "name": "IncludeDetails", - "in": "query", + "name": "Content-Type", + "in": "header", "required": true, "type": "string", - "default": "True", + "default": "application/json", "x-ms-visibility": "internal" + } + ], + "description": "List All Open Customer Request", + "operationId": "List-All-Open-Customer-Request", + "summary": "List All Open Customer Request" + } + }, + "/api/v1/Organizations/{ID}/Memberships/Inactive": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/MembershipData" + } + } + }, + "summary": "Get Organization Inactive Memberships", + "description": "Get Organization Inactive Memberships", + "operationId": "Get-Organization-Inactive-Memberships", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID" }, { "name": "Content-Type", @@ -215,114 +167,74 @@ ] } }, - "/api/v1/Individuals/{id}/Relationships": { - "post": { - "tags": ["Individuals"], + "/api/v1/CustomData/{Table Name}/{ID}": { + "delete": { + "tags": [ + "CustomData" + ], "responses": { "200": { - "description": "200", - "schema": {} + "description": "default" } }, - "summary": "Add Relationship to Individual", - "description": "Add Relationship to Individual.", - "operationId": "Add-relationship-to-individual", + "summary": "Delete Record From Custom Data Table", + "description": "Delete Record From Custom Data Table", + "operationId": "Delete-Record-From-Custom-Data-Table", "parameters": [ { - "name": "id", + "name": "Table Name", "in": "path", "required": true, "type": "string", - "description": "Individual Id.", - "x-ms-summary": "Individual Id", - "x-ms-url-encoding": "single" + "description": "Custom table name", + "x-ms-url-encoding": "single", + "x-ms-summary": "Table Name" + }, + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "ID of the record to be deleted.", + "x-ms-url-encoding": "single", + "x-ms-summary": "ID" }, { "name": "Content-Type", "in": "header", "required": true, "type": "string", - "default": "Application/Json", + "default": "application/json", "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, - "schema": { - "type": "object", - "properties": { - "relationshipName": { - "type": "string", - "description": "Relationship Name.", - "title": "Relationship Name", - "default": "Employee" - }, - "relatedToCustomerRecordNumber": { - "type": "string", - "description": "Related To Customer Record Number.", - "title": "Related To Customer Record Number" - }, - "reciprocalRelationshipName": { - "type": "string", - "description": "Reciprocal Relationship Name.", - "title": "Reciprocal Relationship Name", - "default": "Employer" - }, - "isPrimary": { - "type": "boolean", - "description": "Is Primary.", - "title": "Is Primary", - "x-ms-visibility": "advanced", - "enum": [true, false], - "default": false - }, - "startDate": { - "type": "string", - "format": "date", - "description": "Start Date.", - "title": "Start Date", - "x-ms-visibility": "advanced" - }, - "endDate": { - "type": "string", - "format": "date", - "description": "End Date.", - "title": "End Date", - "x-ms-visibility": "advanced" - } - }, - "required": [ - "reciprocalRelationshipName", - "relatedToCustomerRecordNumber", - "relationshipName" - ] - } } ] } }, - "/api/v1/Individuals/{id}/Customfields": { - "post": { - "tags": ["Individuals"], + "/api/v1/tasks/Users/{User ID or Email}": { + "put": { + "tags": [ + "Tasks" + ], "responses": { "200": { - "description": "Success", - "schema": {} + "description": "default", + "schema": { + "$ref": "#/definitions/UserTaskData" + } } }, - "summary": "Update Custom Field Value", - "description": "Update Custom Field Value.", - "operationId": "Update-custom-field-value", + "summary": "Update User Task Progress or Mark as Completed", + "description": "Update User Task Progress or Mark as Completed", + "operationId": "Update-User-Task-Progress-or-Mark-as-Completed", "parameters": [ { - "name": "id", + "name": "User ID or Email", "in": "path", "required": true, "type": "string", - "description": "Customer Id.", - "x-ms-summary": "Customer Id", - "x-ms-url-encoding": "single" + "description": "A valid User Id or Email", + "x-ms-url-encoding": "single", + "x-ms-summary": "User ID or Email" }, { "name": "Content-Type", @@ -337,40 +249,153 @@ "in": "body", "required": false, "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Custom Field Name.", - "title": "Custom Field Name" - }, - "value": { - "type": "string", - "description": "Custom Field Value. For multi-selects, use \"|\" as delimiter.", - "title": "Custom Field Value" - } - }, - "required": ["name", "value"] + "$ref": "#/definitions/UserTaskData" } } ] } }, - "/api/v1/Individuals/{idOrRecordNumber}/EducationCredits": { + "/api/v1/Individuals/Members/FindByFirstName/{First Name}/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/IndividualData" + } + } + }, + "summary": "Find Members (Individuals) by First Name", + "description": "Find Members (Individuals) by First Name", + "operationId": "Find-Members-or-Individuals-by-First-Name", + "parameters": [ + { + "name": "First Name", + "in": "path", + "required": true, + "type": "string", + "description": "First Name", + "x-ms-url-encoding": "single", + "x-ms-summary": "First Name" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "x-ms-visibility": "advanced", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number" + }, + { + "name": "Include Email", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Email Data", + "x-ms-summary": "Include Email", + "enum": [ + false, + true + ] + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/Members/FindByLastName/{Last Name}/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/IndividualData" + } + } + }, + "parameters": [ + { + "name": "Last Name", + "in": "path", + "required": true, + "type": "string", + "description": "Last Name.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Last Name." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number.", + "x-ms-visibility": "advanced" + }, + { + "name": "Include Email", + "in": "query", + "required": false, + "type": "boolean", + "description": "Include Email Data.", + "x-ms-summary": "Include Email", + "default": false, + "enum": [ + false, + true + ] + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "summary": "Find Members (Individuals) by Last Name", + "description": "Find Members (Individuals) by Last Name", + "operationId": "Find-Members-or-Individuals-by-Last-Name" + } + }, + "/api/v1/tasks/Users/{User ID or Email}/Task": { "post": { - "tags": ["Individuals"], - "summary": "Add Education Credits to Individual", - "description": "Add a new Education Credit to an Individual.", - "operationId": "Individual-Add-Education-Credit", + "tags": [ + "Tasks" + ], + "responses": { + "200": { + "description": "default" + } + }, "parameters": [ { - "name": "idOrRecordNumber", + "name": "User ID or Email", "in": "path", "required": true, "type": "string", - "description": "Individual Id or Record Number.", - "x-ms-summary": "Id or Record Number", - "x-ms-url-encoding": "single" + "description": "A valid User Id or Email", + "x-ms-url-encoding": "single", + "x-ms-summary": "User ID or Email" }, { "name": "Content-Type", @@ -383,36 +408,79 @@ { "name": "body", "in": "body", - "description": "Education Credit Data.", - "required": true, + "required": false, "schema": { - "$ref": "#/definitions/EducationCreditData" + "$ref": "#/definitions/UserTaskData" } } ], + "summary": "Assign Task to a User", + "description": "Assign Task to a User", + "operationId": "Assign-Task-to-a-User" + } + }, + "/api/v1/Individuals/{Record Number}/Categories/{Category Code}": { + "delete": { + "tags": [ + "Individuals" + ], "responses": { "200": { - "description": "OK", - "schema": {} + "description": "default" } - } + }, + "parameters": [ + { + "name": "Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Record Number." + }, + { + "name": "Category Code", + "in": "path", + "required": true, + "type": "string", + "description": "Category Code.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Category Code." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "summary": "Delete a Category for an Individual", + "description": "Delete a Category for an Individual", + "operationId": "Delete-a-Category-for-an-Individual" } }, - "/api/v1/Individuals/{id}/Notes": { + "/api/v1/Individuals/{ID}/Notifications": { "post": { - "tags": ["Individuals"], - "summary": "Add Note to Individual", - "description": "Add a Note to an Individual.", - "operationId": "Individual-AddNote", + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default" + } + }, "parameters": [ { - "name": "id", + "name": "ID", "in": "path", "required": true, "type": "string", - "description": "Individual Id.", - "x-ms-summary": "Individual Id", - "x-ms-url-encoding": "single" + "description": "Individual ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID." }, { "name": "Content-Type", @@ -423,56 +491,81 @@ "x-ms-visibility": "internal" }, { - "name": "note", + "name": "body", "in": "body", - "x-ms-summary": "Note Data", - "description": "Note Data.", - "required": true, + "required": false, "schema": { - "$ref": "#/definitions/NoteData" + "$ref": "#/definitions/NotificationData" } } ], + "summary": "Add Notification to Individual", + "description": "Add Notification to Individual", + "operationId": "Add-Notification-to-Individual" + } + }, + "/api/v1/Individuals/{Record Number}/Categories": { + "post": { + "tags": [ + "Individuals" + ], "responses": { "200": { - "description": "OK", - "schema": {} + "description": "default" } - } - } - }, - "/api/v1/Individuals/Lookup/{pageNumber}": { - "get": { - "tags": ["Individuals"], - "summary": "Lookup Individuals", - "description": "Lookup Individuals by Name", - "operationId": "Individuals-LookupByName", + }, + "summary": "Add Categories for an Individual", + "description": "Add Categories for an Individual", + "operationId": "Add-Categories-for-an-Individual", "parameters": [ { - "name": "name", - "in": "query", + "name": "Record Number", + "in": "path", "required": true, "type": "string", - "description": "Individual Name.", - "x-ms-summary": "Lookup value" + "description": "Individual Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual Record Number." }, { - "name": "includeOrgAddresses", - "in": "query", + "name": "Content-Type", + "in": "header", "required": true, - "type": "boolean", - "default": true, + "type": "string", + "default": "application/json", "x-ms-visibility": "internal" }, { - "name": "pageNumber", - "in": "path", - "required": true, - "type": "integer", - "default": 1, - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SaveCategoryBasicData" + } + } + } + ] + } + }, + "/api/v1/tasks": { + "post": { + "tags": [ + "Tasks" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/TaskData" + } + } + }, + "summary": "Add a New Task", + "description": "Add a New Task", + "operationId": "Add-a-New-Task", + "parameters": [ { "name": "Content-Type", "in": "header", @@ -480,239 +573,4118 @@ "type": "string", "default": "application/json", "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/TaskSaveData" + } } + ] + } + }, + "/api/v1/Individuals/Members/All/{Page Number}": { + "get": { + "tags": [ + "Individuals" ], "responses": { "200": { - "description": "Success", + "description": "default", "schema": { "type": "object", "properties": { "pageNumber": { "type": "integer", "format": "int32", - "title": "Page Number", - "description": "Page Number." + "description": "Page Number.", + "title": "Page Number" }, "dataList": { "type": "array", "items": { - "$ref": "#/definitions/IndividualLookupBasicData" + "$ref": "#/definitions/IndividualData" }, - "description": "Data List." + "description": "dataList" } } } } - } - } - }, - "/api/v1/Committees/{code}/Members": { - "post": { - "tags": ["Committee"], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Member Id.", - "title": "Member Id" - }, - "firstName": { - "type": "string", - "description": "First Name.", - "title": "First Name" - }, - "lastName": { - "type": "string", - "description": "Last Name.", - "title": "Last Name" - }, - "code": { - "type": "string", - "description": "Code.", - "title": "Code" - }, - "recordNumber": { - "type": "string", - "description": "Record Number.", - "title": "Record Number" - }, - "position": { - "type": "string", - "description": "Position.", - "title": "Position" - }, - "positionCode": { - "type": "string", - "description": "Position Code.", - "title": "Position Code" - }, - "startDate": { - "type": "string", - "description": "Start Date.", - "title": "Start Date" + }, + "summary": "List of All Individual Members", + "description": "List of All Individual Members", + "operationId": "List-of-All-Individual-Members", + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Zip Code", + "in": "query", + "required": false, + "type": "string", + "description": "Zip Code", + "x-ms-summary": "Zip Code" + }, + { + "name": "Radius", + "in": "query", + "required": false, + "type": "number", + "default": 5, + "description": "Radius in Miles", + "x-ms-summary": "Radius", + "format": "float" + }, + { + "name": "Membership Type Code", + "in": "query", + "required": false, + "type": "string", + "description": "A valid code for a Membership Type", + "x-ms-summary": "Membership Type Code" + }, + { + "name": "Membership Type Category", + "in": "query", + "required": false, + "type": "string", + "description": "A valid Membership Type Category name", + "x-ms-summary": "Membership Type Category" + }, + { + "name": "Tag", + "in": "query", + "required": false, + "type": "string", + "description": "Tag", + "x-ms-summary": "Tag" + }, + { + "name": "Include Membership", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Membership Data", + "x-ms-summary": "Include Membership", + "enum": [ + false, + true + ] + }, + { + "name": "Include Address", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Address Data", + "x-ms-summary": "Include Address", + "enum": [ + false, + true + ] + }, + { + "name": "Include Phone", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Phone Data", + "x-ms-summary": "Include Phone", + "enum": [ + false, + true + ] + }, + { + "name": "Include Email", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Email Data", + "x-ms-summary": "Include Email", + "enum": [ + false, + true + ] + }, + { + "name": "Include Custom Fields", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Custom Field Data", + "x-ms-summary": "Include Custom Fields", + "enum": [ + false, + true + ] + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID or Record Number}/Certifications/{Page Number}": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" }, - "endDate": { - "type": "string", - "description": "End Date.", - "title": "End Date" + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CertificationData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get List of Active Certifications for an Organization", + "description": "Get List of Active Certifications for an Organization", + "operationId": "Get-List-of-Active-Certifications-for-an-Organization", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID or Record Number." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Certifications/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" }, - "primaryOrganization": { - "type": "object", - "properties": { - "contactIds": { - "type": "array", - "x-ms-summary": "Contact Ids", - "description": "Primary Organization - Contact Ids.", - "items": { - "type": "string", - "format": "uuid", - "title": "Contact Id", - "description": "Primary Organization - Contact Ids - Contact Id." - } - }, - "parentCompanyId": { - "type": "string", - "description": "Primary Organization - Parent Company Id.", - "title": "Parent Company Id" - }, - "description": { - "type": "string", - "description": "Primary Organization - Description.", - "title": "Description" - }, - "branchName": { - "type": "string", - "description": "Primary Organization - Branch Name.", - "title": "Branch Name" - }, - "tags": { - "type": "array", - "x-ms-summary": "Tags", - "description": "Primary Organization - Tags.", - "items": { - "type": "string", - "title": "Tag", - "description": "Primary Organization - Tags - Tag." - } - }, - "id": { - "type": "string", - "description": "Primary Organization - Id.", - "title": "Primary Organization Id" - }, - "customerType": { - "type": "string", - "description": "Primary Organization - Customer Type.", - "title": "Customer Type" - }, - "recordNumber": { - "type": "string", - "description": "Primary Organization - Record Number.", - "title": "Record Number" - }, - "title": { - "type": "string", - "description": "Primary Organization - Title.", - "title": "Title" - }, - "name": { - "type": "string", - "description": "Primary Organization - Name.", - "title": "Name" - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Primary Organization - Addresses - Address Id.", - "title": "Address Id" - }, - "primary": { - "type": "boolean", - "description": "Primary Organization - Addresses - Is Primary.", - "title": "Is Primary Address" - }, - "line1": { - "type": "string", - "description": "Primary Organization - Addresses - Line 1.", - "title": "Address Line 1" - }, - "line2": { - "type": "string", - "description": "Primary Organization - Addresses - Line 2.", - "title": "Address Line 2" - }, - "line3": { - "type": "string", - "description": "Primary Organization - Addresses - Line 3.", - "title": "Address Line 3" - }, - "city": { - "type": "string", - "description": "Primary Organization - Addresses - City.", - "title": "City" - }, - "state": { - "type": "string", - "description": "Primary Organization - Addresses - State.", - "title": "State" - }, - "zipcode": { - "type": "string", - "description": "Primary Organization - Addresses - Zip Code.", - "title": "Zip Code" - }, - "country": { - "type": "string", - "description": "Primary Organization - Addresses - Country.", - "title": "Country" - }, - "stateAbbreviation": { - "type": "string", - "description": "Primary Organization - Addresses - State Abbreviation.", - "title": "State Abbreviation" - }, - "stateISOCode": { - "type": "string", + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CertificationData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get List of Active Certifications for an Individual", + "description": "Get List of Active Certifications for an Individual", + "operationId": "Get-List-of-Active-Certifications-for-an-Individual", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID}/Memberships/Inactive": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/MembershipData" + } + } + }, + "summary": "Get Individual Inactive Memberships", + "description": "Get Individual Inactive Memberships", + "operationId": "Get-Individual-Inactive-Memberships", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID}/Activities": { + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Add Activity to Organization", + "description": "Add Activity to Organization", + "operationId": "Add-Activity-to-Organization", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ActivityData" + } + } + ] + } + }, + "/api/v1/Events/{Event Code}/Sessions/Register/{Customer ID or Record Number}": { + "post": { + "tags": [ + "Events" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Register an Individual for a Free Session", + "description": "Register an Individual for a Free Session", + "operationId": "Register-an-Individual-for-a-Free-Session", + "parameters": [ + { + "name": "Event Code", + "in": "path", + "required": true, + "type": "string", + "description": "A Valid Event Code.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Event Code" + }, + { + "name": "Customer ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "A Valid Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Customer ID or Record Number" + }, + { + "name": "Registration Number", + "in": "query", + "required": false, + "type": "string", + "description": "A Valid Registration Number.", + "x-ms-summary": "Registration Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/SessionRegistrationData" + } + } + } + ] + } + }, + "/api/v1/Individuals/{ID}/Licenses/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/LicenseData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get a List of Licenses", + "description": "Get a List of Licenses", + "operationId": "Get-a-List-of-Licenses", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Awards/{Page Number}": { + "get": { + "tags": [ + "Awards" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/AwardData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "List All Awards", + "description": "List All Awards", + "operationId": "List-All-Awards", + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" + }, + { + "name": "Year", + "in": "query", + "required": false, + "type": "integer", + "description": "Year.", + "x-ms-summary": "Year." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/Members/FindByName/{Name}/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/IndividualData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Find Members (Individuals) by Name", + "description": "Find Members (Individuals) by Name", + "operationId": "Find-Members-or-Individuals-by-Name", + "parameters": [ + { + "name": "Name", + "in": "path", + "required": true, + "type": "string", + "description": "Individual Name.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual Name" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number.", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Include Email", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Email Data.", + "enum": [ + false, + true + ], + "x-ms-summary": "Include Email Data." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID}/Services": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/ServiceData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get a List of All Services of an Organization", + "description": "Get a List of All Services of an Organization", + "operationId": "Get-a-List-of-All-Services-of-an-Organization", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + }, + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/ServiceData" + } + } + }, + "summary": "Add a Service to an Organization", + "description": "Add a Service to an Organization", + "operationId": "Add-a-Service-to-an-Organization", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/ServiceData" + } + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Phones/{ID}": { + "put": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/PhoneDataSet" + } + } + }, + "summary": "Update Phone for an Individual", + "description": "Update Phone for an Individual", + "operationId": "Update-Phone-for-an-Individual", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number." + }, + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Phone ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Phone ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PhoneSaveData" + } + } + ] + } + }, + "/api/v1/Organizations/{ID or Record Number}/Phones/{ID}": { + "put": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/PhoneDataSet" + } + } + }, + "summary": "Update Phone for an Organization", + "description": "Update Phone for an Organization", + "operationId": "Update-Phone-for-an-Organization", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID or Record Number." + }, + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Phone ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Phone ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PhoneSaveData" + } + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Links": { + "delete": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Delete an Individual Web Link", + "description": "Delete an Individual Web Link", + "operationId": "Delete-an-Individual-Web-Link", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "A valid Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type.", + "title": "Type", + "enum": [ + "Blog", + "LinkedIn", + "Facebook", + "Twitter", + "Website", + "Domain", + "Other", + "Instagram", + "YouTube" + ] + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + } + } + } + } + ] + }, + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default" + } + }, + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "A valid Individual Id or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "ID or Record Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type.", + "title": "Type", + "enum": [ + "Blog", + "LinkedIn", + "Facebook", + "Twitter", + "Website", + "Domain", + "Other", + "Instagram", + "YouTube" + ] + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + } + } + } + } + ], + "summary": "Add Web Link for Individual", + "description": "Add Web Link for Individual", + "operationId": "Add-Web-Link-for-Individual" + } + }, + "/api/v1/Organizations/{ID or Record Number}/Phones": { + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/PhoneDataSet" + } + } + }, + "summary": "Add Phone to Organization", + "description": "Add Phone to Organization", + "operationId": "Add-Phone-to-Organization", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID or Record Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PhoneSaveData" + } + } + ] + } + }, + "/api/v1/Committees/{Code}/Nominations/{Page Number}": { + "get": { + "tags": [ + "Committees" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommitteeNomineeData" + }, + "description": "Data List" + } + } + } + } + }, + "summary": "Get Nominees by Committee", + "description": "Get Nominees by Committee", + "operationId": "Get-Nominees-by-Committee", + "parameters": [ + { + "name": "Code", + "in": "path", + "required": true, + "type": "string", + "description": "Committee Code.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Committee Code." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Term", + "in": "query", + "required": false, + "type": "string", + "description": "Term", + "x-ms-summary": "Term" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID}/Subscriptions/{Page Number}": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscriptionData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get Organization's Active Subscriptions", + "description": "Get Organization's Active Subscriptions", + "operationId": "Get-Organizations-Active-Subscriptions", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number.", + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID or Record Number}/Links": { + "delete": { + "tags": [ + "Organizations" + ], + "responses": { + "default": { + "description": "default" + } + }, + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "ID or Record Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type.", + "title": "Type", + "enum": [ + "Blog", + "LinkedIn", + "Facebook", + "Twitter", + "Website", + "Domain", + "Other", + "Instagram", + "YouTube" + ] + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + } + }, + "required": [ + "type", + "url" + ] + } + } + ], + "summary": "Delete an Organization Web Link", + "description": "Delete an Organization Web Link", + "operationId": "Delete-an-Organization-Web-Link" + }, + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Add Web Link for Organization", + "description": "Add Web Link for Organization", + "operationId": "Add-Web-Link-for-Organization", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "ID or Record Number" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type.", + "title": "Type", + "enum": [ + "Blog", + "LinkedIn", + "Facebook", + "Twitter", + "Website", + "Domain", + "Other", + "Instagram", + "YouTube" + ] + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + } + }, + "required": [ + "type", + "url" + ] + } + } + ] + } + }, + "/api/v1/Organizations/{ID}/Emails": { + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Add Email to Organization", + "description": "Add Email to Organization", + "operationId": "Add-Email-to-Organization", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/EmailData" + } + } + ] + } + }, + "/api/v1/Organizations/{ID}/Relationships/{Page Number}": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationshipData" + }, + "description": "DataList" + } + } + } + } + }, + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number.", + "x-ms-visibility": "advanced" + }, + { + "name": "Relationship Name.", + "in": "query", + "required": false, + "type": "string", + "description": "Name of the Relationship.", + "x-ms-summary": "Relationship Name." + }, + { + "name": "Includes Details", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "enum": [ + false, + true + ], + "description": "Includes Details.", + "x-ms-summary": "Includes Details." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "summary": "Get Organization's Relationships", + "description": "Get Organization's Relationships", + "operationId": "Get-Organizations-Relationships" + } + }, + "/api/v1/Organizations/{ID or Record Number}/Addresses": { + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/AddressSaveData" + } + } + }, + "summary": "Add or Update Address to Organization", + "description": "Add or Update Address to Organization", + "operationId": "Add-or-Update-Address-to-Organization", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID or Record Number." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/AddressSaveData" + } + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/CustomFieldsList": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/CustomFieldResultData" + } + } + } + }, + "summary": "Add or Update a List of Custom Fields Per Individual", + "description": "Add or Update a List of Custom Fields Per Individual", + "operationId": "Add-or-Update-a-List-of-Custom-Fields-Per-Individual", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "value": { + "type": "string", + "description": "Value.", + "title": "Value" + } + } + } + } + } + ] + } + }, + "/api/v1/Events/Upcoming/{Page Number}": { + "get": { + "tags": [ + "Events" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/EventData" + }, + "description": "DataList" + } + } + } + } + }, + "summary": "Get Upcoming Events", + "description": "Get Upcoming Events", + "operationId": "Get-Upcoming-Events", + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID}/CustomFields": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "Update Individual's Custom Field Value", + "description": "Update Individual's Custom Field Value.", + "operationId": "Update-Individuals-Custom-Field-Value", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Customer ID.", + "x-ms-summary": "Customer ID", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Custom Field Name.", + "title": "Custom Field Name" + }, + "value": { + "type": "string", + "description": "Custom Field Value. For multi-selects, use \"|\" as delimiter.", + "title": "Custom Field Value" + } + }, + "required": [ + "name", + "value" + ] + } + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Phones": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/PhoneDataSet" + } + } + }, + "summary": "Add Phone to Individual", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number", + "x-ms-summary": "Individual ID or Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "$ref": "#/definitions/PhoneSaveData" + } + } + ], + "description": "Add Phone to Individual", + "operationId": "Add-Phone-to-Individual" + } + }, + "/api/v1/Individuals/{ID}/Committees/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommitteeMemberData" + }, + "description": "Data List." + } + } + } + } + }, + "summary": "Get Committee Information for an Individual", + "description": "Get Committee Information for an Individual", + "operationId": "Get-Committee-Information-for-an-Individual", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID.", + "x-ms-summary": "Individual ID.", + "x-ms-url-encoding": "single" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-summary": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-visibility": "advanced" + }, + { + "name": "Include Inactive", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "description": "Include Inactive", + "x-ms-summary": "Include Inactive", + "enum": [ + false, + true + ] + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID}/CustomFields": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/CustomFieldData" + } + } + } + }, + "summary": "Get Organization Custom Field Values", + "description": "Get Organization Custom Field Values", + "operationId": "Get-Organization-Custom-Field-Values", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID", + "x-ms-summary": "Organization ID", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Organizations/{ID}/Memberships/Active": { + "get": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/MembershipData" + } + } + } + }, + "summary": "Get Organization Active Memberships", + "description": "Get Organization Active Memberships", + "operationId": "Get-Organization-Active-Memberships", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-summary": "Organization ID.", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Events/All/{Page Number}": { + "get": { + "tags": [ + "Events" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/EventData" + }, + "description": "DataList" + } + } + } + } + }, + "summary": "Get All Events", + "description": "Get All Events", + "operationId": "Get-All-Events", + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" + }, + { + "name": "Code", + "in": "query", + "required": false, + "type": "string", + "description": "Code.", + "x-ms-summary": "Code." + }, + { + "name": "Name", + "in": "query", + "required": false, + "type": "string", + "description": "Name.", + "x-ms-summary": "Name." + }, + { + "name": "Tag", + "in": "query", + "required": false, + "type": "string", + "description": "Tag.", + "x-ms-summary": "Tag." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID}/Memberships/Active": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "$ref": "#/definitions/MembershipData" + } + } + } + }, + "summary": "Get Individual Active Memberships", + "description": "Get Individual Active Memberships", + "operationId": "Get-Individual-Active-Memberships", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Registrations/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/RegistrationData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get All Event Registrations Information for an Individual", + "description": "Get All Event Registrations Information for an Individual", + "operationId": "Get-All-Event-Registrations-Information-for-an-Individual", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Event Code", + "in": "query", + "required": false, + "type": "string", + "description": "Event Code.", + "x-ms-summary": "Event Code." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID}/Relationships/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/RelationshipData" + }, + "description": "Data List." + } + } + } + } + }, + "summary": "Get Individual's Relationships", + "description": "Get Individual's Relationships", + "operationId": "Get-Individuals-Relationships", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced" + }, + { + "name": "Relationship Name", + "in": "query", + "required": false, + "type": "string", + "description": "Name of the Relationship.", + "x-ms-summary": "Relationship Name" + }, + { + "name": "Include Details", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "enum": [ + true, + false + ], + "description": "Include Details.", + "x-ms-summary": "Include Details." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{ID or Record Number}/Emails/{Current Email Address}": { + "put": { + "tags": [ + "Individuals" + ], + "responses": { + "default": { + "description": "default" + } + }, + "summary": "Update an Individual Email", + "description": "Update an Individual Email", + "operationId": "Update-an-Individual-Email", + "parameters": [ + { + "name": "ID or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Individual ID or Record Number" + }, + { + "name": "Current Email Address", + "in": "path", + "required": true, + "type": "string", + "description": "Email Address to Update", + "x-ms-url-encoding": "single", + "x-ms-summary": "Current Email Address" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Primary.", + "title": "Primary", + "enum": [ + true, + false + ] + }, + "address": { + "type": "string", + "description": "Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory", + "title": "Show In Directory", + "enum": [ + true, + false + ] + } + } + } + } + ] + } + }, + "/api/v1/Organizations/{ID}/Relationships": { + "post": { + "tags": [ + "Organizations" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Save Relationship for Organization", + "description": "Save Relationship for Organization", + "operationId": "Save-Relationship-for-Organization", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Organization ID.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Organization ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "relationshipName": { + "type": "string", + "description": "Relationship Name.", + "title": "Relationship Name" + }, + "relatedToCustomerRecordNumber": { + "type": "string", + "description": "Related To Customer Record Number.", + "title": "Related To Customer Record Number" + }, + "reciprocalRelationshipName": { + "type": "string", + "description": "Reciprocal Relationship Name.", + "title": "Reciprocal Relationship Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary", + "enum": [ + true, + false + ] + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + }, + "isReciprocalPrimary": { + "type": "boolean", + "description": "Is Reciprocal Primary.", + "title": "Is Reciprocal Primary", + "enum": [ + true, + false + ] + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + } + } + } + } + ] + } + }, + "/api/v1/Individuals": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/IndividualData" + } + } + }, + "summary": "Add Individual", + "description": "Adds an Individual.", + "operationId": "Add-Individual", + "parameters": [ + { + "name": "createUser", + "in": "query", + "required": false, + "type": "string", + "default": "False", + "description": "Choose True if a user account should be created when the individual is created.", + "enum": [ + "True", + "False" + ], + "x-ms-visibility": "advanced", + "x-ms-summary": "Create User." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "description": "First Name.", + "title": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name.", + "title": "Last Name" + }, + "email": { + "type": "string", + "description": "Email Address.", + "title": "Email Address", + "x-ms-visibility": "advanced" + } + }, + "required": [ + "firstName", + "lastName" + ] + } + } + ] + } + }, + "/api/v1/Individuals/{ID Or Record Number}/Emails": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/EmailData" + } + } + }, + "summary": "Add Email to Individual", + "description": "Add Email to Individual", + "operationId": "Add-Email-to-Individual", + "parameters": [ + { + "name": "ID Or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID Or Record Number.", + "x-ms-summary": "Individual ID Or Record Number.", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Primary", + "title": "Primary", + "enum": [ + true, + false + ] + }, + "address": { + "type": "string", + "description": "Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory", + "title": "Show In Directory", + "enum": [ + true, + false + ] + } + } + } + } + ] + } + }, + "/api/v1/Individuals/{ID Or Record Number}/Addresses": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "$ref": "#/definitions/AddressSaveData" + } + } + }, + "summary": "Add or Update Address to Individual", + "description": "Add or Update Address to Individual", + "operationId": "Add-or-Update-Address-to-Individual", + "parameters": [ + { + "name": "ID Or Record Number", + "in": "path", + "required": true, + "type": "string", + "description": "Individual ID or Record Number.", + "x-ms-summary": "Individual ID or Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/AddressSaveData" + } + } + ] + } + }, + "/api/v1/Individuals/Members/FindByName/{First Name}/{Last Name}/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/IndividualData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Find Members (Individuals) by First Name and Last Name", + "description": "Find Members (Individuals) by First Name and Last Name", + "operationId": "Find-members-or-individuals-by-first-and-last-name", + "parameters": [ + { + "name": "First Name", + "in": "path", + "required": true, + "type": "string", + "description": "First Name", + "x-ms-summary": "First Name", + "x-ms-url-encoding": "single" + }, + { + "name": "Last Name", + "in": "path", + "required": true, + "type": "string", + "description": "Last Name", + "x-ms-summary": "Last Name", + "x-ms-url-encoding": "single" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number.", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced", + "x-ms-url-encoding": "single" + }, + { + "name": "Include Email", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "enum": [ + false, + true + ], + "description": "Include Email Data.", + "x-ms-summary": "Include Email Data." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Committees/{ID Or Code}/Members/{Page Number}": { + "get": { + "tags": [ + "Committees" + ], + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Get Committee Members by committee ID or code", + "description": "Get Committee Members by Committee ID or Code", + "operationId": "Get-Committee-Members-by-committee-ID-or-code", + "parameters": [ + { + "name": "ID Or Code", + "in": "path", + "required": true, + "type": "string", + "description": "Committee ID or Code", + "x-ms-summary": "Committee ID or Code", + "x-ms-url-encoding": "single" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-summary": "Page Number", + "x-ms-visibility": "advanced", + "x-ms-url-encoding": "single" + }, + { + "name": "Term", + "in": "query", + "required": false, + "type": "integer", + "description": "Term", + "x-ms-summary": "Term" + }, + { + "name": "Position Codes", + "in": "query", + "required": false, + "type": "string", + "description": "Position Codes", + "x-ms-summary": "Position Codes" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{id}/Activities": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "Add Activity", + "description": "Add Activity.", + "operationId": "Add-Activity", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "format": "uuid", + "description": "Individual Id.", + "x-ms-summary": "Individual Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "Category.", + "title": "Category", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "text": { + "type": "string", + "description": "Text.", + "title": "Text" + }, + "url": { + "type": "string", + "description": "URL.", + "title": "URL" + }, + "activityDate": { + "type": "string", + "format": "date", + "description": "Activity Date.", + "title": "Activity Date" + } + }, + "required": [ + "text", + "category" + ] + } + } + ] + } + }, + "/api/v1/Individuals/Profile/{idOrRecordNumberOrEmail}/{pageNumber}/": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "title": "Page Number", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/IndividualData" + }, + "description": "Data List." + } + } + } + } + }, + "summary": "Find Individual by Id or Email or Record Number", + "description": "Find Individual by Id or Email.", + "operationId": "Find-Individual-IDOrEmail", + "parameters": [ + { + "name": "idOrRecordNumberOrEmail", + "in": "path", + "required": true, + "type": "string", + "description": "Id or Record Number or Email.", + "x-ms-summary": "Id or Record Number or Email", + "x-ms-url-encoding": "single" + }, + { + "name": "pageNumber", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "IncludeDetails", + "in": "query", + "required": true, + "type": "string", + "default": "True", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{id}/Relationships": { + "post": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "200" + } + }, + "summary": "Add Relationship to Individual", + "description": "Add Relationship to Individual.", + "operationId": "Add-relationship-to-individual", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Individual Id.", + "x-ms-summary": "Individual Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "Application/Json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "relationshipName": { + "type": "string", + "description": "Relationship Name.", + "title": "Relationship Name", + "default": "Employee" + }, + "relatedToCustomerRecordNumber": { + "type": "string", + "description": "Related To Customer Record Number.", + "title": "Related To Customer Record Number" + }, + "reciprocalRelationshipName": { + "type": "string", + "description": "Reciprocal Relationship Name.", + "title": "Reciprocal Relationship Name", + "default": "Employer" + }, + "isPrimary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary", + "x-ms-visibility": "advanced", + "enum": [ + true, + false + ], + "default": false + }, + "startDate": { + "type": "string", + "format": "date", + "description": "Start Date.", + "title": "Start Date", + "x-ms-visibility": "advanced" + }, + "endDate": { + "type": "string", + "format": "date", + "description": "End Date.", + "title": "End Date", + "x-ms-visibility": "advanced" + } + }, + "required": [ + "reciprocalRelationshipName", + "relatedToCustomerRecordNumber", + "relationshipName" + ] + } + } + ] + } + }, + "/api/v1/Individuals/{idOrRecordNumber}/EducationCredits": { + "post": { + "tags": [ + "Individuals" + ], + "summary": "Add Education Credits to Individual", + "description": "Add a new Education Credit to an Individual.", + "operationId": "Individual-Add-Education-Credit", + "parameters": [ + { + "name": "idOrRecordNumber", + "in": "path", + "required": true, + "type": "string", + "description": "Individual Id or Record Number.", + "x-ms-summary": "Id or Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "description": "Education Credit Data.", + "required": true, + "schema": { + "$ref": "#/definitions/EducationCreditData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Individuals/{id}/Notes": { + "post": { + "tags": [ + "Individuals" + ], + "summary": "Add Note to Individual", + "description": "Add a Note to an Individual.", + "operationId": "Individual-AddNote", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Individual Id.", + "x-ms-summary": "Individual Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "note", + "in": "body", + "x-ms-summary": "Note Data", + "description": "Note Data.", + "required": true, + "schema": { + "$ref": "#/definitions/NoteData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Individuals/Lookup/{pageNumber}": { + "get": { + "tags": [ + "Individuals" + ], + "summary": "Lookup Individuals", + "description": "Lookup Individuals by Name", + "operationId": "Individuals-LookupByName", + "parameters": [ + { + "name": "name", + "in": "query", + "required": true, + "type": "string", + "description": "Individual Name.", + "x-ms-summary": "Lookup value" + }, + { + "name": "includeOrgAddresses", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "pageNumber", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "title": "Page Number", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/IndividualLookupBasicData" + }, + "description": "Data List." + } + } + } + } + } + } + }, + "/api/v1/Committees/{code}/Members": { + "post": { + "tags": [ + "Committee" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Member Id.", + "title": "Member Id" + }, + "firstName": { + "type": "string", + "description": "First Name.", + "title": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name.", + "title": "Last Name" + }, + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "recordNumber": { + "type": "string", + "description": "Record Number.", + "title": "Record Number" + }, + "position": { + "type": "string", + "description": "Position.", + "title": "Position" + }, + "positionCode": { + "type": "string", + "description": "Position Code.", + "title": "Position Code" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + }, + "primaryOrganization": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "Contact Ids", + "description": "Primary Organization - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Primary Organization - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Primary Organization - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Primary Organization - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Primary Organization - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Primary Organization - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Primary Organization - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Primary Organization - Id.", + "title": "Primary Organization Id" + }, + "customerType": { + "type": "string", + "description": "Primary Organization - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Primary Organization - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Primary Organization - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Primary Organization - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Primary Organization - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Primary Organization - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Primary Organization - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Primary Organization - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Primary Organization - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Primary Organization - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Primary Organization - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Primary Organization - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", "description": "Primary Organization - Addresses - State ISO Code.", "title": "State ISO Code" }, "type": { "type": "string", - "description": "Primary Organization - Addresses - Type.", + "description": "Primary Organization - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Primary Organization - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Primary Organization - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Primary Organization - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Primary Organization - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Primary Organization - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Primary Organization - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Primary Organization - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Primary Organization - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Primary Organization - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Primary Organization - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Primary Organization - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Primary Organization - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Primary Organization - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Primary Organization - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Primary Organization - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Primary Organization - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Primary Organization - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Primary Organization - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Primary Organization - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Primary Organization - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Primary Organization - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Primary Organization - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Primary Organization - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Primary Organization - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Primary Organization - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "array", + "description": "Primary Organization - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Primary Organization - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Name.", + "title": "Name" + } + } + } + }, + "code": { + "type": "string", + "description": "Primary Organization - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Primary Organization - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Primary Organization - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Primary Organization - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Primary Organization - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Primary Organization - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Primary Organization - Old Id.", + "title": "Old Id" + } + } + }, + "organizationRepresenting": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "ContactIds", + "description": "Organization Representing - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Organization Representing - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Organization Representing - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Organization Representing - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Organization Representing - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Organization Representing - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Organization Representing - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Organization Representing - Organization Representing Id.", + "title": "Representing Organization Id" + }, + "customerType": { + "type": "string", + "description": "Organization Representing - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Organization Representing - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Organization Representing - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Organization Representing - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Organization Representing - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Organization Representing - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Organization Representing - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Organization Representing - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Organization Representing - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Organization Representing - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Organization Representing - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Organization Representing - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Organization Representing - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Organization Representing - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Organization Representing - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Organization Representing - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Organization Representing - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Organization Representing - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Organization Representing - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Organization Representing - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Organization Representing - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Organization Representing - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Organization Representing - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Organization Representing - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Organization Representing - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Organization Representing - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Organization Representing - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Organization Representing - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Organization Representing - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Organization Representing - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Organization Representing - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Organization Representing - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Organization Representing - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Organization Representing - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Organization Representing - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Organization Representing - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Organization Representing - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Organization Representing - Categories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Organization Representing - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Name.", + "title": "Name" + } + } + } + }, + "code": { + "type": "string", + "description": "Organization Representing - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Organization Representing - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Organization Representing - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Organization Representing - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Organization Representing - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Organization Representing - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Organization Representing - Old Id.", + "title": "Old Id" + } + } + }, + "nominatedByCustomer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Nominated By Customer Id.", + "title": "Nominated By Customer Id" + }, + "customerType": { + "type": "string", + "description": "Nominated By Customer - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Nominated By Customer - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Nominated By Customer - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Nominated By Customer - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Nominated By Customer - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Nominated By Customer - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Nominated By Customer - Addresses - Type.", "title": "Type" }, "region": { "type": "string", - "description": "Primary Organization - Addresses - Region.", + "description": "Nominated By Customer - Addresses - Region.", "title": "Region" }, "latitude": { "type": "number", - "description": "Primary Organization - Addresses - Latitude.", + "description": "Nominated By Customer - Addresses - Latitude.", "title": "Latitude" }, "longitude": { "type": "number", - "description": "Primary Organization - Addresses - Longitude.", + "description": "Nominated By Customer - Addresses - Longitude.", "title": "Longitude" }, "showInDirectory": { "type": "boolean", - "description": "Primary Organization - Addresses - Show In Directory.", + "description": "Nominated By Customer - Addresses - Show In Directory.", "title": "Show In Directory" }, "congressionalDistrict": { "type": "string", - "description": "Primary Organization - Addresses - Congressional District.", + "description": "Nominated By Customer - Addresses - Congressional District.", "title": "Congressional District" }, "countryData": { @@ -720,27 +4692,27 @@ "properties": { "id": { "type": "string", - "description": "Primary Organization - Addresses - Country - Country Id.", + "description": "Nominated By Customer - Addresses - Country - Country Id.", "title": "Country Id" }, "name": { "type": "string", - "description": "Primary Organization - Addresses - Country - Country Name.", + "description": "Nominated By Customer - Addresses - Country - Country Name.", "title": "Country Name" }, "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Addresses - Country - Two Letter ISO Code.", + "description": "Nominated By Customer - Addresses - Country - Two Letter ISO Code.", "title": "Two Letter ISO Code" }, "threeLetterIsoCode": { "type": "string", - "description": "Primary Organization - Addresses - Country - Three Letter ISO Code.", + "description": "Nominated By Customer - Addresses - Country - Three Letter ISO Code.", "title": "Three Letter ISO Code" }, "code": { "type": "integer", - "description": "Primary Organization - Addresses - Country - Country Code.", + "description": "Nominated By Customer - Addresses - Country - Country Code.", "title": "Country Code" } } @@ -750,22 +4722,22 @@ }, "email": { "type": "string", - "description": "Primary Organization - Email.", + "description": "Nominated By Customer - Email.", "title": "Email" }, "imageUri": { "type": "string", - "description": "Primary Organization - Image URI.", + "description": "Nominated By Customer - Image URI.", "title": "Image URI" }, "twitter": { "type": "string", - "description": "Primary Organization - Twitter.", + "description": "Nominated By Customer - Twitter.", "title": "Twitter" }, "linkedIn": { "type": "string", - "description": "Primary Organization - LinkedIn.", + "description": "Nominated By Customer - LinkedIn.", "title": "LinkedIn" }, "emails": { @@ -775,22 +4747,22 @@ "properties": { "primary": { "type": "boolean", - "description": "Primary Organization - Emails - Is Primary.", + "description": "Nominated By Customer - Emails - Is Primary.", "title": "Is Primary Email" }, "address": { "type": "string", - "description": "Primary Organization - Emails - Address.", + "description": "Nominated By Customer - Emails - Address.", "title": "Address" }, "type": { "type": "string", - "description": "Primary Organization - Emails - Type.", + "description": "Nominated By Customer - Emails - Type.", "title": "Type" }, "showInDirectory": { "type": "boolean", - "description": "Primary Organization - Emails - Show In Directory.", + "description": "Nominated By Customer - Emails - Show In Directory.", "title": "Show In Directory" } } @@ -803,17 +4775,17 @@ "properties": { "id": { "type": "string", - "description": "Primary Organization - Phones - Id.", + "description": "Nominated By Customer - Phones - Id.", "title": "Phone Id" }, "primary": { "type": "boolean", - "description": "Primary Organization - Phones - Is Primary.", + "description": "Nominated By Customer - Phones - Is Primary.", "title": "Is Primary Phone" }, "type": { "type": "integer", - "description": "Primary Organization - Phones - Type.", + "description": "Nominated By Customer - Phones - Type.", "title": "Type" }, "country": { @@ -821,49 +4793,49 @@ "properties": { "id": { "type": "string", - "description": "Primary Organization - Phones - Country - Country Id.", + "description": "Nominated By Customer - Phones - Country - Country Id.", "title": "Country Id" }, "name": { "type": "string", - "description": "Primary Organization - Phones - Country - Country Name.", + "description": "Nominated By Customer - Phones - Country - Country Name.", "title": "Country Name" }, "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Phones - Country - Two Letter ISO Code.", + "description": "Nominated By Customer - Phones - Country - Two Letter ISO Code.", "title": "Two Letter ISO Code" }, "threeLetterIsoCode": { "type": "string", - "description": "Primary Organization - Phones - Country - Three Letter ISO Code.", + "description": "Nominated By Customer - Phones - Country - Three Letter ISO Code.", "title": "Three Letter ISO Code" }, "code": { "type": "integer", - "description": "Primary Organization - Phones - Country - Country Code.", + "description": "Nominated By Customer - Phones - Country - Country Code.", "title": "Country Code" } } }, "showInDirectory": { "type": "boolean", - "description": "Primary Organization - Phones - Show In Directory.", + "description": "Nominated By Customer - Phones - Show In Directory.", "title": "Show In Directory" }, "number": { "type": "string", - "description": "Primary Organization - Phones - Number.", + "description": "Nominated By Customer - Phones - Number.", "title": "Number" }, "extension": { "type": "string", - "description": "Primary Organization - Phones - Extension.", + "description": "Nominated By Customer - Phones - Extension.", "title": "Extension" }, "typeName": { "type": "string", - "description": "Primary Organization - Phones - Type Name.", + "description": "Nominated By Customer - Phones - Type Name.", "title": "Type Name" } } @@ -871,7 +4843,7 @@ }, "webSite": { "type": "string", - "description": "Primary Organization - Website.", + "description": "Nominated By Customer - Website.", "title": "Website" }, "memberships": { @@ -879,2908 +4851,8794 @@ "items": { "type": "object", "properties": { - "membershipType": { + "membershipType": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Nominated By Customer - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Nominated By Customer - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Nominated By Customer - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Nominated By Customer - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Nominated By Customer - Categories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Nominated By Customer - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Name.", + "title": "Name" + } + } + } + }, + "code": { + "type": "string", + "description": "Nominated By Customer - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Nominated By Customer - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Nominated By Customer - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Nominated By Customer - Old Id.", + "title": "Old Id" + } + } + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { "type": "string", - "description": "Primary Organization - Memberships - Membership Type.", - "title": "Membership Type" + "description": "Addresses - Country - Country Id.", + "title": "Country Id" }, - "membershipTypeId": { + "name": { "type": "string", - "description": "Primary Organization - Memberships - Membership Type Id.", - "title": "Membership Type Id" + "description": "Addresses - Country - Country Name.", + "title": "Country Name" }, - "code": { + "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Memberships - Code.", - "title": "Code" + "description": "Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" }, - "expireDate": { + "threeLetterIsoCode": { "type": "string", - "description": "Primary Organization - Memberships - Expire Date.", - "title": "Expire Date" + "description": "Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" }, - "graceExpireDate": { + "code": { + "type": "integer", + "description": "Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { "type": "string", - "description": "Primary Organization - Memberships - Grace Expire Date.", - "title": "Grace Expire Date" - }, - "inheritedMembershipBenefits": { - "type": "boolean", - "description": "Primary Organization - Memberships - Inherited Membership Benefits.", - "title": "Inherited Membership Benefits" + "description": "Phones - Country - Country Id.", + "title": "Country Id" }, - "renewalUrl": { + "name": { "type": "string", - "description": "Primary Organization - Memberships - Renewal URL.", - "title": "Renewal URL" + "description": "Phones - Country - Country Name.", + "title": "Country Name" }, - "joinDate": { + "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Memberships - Join Date.", - "title": "Join Date" + "description": "Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" }, - "terminateDate": { + "threeLetterIsoCode": { "type": "string", - "description": "Primary Organization - Memberships - Terminate Date.", - "title": "Terminate Date" + "description": "Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" }, - "effectiveDate": { - "type": "string", - "description": "Primary Organization - Memberships - Effective Date.", - "title": "Effective Date" + "code": { + "type": "integer", + "description": "Phones - Country - Country Code.", + "title": "Country Code" } } + }, + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "rank": { + "type": "integer", + "description": "Rank.", + "title": "Rank" + } + } + } + } + }, + "summary": "Add Individual to Committee", + "description": "Add Individual to Committee.", + "operationId": "Add-To-Committee", + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "type": "string", + "description": "Committee Code.", + "x-ms-summary": "Committee Code", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "description": "Committee Member Data.", + "required": true, + "schema": { + "$ref": "#/definitions/CommitteeMemberCreateData" + } + } + ] + } + }, + "/api/v1/Committees/{code}/Members/{memberRecordNumber}/{currentPositionCode}": { + "put": { + "tags": [ + "Committee" + ], + "summary": "Update Committee Member", + "description": "Update Committee Member.", + "operationId": "Update-Committee-Member", + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "type": "string", + "description": "Committee Code.", + "x-ms-summary": "Committee Code", + "x-ms-url-encoding": "single" + }, + { + "name": "memberRecordNumber", + "in": "path", + "required": true, + "type": "string", + "description": "Member Record Number.", + "x-ms-summary": "Member Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "currentPositionCode", + "in": "path", + "required": true, + "type": "string", + "description": "Current Position Code.", + "x-ms-summary": "Current Position Code", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/CommitteeMemberUpdateData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Organizations": { + "post": { + "tags": [ + "Organization" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/OrganizationData" + } + } + }, + "summary": "Add Organization", + "description": "Add Organization.", + "operationId": "Add-Organization", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id.", + "title": "Id", + "x-ms-visibility": "internal" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory", + "x-ms-visibility": "internal", + "enum": [ + true, + false + ], + "default": false + }, + "branchName": { + "type": "string", + "description": "Branch Name.", + "title": "Branch Name", + "x-ms-visibility": "advanced" + }, + "website": { + "type": "string", + "description": "Website.", + "title": "Website", + "x-ms-visibility": "advanced" + } + }, + "required": [ + "name", + "showInDirectory" + ] + } + } + ] + } + }, + "/api/v1/Organizations/{id}": { + "put": { + "tags": [ + "Organization" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/OrganizationData" + } + } + }, + "summary": "Update Organization", + "description": "Update Organization.", + "operationId": "Update-Organization", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "format": "uuid", + "description": "Organization Id.", + "x-ms-summary": "Organization Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory", + "enum": [ + true, + false + ], + "x-ms-visibility": "advanced" + }, + "branchName": { + "type": "string", + "description": "Branch Name.", + "title": "Branch Name" + }, + "website": { + "type": "string", + "description": "Website.", + "title": "Website" + } + } + } + } + ] + } + }, + "/api/v1/Organizations/Profile/{idOrRecordnumber}/{pageNumber}": { + "get": { + "tags": [ + "Organization" + ], + "summary": "Find Organization by Id or Record Number", + "description": "Get organization's profile information by ID or Record Number", + "operationId": "Organization-Get-Profile", + "parameters": [ + { + "name": "idOrRecordnumber", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id or Record Number.", + "x-ms-summary": "Id or Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "pageNumber", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "includeDescription", + "in": "query", + "required": true, + "type": "string", + "default": "True", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/OrganizationData" + } + } + } + } + }, + "/api/v1/Organizations/{id}/Notes": { + "post": { + "tags": [ + "Organization" + ], + "summary": "Add Note to Organization", + "description": "Add a Note to an Organization.", + "operationId": "Organization-AddNote", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Organization Id.", + "x-ms-summary": "Organization Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "note", + "in": "body", + "x-ms-summary": "Note Data", + "description": "Note Data.", + "required": true, + "schema": { + "$ref": "#/definitions/NoteData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Organizations/Lookup/{pageNumber}": { + "get": { + "tags": [ + "Organization" + ], + "summary": "Lookup Organizations", + "description": "Lookup Organizations by Name or Acronym", + "operationId": "Organization-LookupByName", + "parameters": [ + { + "name": "name", + "in": "query", + "required": true, + "type": "string", + "description": "Name or Acronym.", + "x-ms-summary": "Lookup value" + }, + { + "name": "includeAddresses", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "pageNumber", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "title": "Page Number", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationLookupBasicData" + }, + "description": "Data List." + } + } + } + } + } + } + }, + "/api/v1/Setup/customfields/1": { + "get": { + "tags": [ + "Setup" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name." + }, + "caption": { + "type": "string", + "description": "Caption." + }, + "description": { + "type": "string", + "description": "Description." + }, + "dataType": { + "type": "string", + "description": "Data Type." + }, + "inputType": { + "type": "string", + "description": "Input Type." + }, + "availableValues": { + "type": "array", + "items": {}, + "description": "Available Values." } - }, - "category": { - "type": "string", - "description": "Primary Organization - Category.", - "title": "Category" - }, - "categories": { - "type": "array", - "items": { - "type": "object", - "properties": { - "subCategories": { - "type": "array", - "description": "Primary Organization - Categories - Subcategories.", - "items": { + } + }, + "description": "Data List." + } + } + } + } + }, + "x-ms-visibility": "internal", + "summary": "List of all custom fields", + "description": "List of all custom fields.", + "operationId": "List-of-all-custom-fields", + "parameters": [ + { + "name": "Content-type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Committees/{Page Number}": { + "get": { + "tags": [ + "Committees" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommitteeData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get All Committees", + "description": "Get All Committees", + "operationId": "Get-All-Committees", + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-summary": "Page Number", + "x-ms-url-encoding": "single", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Code", + "in": "query", + "required": false, + "type": "string", + "description": "Committee Code.", + "x-ms-summary": "Committee Code." + }, + { + "name": "Name", + "in": "query", + "required": false, + "type": "string", + "description": "Committee Name.", + "x-ms-summary": "Committee Name." + }, + { + "name": "Term", + "in": "query", + "required": false, + "type": "integer", + "description": "Term.", + "x-ms-summary": "Term." + }, + { + "name": "Active Only", + "in": "query", + "required": false, + "type": "boolean", + "default": false, + "enum": [ + false, + true + ], + "description": "Active Only.", + "x-ms-summary": "Active Only." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Committees/{Code}/Positions": { + "get": { + "tags": [ + "Committees" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommitteePositionData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get Positions by Committee", + "description": "Get Positions by Committee", + "operationId": "Get-Positions-by-Committee", + "parameters": [ + { + "name": "Code", + "in": "path", + "required": true, + "type": "string", + "description": "Committee Code.", + "x-ms-summary": "Committee Code", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Committees/{Code}/subcommittees/{Page Number}": { + "get": { + "tags": [ + "Committees" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "pageNumber" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/CommitteeData" + }, + "description": "dataList" + } + } + } + } + }, + "parameters": [ + { + "name": "Code", + "in": "path", + "required": true, + "type": "string", + "description": "Code", + "x-ms-summary": "Code", + "x-ms-url-encoding": "single" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number.", + "x-ms-summary": "Page Number", + "x-ms-url-encoding": "single", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "summary": "Get Sub-Committees", + "description": "Get Sub-Committees", + "operationId": "Get-Sub-Committees" + } + }, + "/api/v1/Individuals/{ID}/Subscriptions/All/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/SubscriptionData" + }, + "description": "dataList" + } + } + } + } + }, + "summary": "Get Individual's Active Subscriptions", + "description": "Get Individual's Active Subscriptions", + "operationId": "Get-Individuals-Active-Subscriptions", + "parameters": [ + { + "name": "ID", + "in": "path", + "required": true, + "type": "string", + "description": "Individual", + "x-ms-summary": "Individual ID", + "x-ms-url-encoding": "single" + }, + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "description": "Page Number", + "x-ms-summary": "Page Number", + "x-ms-url-encoding": "single", + "default": 1, + "x-ms-visibility": "advanced" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Individuals/{Page Number}": { + "get": { + "tags": [ + "Individuals" + ], + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/IndividualData" + } + } + } + } + } + }, + "parameters": [ + { + "name": "Page Number", + "in": "path", + "required": true, + "type": "integer", + "default": 1, + "description": "Page Number", + "x-ms-summary": "Page Number", + "x-ms-url-encoding": "single", + "x-ms-visibility": "advanced" + }, + { + "name": "Name", + "in": "query", + "required": false, + "type": "string", + "description": "Individual Name.", + "x-ms-summary": "Individual Name." + }, + { + "name": "Include Details", + "in": "query", + "required": false, + "type": "boolean", + "default": true, + "enum": [ + true, + false + ], + "description": "Include Details.", + "x-ms-visibility": "advanced", + "x-ms-summary": "Include Details." + }, + { + "name": "Old ID", + "in": "query", + "required": false, + "type": "string", + "description": "Individual Old ID.", + "x-ms-visibility": "advanced", + "x-ms-summary": "Individual Old ID." + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "summary": "List all Individuals", + "description": "List all Individuals", + "operationId": "List-all-Individuals" + } + }, + "/api/v1/Customers/{pageNumber}": { + "get": { + "tags": [ + "Customer" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "description": "Page Number.", + "title": "Page Number" + }, + "dataList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "fullName": { + "type": "string", + "description": "Full Name.", + "title": "Full Name" + }, + "id": { + "type": "string", + "description": "Customer Id.", + "title": "Customer Id" + }, + "customerType": { + "type": "string", + "description": "Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Record Number.", + "title": "Record Number" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { "type": "object", - "description": "Primary Organization - Categories - Subcategories - Item.", "properties": { - "code": { + "id": { "type": "string", - "description": "Primary Organization - Categories - Subcategories - Code.", - "title": "Code" + "description": "Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Addresses - Country - Country Name.", + "title": "Country Name" }, - "name": { + "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Categories - Subcategories - Name.", - "title": "Name" - } - } - } - }, - "code": { - "type": "string", - "description": "Primary Organization - Categories - Code.", - "title": "Code" - }, - "name": { - "type": "string", - "description": "Primary Organization - Categories - Name.", - "title": "Name" - } - } - } - }, - "customFields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Primary Organization - Custom Fields - Name.", - "title": "Name" - }, - "caption": { - "type": "string", - "description": "Primary Organization - Custom Fields - Caption.", - "title": "Caption" - }, - "value": { - "type": "string", - "description": "Primary Organization - Custom Fields - Value.", - "title": "Value" - } - } - } - }, - "showInDirectory": { - "type": "boolean", - "description": "Primary Organization - Show In Directory.", - "title": "Show In Directory" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Primary Organization - Links - Type.", - "title": "Type" - }, - "url": { - "type": "string", - "description": "Primary Organization - Links - URL.", - "title": "URL" - } - } - } - }, - "oldId": { - "type": "string", - "description": "Primary Organization - Old Id.", - "title": "Old Id" - } - } - }, - "organizationRepresenting": { - "type": "object", - "properties": { - "contactIds": { - "type": "array", - "x-ms-summary": "ContactIds", - "description": "Organization Representing - Contact Ids.", - "items": { - "type": "string", - "format": "uuid", - "title": "Contact Id", - "description": "Organization Representing - Contact Ids - Contact Id." - } - }, - "parentCompanyId": { - "type": "string", - "description": "Organization Representing - Parent Company Id.", - "title": "Parent Company Id" - }, - "description": { - "type": "string", - "description": "Organization Representing - Description.", - "title": "Description" - }, - "branchName": { - "type": "string", - "description": "Organization Representing - Branch Name.", - "title": "Branch Name" - }, - "tags": { - "type": "array", - "x-ms-summary": "Tags", - "description": "Organization Representing - Tags.", - "items": { - "type": "string", - "title": "Tag", - "description": "Organization Representing - Tags - Tag." - } - }, - "id": { - "type": "string", - "description": "Organization Representing - Organization Representing Id.", - "title": "Representing Organization Id" - }, - "customerType": { - "type": "string", - "description": "Organization Representing - Customer Type.", - "title": "Customer Type" - }, - "recordNumber": { - "type": "string", - "description": "Organization Representing - Record Number.", - "title": "Record Number" - }, - "title": { - "type": "string", - "description": "Organization Representing - Title.", - "title": "Title" - }, - "name": { - "type": "string", - "description": "Organization Representing - Name.", - "title": "Name" - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Organization Representing - Addresses - Address Id.", - "title": "Address Id" - }, - "primary": { - "type": "boolean", - "description": "Organization Representing - Addresses - Is Primary.", - "title": "Is Primary Address" - }, - "line1": { - "type": "string", - "description": "Organization Representing - Addresses - Line 1.", - "title": "Address Line 1" - }, - "line2": { - "type": "string", - "description": "Organization Representing - Addresses - Line 2.", - "title": "Address Line 2" - }, - "line3": { - "type": "string", - "description": "Organization Representing - Addresses - Line 3.", - "title": "Address Line 3" - }, - "city": { - "type": "string", - "description": "Organization Representing - Addresses - City.", - "title": "City" - }, - "state": { - "type": "string", - "description": "Organization Representing - Addresses - State.", - "title": "State" - }, - "zipcode": { - "type": "string", - "description": "Organization Representing - Addresses - Zip Code.", - "title": "Zip Code" - }, - "country": { - "type": "string", - "description": "Organization Representing - Addresses - Country.", - "title": "Country" - }, - "stateAbbreviation": { - "type": "string", - "description": "Organization Representing - Addresses - State Abbreviation.", - "title": "State Abbreviation" - }, - "stateISOCode": { - "type": "string", - "description": "Organization Representing - Addresses - State ISO Code.", - "title": "State ISO Code" - }, - "type": { - "type": "string", - "description": "Organization Representing - Addresses - Type.", - "title": "Type" - }, - "region": { - "type": "string", - "description": "Organization Representing - Addresses - Region.", - "title": "Region" - }, - "latitude": { - "type": "number", - "description": "Organization Representing - Addresses - Latitude.", - "title": "Latitude" - }, - "longitude": { - "type": "number", - "description": "Organization Representing - Addresses - Longitude.", - "title": "Longitude" - }, - "showInDirectory": { - "type": "boolean", - "description": "Organization Representing - Addresses - Show In Directory.", - "title": "Show In Directory" - }, - "congressionalDistrict": { - "type": "string", - "description": "Organization Representing - Addresses - Congressional District.", - "title": "Congressional District" - }, - "countryData": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Organization Representing - Addresses - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Organization Representing - Addresses - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Organization Representing - Addresses - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Organization Representing - Addresses - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Organization Representing - Addresses - Country - Country Code.", - "title": "Country Code" + "description": "Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Addresses - Country - Country Code.", + "title": "Country Code" + } } } } } - } - }, - "email": { - "type": "string", - "description": "Organization Representing - Email.", - "title": "Email" - }, - "imageUri": { - "type": "string", - "description": "Organization Representing - Image URI.", - "title": "Image URI" - }, - "twitter": { - "type": "string", - "description": "Organization Representing - Twitter.", - "title": "Twitter" - }, - "linkedIn": { - "type": "string", - "description": "Organization Representing - LinkedIn.", - "title": "LinkedIn" - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "primary": { - "type": "boolean", - "description": "Organization Representing - Emails - Is Primary.", - "title": "Is Primary Email" - }, - "address": { - "type": "string", - "description": "Organization Representing - Emails - Address.", - "title": "Address" - }, - "type": { - "type": "string", - "description": "Organization Representing - Emails - Type.", - "title": "Type" - }, - "showInDirectory": { - "type": "boolean", - "description": "Organization Representing - Emails - Show In Directory.", - "title": "Show In Directory" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } } } - } - }, - "phones": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Organization Representing - Phones - Id.", - "title": "Phone Id" - }, - "primary": { - "type": "boolean", - "description": "Organization Representing - Phones - Is Primary.", - "title": "Is Primary Phone" - }, - "type": { - "type": "integer", - "description": "Organization Representing - Phones - Type.", - "title": "Type" - }, - "country": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Organization Representing - Phones - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Organization Representing - Phones - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Organization Representing - Phones - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Organization Representing - Phones - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Organization Representing - Phones - Country - Country Code.", - "title": "Country Code" + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Phones - Country - Country Code.", + "title": "Country Code" + } } + }, + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" } - }, - "showInDirectory": { - "type": "boolean", - "description": "Organization Representing - Phones - Show In Directory.", - "title": "Show In Directory" - }, - "number": { - "type": "string", - "description": "Organization Representing - Phones - Number.", - "title": "Number" - }, - "extension": { - "type": "string", - "description": "Organization Representing - Phones - Extension.", - "title": "Extension" - }, - "typeName": { - "type": "string", - "description": "Organization Representing - Phones - Type Name.", - "title": "Type Name" } } } - }, - "webSite": { - "type": "string", - "description": "Organization Representing - Website.", - "title": "Website" - }, - "memberships": { - "type": "array", - "items": { - "type": "object", - "properties": { - "membershipType": { - "type": "string", - "description": "Organization Representing - Memberships - Membership Type.", - "title": "Membership Type" - }, - "membershipTypeId": { - "type": "string", - "description": "Organization Representing - Memberships - Membership Type Id.", - "title": "Membership Type Id" - }, - "code": { - "type": "string", - "description": "Organization Representing - Memberships - Code.", - "title": "Code" - }, - "expireDate": { - "type": "string", - "description": "Organization Representing - Memberships - Expire Date.", - "title": "Expire Date" - }, - "graceExpireDate": { - "type": "string", - "description": "Organization Representing - Memberships - Grace Expire Date.", - "title": "Grace Expire Date" - }, - "inheritedMembershipBenefits": { - "type": "boolean", - "description": "Organization Representing - Memberships - Inherited Membership Benefits.", - "title": "Inherited Membership Benefits" - }, - "renewalUrl": { - "type": "string", - "description": "Organization Representing - Memberships - Renewal URL.", - "title": "Renewal URL" - }, - "joinDate": { - "type": "string", - "description": "Organization Representing - Memberships - Join Date.", - "title": "Join Date" - }, - "terminateDate": { - "type": "string", - "description": "Organization Representing - Memberships - Terminate Date.", - "title": "Terminate Date" - }, - "effectiveDate": { - "type": "string", - "description": "Organization Representing - Memberships - Effective Date.", - "title": "Effective Date" - } + } + } + } + } + } + } + }, + "summary": "Find Customer by Phone Number", + "description": "Find Customer by Phone Number.", + "operationId": "Find-Customer-Phone", + "parameters": [ + { + "name": "pageNumber", + "in": "path", + "required": true, + "type": "string", + "default": "1", + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "phoneNumber", + "in": "query", + "required": true, + "type": "string", + "description": "Phone Number.", + "x-ms-summary": "Phone Number" + }, + { + "name": "includeAddress", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "includePhone", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "includeEmail", + "in": "query", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ] + } + }, + "/api/v1/Events/Registrants/{recordNumber}/Attended": { + "put": { + "tags": [ + "Events" + ], + "summary": "Mark Registrant as Attended", + "description": "Mark the Registrant as Attended for the specified Events.", + "operationId": "Mark-Registrant-Attended", + "parameters": [ + { + "name": "recordNumber", + "in": "path", + "required": true, + "type": "string", + "description": "Record Number.", + "x-ms-summary": "Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "x-ms-summary": "Data List", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "eventOrSessionCode": { + "type": "string", + "description": "Event or Session Code.", + "title": "Code" + } + }, + "required": [ + "eventOrSessionCode" + ] + } + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Awards/{id}/Nominations": { + "post": { + "tags": [ + "Awards" + ], + "summary": "Add Award Nomination", + "description": "Add a new Award Nomination.", + "operationId": "Awards-AddAwardNomination", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Award Id.", + "x-ms-summary": "Award Id", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "awardNominationData", + "in": "body", + "description": "", + "required": true, + "schema": { + "$ref": "#/definitions/AwardNominationData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Awards/{id}/Nominations/{nomineeRecordNumber}": { + "put": { + "tags": [ + "Awards" + ], + "summary": "Update Award Nomination", + "description": "Update an existing Award Nomination.", + "operationId": "Awards-UpdateAwardNomination", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Award Id.", + "x-ms-summary": "Award Id", + "x-ms-url-encoding": "single" + }, + { + "name": "nomineeRecordNumber", + "in": "path", + "required": true, + "type": "string", + "description": "Nominee Record Number.", + "x-ms-summary": "Nominee Record Number", + "x-ms-url-encoding": "single" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "awardNominationData", + "in": "body", + "description": "", + "required": true, + "schema": { + "$ref": "#/definitions/UpdateAwardNominationData" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/v1/Awards/{id}/Recipients/Individuals/{pageNumber}": { + "get": { + "tags": [ + "Awards" + ], + "summary": "List Award Individual Recipients", + "description": "List all Individuals that are Award Recipients.", + "operationId": "Awards-GetIndividualAwardRecipients", + "parameters": [ + { + "name": "pageNumber", + "in": "path", + "description": "", + "required": true, + "type": "integer", + "format": "int32", + "default": "1", + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Award Id.", + "x-ms-summary": "Award Id", + "x-ms-url-encoding": "single" + }, + { + "name": "includeDetails", + "in": "query", + "description": "", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "title": "Page Number", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/AwardRecipientIndividualData" + }, + "description": "Data List." + } + } + } + } + } + } + }, + "/api/v1/Awards/{id}/Recipients/Organizations/{pageNumber}": { + "get": { + "tags": [ + "Awards" + ], + "summary": "List Award Organization Recipients", + "description": "List all Organizations that are Award Recipients.", + "operationId": "Awards-GetOrganizationAwardRecipients", + "parameters": [ + { + "name": "pageNumber", + "in": "path", + "description": "", + "required": true, + "type": "integer", + "format": "int32", + "default": "1", + "x-ms-visibility": "internal", + "x-ms-url-encoding": "single" + }, + { + "name": "id", + "in": "path", + "required": true, + "type": "string", + "description": "Award Id.", + "x-ms-summary": "Award Id", + "x-ms-url-encoding": "single" + }, + { + "name": "includeDetails", + "in": "query", + "description": "", + "required": true, + "type": "boolean", + "default": true, + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "pageNumber": { + "type": "integer", + "format": "int32", + "title": "Page Number", + "description": "Page Number." + }, + "dataList": { + "type": "array", + "items": { + "$ref": "#/definitions/AwardRecipientOrganizationData" + }, + "description": "Data List." + } + } + } + } + } + } + }, + "/": { + "x-ms-notification-content": { + "description": "Individual Created.", + "schema": { + "$ref": "#/definitions/IndividualPayload" + } + } + }, + "/api/v1/Webhooks/IndividualCreated": { + "x-ms-notification-content": { + "description": "Individual Added.", + "schema": { + "$ref": "#/definitions/IndividualPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Individuals" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When an individual is created", + "description": "Triggers when an individual is created.", + "operationId": "When-Individual-Created", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Individual.Created" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ], + "x-ms-visibility": "advanced" + } + }, + "/api/v1/Webhooks/Individual.Deleted": { + "x-ms-notification-content": { + "description": "Individual Deleted.", + "schema": { + "$ref": "#/definitions/IndividualPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Individuals" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When an individual is deleted", + "description": "Triggers when an individual is deleted.", + "operationId": "When-Individual-Deleted", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Individual.Deleted" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Individual.RequestToBeForgotten": { + "x-ms-notification-content": { + "description": "Individual Request to be Forgotten.", + "schema": { + "$ref": "#/definitions/IndividualRequestToBeForgottenPayload" + } + }, + "post": { + "tags": ["Webhook", "Individuals"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When an individual requests to be forgotten", + "description": "Triggers when an individual right-to-be-forgotten request is processed.", + "operationId": "When-Individual-Request-Forgotten", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Individual.RequestToBeForgotten" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/ProductPurchased": { + "x-ms-notification-content": { + "description": "Product Purchased.", + "schema": { + "$ref": "#/definitions/ProductPurchasedPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Purchase" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a product is purchased", + "description": "Triggers when a product is purchased. Supported Product Types: Course, Event (Sessions are included), Exam, Fund, Membership, Merchandise and Publication.", + "operationId": "When-product-purchased", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id.", + "title": "Id", + "x-ms-visibility": "internal" + }, + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Product.Purchased" + }, + "filters": { + "type": "array", + "items": { + "type": "string", + "title": "Product Code", + "description": "This triggers when a product is purchased." + }, + "description": "Filters." + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "title": "Callback URL", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "description", + "secret", + "typeName", + "filters" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/CommitteeMemberUpdated": { + "x-ms-notification-content": { + "description": "Committee Member Updated.", + "schema": { + "$ref": "#/definitions/CommitteeMemberPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Committee" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a committee member is updated", + "description": "Triggers when an individual is added, deleted or updated to/from a commiteee.", + "operationId": "When-Committee-Member-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Individual.CommitteeUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ], + "x-ms-visibility": "advanced" + } + }, + "/api/v1/Webhooks/PurchaseCancelled": { + "x-ms-notification-content": { + "description": "Purchase Canceled.", + "schema": { + "$ref": "#/definitions/PurchaseCancelledPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Purchase" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a purchase is canceled", + "description": "Triggers when a purchase is canceled. Supported Product Types: Course, Event (Sessions are included), Exam, Fund, Membership, Merchandise, Publication.", + "operationId": "When-purchase-cancelled", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Id.", + "title": "Id", + "x-ms-visibility": "internal" + }, + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Purchase.Cancelled" + }, + "filters": { + "type": "array", + "items": { + "type": "string", + "title": "Product Code", + "description": "Triggers when a purchase is canceled." + }, + "description": "Filters." + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "title": "Callback URL", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "description", + "secret", + "typeName", + "filters" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/RequestUpdated": { + "x-ms-notification-content": { + "description": "Customer Request Updated.", + "schema": { + "$ref": "#/definitions/CustomerRequestPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Customer" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer request is updated", + "description": "Triggers when a customer request is added or closed.", + "operationId": "When-Request-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.RequestUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ], + "x-ms-visibility": "advanced" + } + }, + "/api/v1/Webhooks/EmailUpdated": { + "x-ms-notification-content": { + "description": "Customer Email Updated.", + "schema": { + "$ref": "#/definitions/EmailPayload" + } + }, + "post": { + "tags": [ + "Webhook", + "Customer" + ], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer email is updated", + "description": "Triggers when an email is added/edited or deleted.", + "operationId": "When-Email-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.EmailUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ], + "x-ms-visibility": "advanced" + } + }, + "/api/v1/Webhooks/Customer.CustomFieldValueUpdated": { + "x-ms-notification-content": { + "description": "Custom Field Value Updated.", + "schema": { + "$ref": "#/definitions/CustomerCustomFieldValuePayload" + } + }, + "post": { + "tags": ["Webhook", "Customer"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer custom field value is updated", + "description": "Triggers when a customer custom field value is added/edited or deleted.", + "operationId": "When-Customer-Custom-Field-Value-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.CustomFieldValueUpdated" + }, + "filters": { + "type": "array", + "items": { + "type": "string", + "title": "Custom Field Name", + "description": "Custom Field Name." + }, + "minItems": 1, + "maxItems": 1, + "description": "Filters." + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description", + "filters" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Customer.Merged": { + "x-ms-notification-content": { + "description": "Customer Merged.", + "schema": { + "$ref": "#/definitions/CustomerMergedPayload" + } + }, + "post": { + "tags": ["Webhook", "Customer"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer is merged", + "description": "Triggers when a customer is merged.", + "operationId": "When-Customer-Is-Merged", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.Merged" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Customer.RelationshipUpdated": { + "x-ms-notification-content": { + "description": "Customer Relationship Updated.", + "schema": { + "$ref": "#/definitions/CustomerRelationshipUpdatedPayload" + } + }, + "post": { + "tags": ["Webhook", "Customer"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer relationship is updated", + "description": "Triggers when a customer relationship is added/edited or deleted.", + "operationId": "When-Customer-Relationship-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.RelationshipUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Customer.PhoneUpdated": { + "x-ms-notification-content": { + "description": "Customer Phone is updated.", + "schema": { + "$ref": "#/definitions/CustomerPhoneUpdatedPayload" + } + }, + "post": { + "tags": ["Webhook", "Customer"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer phone is updated", + "description": "Triggers when a customer phone is added/edited or deleted.", + "operationId": "When-Customer-Phone-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.PhoneUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Customer.AddressUpdated": { + "x-ms-notification-content": { + "description": "Customer Address updated.", + "schema": { + "$ref": "#/definitions/CustomerAddressUpdatedPayload" + } + }, + "post": { + "tags": ["Webhook", "Customer"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When a customer address is updated", + "description": "Triggers when a customer address is added/edited or deleted.", + "operationId": "When-Customer-Address-Updated", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Customer.AddressUpdated" + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description" + ] + } + } + ] + } + }, + "/api/v1/Webhooks/Event.Registration.Substituted": { + "x-ms-notification-content": { + "description": "Event Registration Substituted.", + "schema": { + "$ref": "#/definitions/EventRegistrationSubstitutedPayload" + } + }, + "post": { + "tags": ["Webhook", "Events"], + "responses": { + "200": { + "description": "Success" + } + }, + "summary": "When an event registration is substituted", + "description": "Triggers when an event registration is substituted.", + "operationId": "When-Event-Registration-Substituted", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "x-ms-visibility": "internal", + "default": "Event.Registration.Substituted" + }, + "filters": { + "type": "array", + "items": { + "type": "string", + "title": "Event Code", + "description": "Event Code." + }, + "minItems": 1, + "maxItems": 300, + "description": "Filters." + }, + "secret": { + "type": "string", + "description": "Secret.", + "title": "Secret", + "x-ms-visibility": "internal", + "default": "Impexium" + }, + "callBackUrl": { + "type": "string", + "description": "Callback URL.", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "Callback URL" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description", + "x-ms-visibility": "internal", + "default": "Added by Impexium Connector" + } + }, + "required": [ + "callBackUrl", + "secret", + "typeName", + "description", + "filters" + ] + } + } + ] + } + } + }, + "definitions": { + "RelationshipTypeData": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "reciprocalRelationshipName": { + "type": "string", + "description": "Reciprocal Relationship Name.", + "title": "Reciprocal Relationship Name" + }, + "relationshipType": { + "type": "string", + "description": "Relationship Type.", + "title": "Relationship Type" + }, + "allowPrimary": { + "type": "boolean", + "description": "Allow Primary.", + "title": "Allow Primary", + "enum": [ + true, + false + ] + }, + "canPurchaseForOrganization": { + "type": "boolean", + "description": "Can Purchase For Organization.", + "title": "Can Purchase For Organization", + "enum": [ + true, + false + ] + }, + "canManagePAC": { + "type": "boolean", + "description": "Can Manage PAC.", + "title": "Can Manage PAC", + "enum": [ + true, + false + ] + }, + "canManageOrganization": { + "type": "boolean", + "description": "Can Manage Organization.", + "title": "Can Manage Organization", + "enum": [ + true, + false + ] + } + } + }, + "RequestData": { + "type": "object", + "properties": { + "requestNumber": { + "type": "string", + "description": "Request Number.", + "title": "Request Number" + }, + "requestDate": { + "type": "string", + "description": "Request Date.", + "title": "Request Date" + }, + "requestedByCustomerRecordNumber": { + "type": "string", + "description": "Requested By Customer Record Number.", + "title": "Requested By Customer Record Number" + }, + "requestType": { + "type": "string", + "description": "Request Type.", + "title": "Request Type" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "source": { + "type": "string", + "description": "Source.", + "title": "Source" + }, + "closedDate": { + "type": "string", + "description": "Closed Date.", + "title": "Closed Date" + } + } + }, + "UserTaskData": { + "type": "object", + "properties": { + "taskNumber": { + "type": "string", + "description": "Task Number.", + "title": "Task Number" + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "category": { + "type": "string", + "description": "Category.", + "title": "Category" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "assignedBy": { + "type": "string", + "description": "Assigned By.", + "title": "Assigned By" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "dueDate": { + "type": "string", + "description": "Due Date.", + "title": "Due Date" + }, + "progress": { + "type": "string", + "description": "Progress.", + "title": "Progress" + }, + "completedDate": { + "type": "string", + "description": "Completed Date.", + "title": "Completed Date" + } + } + }, + "SaveOrganizationData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory", + "enum": [ + true, + false + ] + }, + "branchName": { + "type": "string", + "description": "Branch Name", + "title": "Branch Name" + }, + "website": { + "type": "string", + "description": "Website.", + "title": "Website" + }, + "sourceCode": { + "type": "string", + "description": "Source Code.", + "title": "Source Code" + }, + "preferredCommunicationType": { + "type": "integer", + "format": "int32", + "description": "Preferred Communication Type.", + "title": "Preferred Communication Type" + }, + "acronym": { + "type": "string", + "description": "Acronym.", + "title": "Acronym" + } + } + }, + "NotificationData": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "message": { + "type": "string", + "description": "Message.", + "title": "Message" + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + }, + "date": { + "type": "string", + "description": "Date.", + "title": "Date" + }, + "isRead": { + "type": "boolean", + "description": "Is Read.", + "title": "Is Read", + "enum": [ + true, + false + ] + } + } + }, + "SaveCategoryBasicData": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "isPrimary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary", + "enum": [ + true, + false + ] + } + } + }, + "TaskData": { + "type": "object", + "properties": { + "taskNumber": { + "type": "string", + "description": "Task Number.", + "title": "Task Number" + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "category": { + "type": "string", + "description": "Category.", + "title": "Category" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "dueDate": { + "type": "string", + "description": "Due Date.", + "title": "Due Date" + } + } + }, + "TaskSaveData": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "category": { + "type": "string", + "description": "Category.", + "title": "Category" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "dueDate": { + "type": "string", + "description": "Due Date.", + "title": "Due Date" + } + } + }, + "CertificationData": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "expireDate": { + "type": "string", + "description": "Expire Date.", + "title": "Expire Date" + } + } + }, + "ActivityData": { + "type": "object", + "properties": { + "category": { + "type": "string", + "description": "Category.", + "title": "Category" + }, + "text": { + "type": "string", + "description": "Text.", + "title": "Text" + }, + "url": { + "type": "string", + "description": "Url.", + "title": "Url" + }, + "activityDate": { + "type": "string", + "description": "Activity Date.", + "title": "Activity Date" + } + } + }, + "SessionRegistrationData": { + "type": "object", + "properties": { + "sessionCode": { + "type": "string", + "description": "Session Code.", + "title": "Session Code" + } + } + }, + "AwardData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "year": { + "type": "integer", + "format": "int32", + "description": "Year.", + "title": "Year" + }, + "customerType": { + "type": "string", + "description": "Customer Type.", + "title": "Customer Type" + }, + "allowPublicNomination": { + "type": "boolean", + "description": "Allow Public Nomination.", + "title": "Allow Public Nomination", + "enum": [ + true, + false + ] + }, + "nominationStartDate": { + "type": "string", + "description": "Nomination Start Date.", + "title": "Nomination Start Date" + }, + "nominationEndDate": { + "type": "string", + "description": "Nomination End Date.", + "title": "Nomination End Date" + } + } + }, + "LicenseData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "ID" + }, + "licenseType": { + "type": "string", + "description": "License Type.", + "title": "License Type" + }, + "number": { + "type": "string", + "description": "Number.", + "title": "Number" + }, + "state": { + "type": "string", + "description": "State.", + "title": "State" + }, + "status": { + "type": "string", + "description": "Status.", + "title": "Status" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "expirationDate": { + "type": "string", + "description": "Experation Date.", + "title": "Expiration Date" + } + } + }, + "ServiceData": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + } + } + }, + "RelationshipSaveData": { + "type": "object", + "properties": { + "relationshipName": { + "type": "string", + "description": "Relationship Name.", + "title": "Relationship Name" + }, + "relatedToCustomerRecordNumber": { + "type": "string", + "description": "Related To Customer Record Number.", + "title": "Related To Customer Record Number" + }, + "reciprocalRelationshipName": { + "type": "string", + "description": "Reciprocal Relationship Name.", + "title": "Reciprocal Relationship Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary", + "enum": [ + true, + false + ] + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + }, + "isReciprocalPrimary": { + "type": "boolean", + "description": "Is Reciprocal Primary.", + "title": "Is Reciprocal Primary", + "enum": [ + true, + false + ] + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + } + } + }, + "CommitteeNomineeData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "ID" + }, + "firstName": { + "type": "string", + "description": "First Name.", + "title": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name.", + "title": "Last Name" + }, + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "position": { + "type": "string", + "description": "Position.", + "title": "Position" + }, + "positionCode": { + "type": "string", + "description": "Position Code.", + "title": "Position Code" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + }, + "primaryOrganization": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "Contact Ids", + "description": "Primary Organization - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Primary Organization - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Primary Organization - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Primary Organization - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Primary Organization - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Primary Organization - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Primary Organization - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Primary Organization - Id.", + "title": "Primary Organization Id" + }, + "customerType": { + "type": "string", + "description": "Primary Organization - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Primary Organization - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Primary Organization - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Primary Organization - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Primary Organization - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Primary Organization - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Primary Organization - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Primary Organization - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Primary Organization - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Primary Organization - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Primary Organization - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Primary Organization - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Primary Organization - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Primary Organization - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Primary Organization - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Primary Organization - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Primary Organization - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Primary Organization - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Primary Organization - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Primary Organization - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Primary Organization - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Primary Organization - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Primary Organization - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Primary Organization - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Primary Organization - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Primary Organization - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Primary Organization - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Primary Organization - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Primary Organization - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Primary Organization - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Primary Organization - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Primary Organization - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Primary Organization - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Primary Organization - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Primary Organization - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Primary Organization - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Primary Organization - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Primary Organization - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Primary Organization - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "array", + "description": "Primary Organization - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Primary Organization - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Name.", + "title": "Name" } } - }, - "category": { - "type": "string", - "description": "Organization Representing - Category.", - "title": "Category" - }, - "categories": { - "type": "array", - "description": "Organization Representing - Categories.", - "items": { - "type": "object", - "description": "Organization Representing - Categories - Item.", - "properties": { - "subCategories": { - "type": "array", - "description": "Organization Representing - Categories - Subcategories.", - "items": { - "type": "object", - "description": "Organization Representing - Categories - Subcategories - Item.", - "properties": { - "code": { - "type": "string", - "description": "Organization Representing - Categories - Subcategories - Code.", - "title": "Code" - }, - "name": { - "type": "string", - "description": "Organization Representing - Categories - Subcategories - Name.", - "title": "Name" - } - } - } - }, - "code": { - "type": "string", - "description": "Organization Representing - Categories - Code.", - "title": "Code" - }, - "name": { - "type": "string", - "description": "Organization Representing - Categories - Name.", - "title": "Name" - } - } + } + }, + "code": { + "type": "string", + "description": "Primary Organization - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Primary Organization - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Primary Organization - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Primary Organization - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Primary Organization - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Primary Organization - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Primary Organization - Old Id.", + "title": "Old Id" + } + } + }, + "organizationRepresenting": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "ContactIds", + "description": "Organization Representing - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Organization Representing - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Organization Representing - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Organization Representing - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Organization Representing - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Organization Representing - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Organization Representing - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Organization Representing - Organization Representing Id.", + "title": "Representing Organization Id" + }, + "customerType": { + "type": "string", + "description": "Organization Representing - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Organization Representing - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Organization Representing - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Organization Representing - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Organization Representing - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Organization Representing - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Organization Representing - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Organization Representing - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Organization Representing - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Organization Representing - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Organization Representing - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Organization Representing - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Organization Representing - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Organization Representing - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Organization Representing - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Organization Representing - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Organization Representing - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Organization Representing - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Organization Representing - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Organization Representing - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Organization Representing - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Organization Representing - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Organization Representing - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Organization Representing - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Organization Representing - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Organization Representing - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Phones - Country - Country Code.", + "title": "Country Code" } - }, - "customFields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Organization Representing - Custom Fields - Name.", - "title": "Name" - }, - "caption": { - "type": "string", - "description": "Organization Representing - Custom Fields - Caption.", - "title": "Caption" - }, - "value": { - "type": "string", - "description": "Organization Representing - Custom Fields - Value.", - "title": "Value" - } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Organization Representing - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Organization Representing - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Organization Representing - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Organization Representing - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Organization Representing - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Organization Representing - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Organization Representing - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Organization Representing - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Organization Representing - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Organization Representing - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Organization Representing - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Organization Representing - Categories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Organization Representing - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Name.", + "title": "Name" } } - }, - "showInDirectory": { - "type": "boolean", - "description": "Organization Representing - Show In Directory.", - "title": "Show In Directory" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Organization Representing - Links - Type.", - "title": "Type" - }, - "url": { - "type": "string", - "description": "Organization Representing - Links - URL.", - "title": "URL" - } + } + }, + "code": { + "type": "string", + "description": "Organization Representing - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Organization Representing - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Organization Representing - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Organization Representing - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Organization Representing - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Organization Representing - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Organization Representing - Old Id.", + "title": "Old Id" + } + } + }, + "nominatedByCustomer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Nominated By Customer Id.", + "title": "Nominated By Customer Id" + }, + "customerType": { + "type": "string", + "description": "Nominated By Customer - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Nominated By Customer - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Nominated By Customer - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Nominated By Customer - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Nominated By Customer - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Nominated By Customer - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Nominated By Customer - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Nominated By Customer - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Nominated By Customer - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Nominated By Customer - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Nominated By Customer - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Nominated By Customer - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Nominated By Customer - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Nominated By Customer - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Nominated By Customer - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Nominated By Customer - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Nominated By Customer - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Nominated By Customer - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Nominated By Customer - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Nominated By Customer - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Nominated By Customer - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Nominated By Customer - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Nominated By Customer - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Nominated By Customer - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Nominated By Customer - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Nominated By Customer - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Nominated By Customer - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Nominated By Customer - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Nominated By Customer - Categories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Nominated By Customer - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Name.", + "title": "Name" } } - }, - "oldId": { - "type": "string", - "description": "Organization Representing - Old Id.", - "title": "Old Id" } + }, + "code": { + "type": "string", + "description": "Nominated By Customer - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Nominated By Customer - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Nominated By Customer - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Nominated By Customer - Old Id.", + "title": "Old Id" + } + } + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Addresses - Country - Country Code.", + "title": "Country Code" } - }, - "nominatedByCustomer": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Nominated By Customer - Nominated By Customer Id.", - "title": "Nominated By Customer Id" - }, - "customerType": { - "type": "string", - "description": "Nominated By Customer - Customer Type.", - "title": "Customer Type" - }, - "recordNumber": { - "type": "string", - "description": "Nominated By Customer - Record Number.", - "title": "Record Number" - }, - "title": { - "type": "string", - "description": "Nominated By Customer - Title.", - "title": "Title" - }, - "name": { - "type": "string", - "description": "Nominated By Customer - Name.", - "title": "Name" + } + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "rank": { + "type": "integer", + "description": "Rank.", + "title": "Rank" + } + } + }, + "CustomFieldResultData": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Status.", + "title": "Status" + }, + "message": { + "type": "string", + "description": "Message.", + "title": "Message" + }, + "customFieldName": { + "type": "string", + "description": "Custom Field Name.", + "title": "Custom Field Name" + } + } + }, + "RelationshipData": { + "type": "object", + "properties": { + "relationshipName": { + "type": "string", + "description": "Relationship Name.", + "title": "Relationship Name" + }, + "relatedToCustomer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Related To Customer - ID.", + "title": "ID" + }, + "customerType": { + "type": "string", + "description": "Related To Customer - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Related To Customer - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Related To Customer - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Related To Customer - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - ID.", + "title": "ID." + }, + "primary": { + "type": "boolean", + "description": "Addresses - Primary.", + "title": "Primary" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zipcode.", + "title": "Zipcode" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "string", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "string", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Country - ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "Country - Name.", + "title": "Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Country - Two Letter Iso Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Country - Three Letter Iso Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "format": "int32", + "description": "Country - Code.", + "title": "Code" + } }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Nominated By Customer - Addresses - Address Id.", - "title": "Address Id" - }, - "primary": { - "type": "boolean", - "description": "Nominated By Customer - Addresses - Is Primary.", - "title": "Is Primary Address" - }, - "line1": { - "type": "string", - "description": "Nominated By Customer - Addresses - Line 1.", - "title": "Address Line 1" - }, - "line2": { - "type": "string", - "description": "Nominated By Customer - Addresses - Line 2.", - "title": "Address Line 2" - }, - "line3": { - "type": "string", - "description": "Nominated By Customer - Addresses - Line 3.", - "title": "Address Line 3" - }, - "city": { - "type": "string", - "description": "Nominated By Customer - Addresses - City.", - "title": "City" - }, - "state": { - "type": "string", - "description": "Nominated By Customer - Addresses - State.", - "title": "State" - }, - "zipcode": { - "type": "string", - "description": "Nominated By Customer - Addresses - Zip Code.", - "title": "Zip Code" - }, - "country": { - "type": "string", - "description": "Nominated By Customer - Addresses - Country.", - "title": "Country" - }, - "stateAbbreviation": { - "type": "string", - "description": "Nominated By Customer - Addresses - State Abbreviation.", - "title": "State Abbreviation" - }, - "stateISOCode": { - "type": "string", - "description": "Nominated By Customer - Addresses - State ISO Code.", - "title": "State ISO Code" - }, - "type": { - "type": "string", - "description": "Nominated By Customer - Addresses - Type.", - "title": "Type" - }, - "region": { - "type": "string", - "description": "Nominated By Customer - Addresses - Region.", - "title": "Region" - }, - "latitude": { - "type": "number", - "description": "Nominated By Customer - Addresses - Latitude.", - "title": "Latitude" - }, - "longitude": { - "type": "number", - "description": "Nominated By Customer - Addresses - Longitude.", - "title": "Longitude" - }, - "showInDirectory": { - "type": "boolean", - "description": "Nominated By Customer - Addresses - Show In Directory.", - "title": "Show In Directory" - }, - "congressionalDistrict": { - "type": "string", - "description": "Nominated By Customer - Addresses - Congressional District.", - "title": "Congressional District" - }, - "countryData": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Nominated By Customer - Addresses - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Nominated By Customer - Addresses - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Nominated By Customer - Addresses - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Nominated By Customer - Addresses - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Nominated By Customer - Addresses - Country - Country Code.", - "title": "Country Code" - } + "description": "Addresses - Country Data.", + "title": "Country Data" + }, + "isPreferredShipping": { + "type": "boolean", + "description": "Addresses - Is Preferred Shipping.", + "title": "Is Preferred Shipping" + }, + "isPreferredBilling": { + "type": "boolean", + "description": "Addresses - Is Preferred Billing.", + "title": "Is Preferred Billing" + }, + "isBadAddress": { + "type": "boolean", + "description": "Addresses - Is Bad Address.", + "title": "Is Bad Address" + } + } + }, + "description": "Related To Customer - Addresses.", + "title": "Addresses" + }, + "imageUri": { + "type": "string", + "description": "Related To Customer - Image Uri.", + "title": "Image Uri" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Primary.", + "title": "Primary" + }, + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } + } + }, + "description": "Related To Customer - Emails.", + "title": "Emails" + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - ID.", + "title": "ID" + }, + "primary": { + "type": "boolean", + "description": "Phones - Primary.", + "title": "Primary" + }, + "type": { + "type": "integer", + "format": "int32", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "string", + "description": "Phones - Country.", + "title": "Country" + }, + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" + } + } + }, + "description": "Related To Customer - Phones.", + "title": "Phones" + }, + "webSite": { + "type": "string", + "description": "Related To Customer - Web Site.", + "title": "Web Site" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Memberships - Membership Type ID.", + "title": "Membership Type ID" + }, + "code": { + "type": "string", + "description": "Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits", + "enum": [ + true, + false + ] + }, + "renewalUrl": { + "type": "string", + "description": "Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Memberships - Effective Date.", + "title": "Effective Date" + }, + "membershipUniqueId": { + "type": "string", + "description": "Memberships - Membership Unique ID.", + "title": "Membership Unique ID" + }, + "termsList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startDate": { + "type": "string", + "description": "Terms - Start Date", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "Terms - End Date", + "title": "End Date" + } + } + }, + "description": "Memberships - Terms List", + "title": "Terms List" + } + } + }, + "description": "Related To Customer - Memberships.", + "title": "Memberships" + }, + "category": { + "type": "string", + "description": "Related To Customer - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "string", + "description": "Subcategories - Subcategories.", + "title": "Subcategories" + }, + "code": { + "type": "string", + "description": "Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Subcategories - Name.", + "title": "Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Subcategories - Is Primary.", + "title": "Is Primary" + } + } + }, + "description": "Categories - Subcategories.", + "title": "Subcategories" + }, + "code": { + "type": "string", + "description": "Categories - Code", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Categories - Name", + "title": "Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Categories - Is Primary.", + "title": "Is Primary" + } + } + }, + "description": "Related To Customer - Categories.", + "title": "Categories" + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Custom Fields - Value.", + "title": "Value" + } + } + }, + "description": "Related To Customer - Custom Fields", + "title": "Custom Fields" + }, + "showInDirectory": { + "type": "boolean", + "description": "Related To Customer - Show In Directory.", + "title": "Show In Directory", + "enum": [ + true, + false + ] + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Links - URL.", + "title": "URL" + } + } + }, + "description": "Related To Customer - Links.", + "title": "Links" + }, + "oldId": { + "type": "string", + "description": "Related To Customer - Old ID.", + "title": "Old ID" + } + }, + "description": "Related To Customer." + }, + "reciprocalRelationshipName": { + "type": "string", + "description": "Reciprocal Relationship Name.", + "title": "Reciprocal Relationship Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary", + "enum": [ + true, + false + ] + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + } + } + }, + "RegistrationData": { + "type": "object", + "properties": { + "individualId": { + "type": "string", + "description": "Individual ID.", + "title": "Individual ID" + }, + "event": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Event - ID.", + "title": "ID" + }, + "code": { + "type": "string", + "description": "Event - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Event - Name.", + "title": "Name" + }, + "startDate": { + "type": "string", + "description": "Event - Start Date", + "title": "Start Date" + }, + "startTime": { + "type": "string", + "description": "Event - Start Time.", + "title": "Start Time" + }, + "endDate": { + "type": "string", + "description": "Event - End Date.", + "title": "End Date" + }, + "endTime": { + "type": "string", + "description": "Event - End Time.", + "title": "End Time" + }, + "timezone": { + "type": "string", + "description": "Event - Time Zone.", + "title": "Time Zone" + }, + "description": { + "type": "string", + "description": "Event - Description.", + "title": "Description" + }, + "publicEvent": { + "type": "boolean", + "description": "Event - Public Event.", + "title": "Public Event", + "enum": [ + true, + false + ] + }, + "freeEvent": { + "type": "boolean", + "description": "Event - Free Event.", + "title": "Free Event", + "enum": [ + true, + false + ] + }, + "attendedDate": { + "type": "string", + "description": "Event - Attended Date.", + "title": "Attended Date" + }, + "locations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Locations - Name", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Locations - Description", + "title": "Description" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - ID.", + "title": "ID" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Primary.", + "title": "Primary" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zipcode.", + "title": "Zipcode" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Country - ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "Country - Name.", + "title": "Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Country - Two Letter Iso Code.", + "title": "Two Letter Iso Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Country - Three Letter Iso Code.", + "title": "Three Letter Iso Code" + }, + "code": { + "type": "integer", + "format": "int32", + "description": "Country - Code.", + "title": "Code" } - } + }, + "description": "Addresses - Country Data.", + "title": "Country" + }, + "isPreferredShipping": { + "type": "boolean", + "description": "Addresses - Is Preferred Shipping.", + "title": "Is Preferred Shipping" + }, + "isPreferredBilling": { + "type": "boolean", + "description": "Addresses - Is Preferred Billing.", + "title": "Is Preferred Billing" + }, + "isBadAddress": { + "type": "boolean", + "description": "Addresses - Is Bad Address.", + "title": "Is Bad Address" } } }, - "email": { + "description": "Locations - Addresses.", + "title": "Addresses" + } + } + }, + "description": "Event - Locations.", + "title": "Locations" + }, + "registrationDate": { + "type": "string", + "description": "Event - Registration Date.", + "title": "Registration Date" + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Custom Fields - Value.", + "title": "Value" + } + } + }, + "description": "Event - Custom Fields.", + "title": "Custom Fields" + } + }, + "description": "Event." + }, + "sessions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Sessions - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Sessions - Name.", + "title": "Name" + }, + "startDate": { + "type": "string", + "description": "Sessions - Start Date.", + "title": "Start Date" + }, + "startTime": { + "type": "string", + "description": "Sessions - Start Time.", + "title": "Start Time" + }, + "endDate": { + "type": "string", + "description": "Sessions - End Date.", + "title": "End Date" + }, + "endTime": { + "type": "string", + "description": "Sessions - End Time.", + "title": "End Time" + }, + "description": { + "type": "string", + "description": "Sessions - Description.", + "title": "Description" + }, + "freeSession": { + "type": "boolean", + "description": "Sessions - Free Session.", + "title": "Free Session" + }, + "attendedDate": { + "type": "string", + "description": "Sessions - Attended Date.", + "title": "Attended Date" + }, + "registrationDate": { + "type": "string", + "description": "Sessions - Registration Date.", + "title": "Registration Date" + }, + "externalCode": { + "type": "string", + "description": "Sessions - External Code.", + "title": "External Code" + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "Nominated By Customer - Email.", - "title": "Email" + "description": "Custom Fields - Name.", + "title": "Name" }, - "imageUri": { + "caption": { "type": "string", - "description": "Nominated By Customer - Image URI.", - "title": "Image URI" + "description": "Custom Fields - Caption.", + "title": "Caption" }, - "twitter": { + "value": { "type": "string", - "description": "Nominated By Customer - Twitter.", - "title": "Twitter" - }, - "linkedIn": { + "description": "Custom Fields - Value.", + "title": "Value" + } + } + }, + "description": "Sessions - Custom Fields.", + "title": "Custom Fields" + } + } + }, + "description": "Sessions.", + "title": "Sessions" + }, + "badgeName": { + "type": "string", + "description": "Badge Name.", + "title": "Badge Name" + }, + "badgeOrganization": { + "type": "string", + "description": "Badge Organization.", + "title": "Badge Organization" + }, + "badgeCity": { + "type": "string", + "description": "Badge City.", + "title": "Badge City" + }, + "badgeState": { + "type": "string", + "description": "Badge State.", + "title": "Badge State" + }, + "boughtTogetherWith": { + "type": "array", + "items": { + "type": "object", + "properties": { + "orderNumber": { + "type": "string", + "description": "Bought Together With - Order Number.", + "title": "Order Number" + }, + "productCode": { + "type": "string", + "description": "Bought Together With - Product Code.", + "title": "Product Code" + }, + "productName": { + "type": "string", + "description": "Bought Together With - Product Name.", + "title": "Product Name" + }, + "productType": { + "type": "string", + "description": "Bought Together With - Product Type.", + "title": "Product Type" + }, + "purchaseDate": { + "type": "string", + "description": "Bought Together With - Purchase Date.", + "title": "Purchase Date" + }, + "additionalInfo": { + "type": "string", + "description": "Bought Together With - Additional Info.", + "title": "Additional Info" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Bought Together With - Quantity.", + "title": "Quantity" + }, + "itemizedCustomFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "Nominated By Customer - LinkedIn.", - "title": "LinkedIn" + "description": "Itemized Custom Fields - Name.", + "title": "Name" }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "primary": { - "type": "boolean", - "description": "Nominated By Customer - Emails - Is Primary.", - "title": "Is Primary Email" - }, - "address": { - "type": "string", - "description": "Nominated By Customer - Emails - Address.", - "title": "Address" - }, - "type": { - "type": "string", - "description": "Nominated By Customer - Emails - Type.", - "title": "Type" - }, - "showInDirectory": { - "type": "boolean", - "description": "Nominated By Customer - Emails - Show In Directory.", - "title": "Show In Directory" - } - } - } + "caption": { + "type": "string", + "description": "Itemized Custom Fields - Caption.", + "title": "Caption" }, - "phones": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Nominated By Customer - Phones - Id.", - "title": "Phone Id" - }, - "primary": { - "type": "boolean", - "description": "Nominated By Customer - Phones - Is Primary.", - "title": "Is Primary Phone" - }, - "type": { - "type": "integer", - "description": "Nominated By Customer - Phones - Type.", - "title": "Type" - }, - "country": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Nominated By Customer - Phones - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Nominated By Customer - Phones - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Nominated By Customer - Phones - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Nominated By Customer - Phones - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Nominated By Customer - Phones - Country - Country Code.", - "title": "Country Code" - } - } - }, - "showInDirectory": { - "type": "boolean", - "description": "Nominated By Customer - Phones - Show In Directory.", - "title": "Show In Directory" - }, - "number": { - "type": "string", - "description": "Nominated By Customer - Phones - Number.", - "title": "Number" - }, - "extension": { - "type": "string", - "description": "Nominated By Customer - Phones - Extension.", - "title": "Extension" - }, - "typeName": { - "type": "string", - "description": "Nominated By Customer - Phones - Type Name.", - "title": "Type Name" - } - } - } + "value": { + "type": "string", + "description": "Itemized Custom Fields - Value.", + "title": "Value" + } + }, + "description": "Bought Together With - Itemized Custom Fields.", + "title": "Itemized Custom Fields" + } + }, + "productCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Product Categories - Code.", + "title": "Code" }, - "webSite": { + "name": { "type": "string", - "description": "Nominated By Customer - Website.", - "title": "Website" + "description": "Product Categories - Name.", + "title": "Name" }, - "memberships": { + "IsPrimary": { + "type": "boolean", + "description": "Product Categories - Is Primary.", + "title": "Is Primary" + }, + "subCategories": { "type": "array", "items": { "type": "object", "properties": { - "membershipType": { - "type": "string", - "description": "Nominated By Customer - Memberships - Membership Type.", - "title": "Membership Type" - }, - "membershipTypeId": { + "subCategories": { "type": "string", - "description": "Nominated By Customer - Memberships - Membership Type Id.", - "title": "Membership Type Id" + "description": "Subcategories - Subcategories.", + "title": "Subcategories" }, "code": { "type": "string", - "description": "Nominated By Customer - Memberships - Code.", + "description": "Subcategories - Code.", "title": "Code" }, - "expireDate": { - "type": "string", - "description": "Nominated By Customer - Memberships - Expire Date.", - "title": "Expire Date" - }, - "graceExpireDate": { + "name": { "type": "string", - "description": "Nominated By Customer - Memberships - Grace Expire Date.", - "title": "Grace Expire Date" + "description": "Subcategories - Name.", + "title": "Name" }, - "inheritedMembershipBenefits": { + "isPrimary": { "type": "boolean", - "description": "Nominated By Customer - Memberships - Inherited Membership Benefits.", - "title": "Inherited Membership Benefits" - }, - "renewalUrl": { - "type": "string", - "description": "Nominated By Customer - Memberships - Renewal URL.", - "title": "Renewal URL" - }, - "joinDate": { - "type": "string", - "description": "Nominated By Customer - Memberships - Join Date.", - "title": "Join Date" - }, - "terminateDate": { - "type": "string", - "description": "Nominated By Customer - Memberships - Terminate Date.", - "title": "Terminate Date" - }, - "effectiveDate": { - "type": "string", - "description": "Nominated By Customer - Memberships - Effective Date.", - "title": "Effective Date" + "description": "Subcategories - Is Primary.", + "title": "Is Primary" } } - } + }, + "description": "Product Categories - Subcategories.", + "title": "Subcategories" + } + }, + "description": "Bought Together With - Product Categories.", + "title": "Product Categories" + } + } + }, + "description": "Bought Together With.", + "title": "Bought Together With" + } + }, + "registrantTypeCode": { + "type": "string", + "description": "Registrant Type Code.", + "title": "Registrant Type Code" + }, + "registrantTypeName": { + "type": "string", + "description": "Registrant Type Name.", + "title": "Registrant Type Name" + }, + "registrationNumber": { + "type": "string", + "description": "Registration Number.", + "title": "Registration Number" + } + } + }, + "CommitteeMemberData": { + "type": "object", + "properties": { + "committee": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "Committee - Name." + }, + "code": { + "type": "string", + "title": "Code", + "description": "Committee - Code." + }, + "website": { + "type": "string", + "title": "Website", + "description": "Committee - Website." + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id", + "description": "Committee - Id." + }, + "parentCommitteeId": { + "type": "string", + "format": "uuid", + "title": "Parent Committee Id", + "description": "Committee - Parent Committee Id." + }, + "categoryName": { + "type": "string", + "title": "Category Name", + "description": "Committee - Category Name." + }, + "categoryCode": { + "type": "string", + "title": "Category Code", + "description": "Committee - Category Code." + }, + "description": { + "type": "string", + "title": "Description", + "description": "Committee - Description." + }, + "startDate": { + "type": "string", + "format": "date-time", + "title": "Start Date", + "description": "Committee - Start Date." + }, + "endDate": { + "type": "string", + "format": "date-time", + "title": "Committee End Date", + "description": "Committee - End Date." + }, + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Committee - Show In Directory." + }, + "term": { + "type": "object", + "description": "Committee - Term.", + "properties": { + "term": { + "type": "integer", + "title": "Term", + "description": "Committee - Term - Term Number." + }, + "startDate": { + "type": "string", + "format": "date-time", + "title": "Start Date", + "description": "Committee - Term - Start Date." + }, + "endDate": { + "type": "string", + "format": "date-time", + "title": "End Date", + "description": "Committee - Term - End Date." + }, + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Committee - Term - Show In Directory." + } + } + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Committee - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Committee - Tags - Tag." + } + } + } + }, + "position": { + "type": "string", + "description": "Position.", + "title": "Position" + }, + "positionCode": { + "type": "string", + "description": "Position Code.", + "title": "Position Code" + }, + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + } + } + }, + "CustomFieldData": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Value.", + "title": "Value" + } + } + }, + "MembershipData": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Membership Type ID.", + "title": "Membership Type ID" + }, + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Inherited Membership Benefits.", + "title": "Inherited Membership Benefits", + "enum": [ + true, + false + ] + }, + "renewalUrl": { + "type": "string", + "description": "Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Effective Date.", + "title": "Effective Date" + }, + "membershipUniqueId": { + "type": "string", + "description": "Membership Unique ID.", + "title": "Membership Unique ID" + }, + "termsList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "startDate": { + "type": "string", + "description": "Terms - Start Date", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "Terms - End Date", + "title": "End Date" + } + } + }, + "description": "Terms List" + } + } + }, + "EventData": { + "type": "object", + "properties": { + "eventId": { + "type": "string", + "description": "Event ID.", + "title": "Event ID" + }, + "eventCode": { + "type": "string", + "description": "Event Code.", + "title": "Event Code" + }, + "eventName": { + "type": "string", + "description": "Event Name.", + "title": "Event Name" + }, + "eventStartDate": { + "type": "string", + "description": "Event Start Date.", + "title": "Event Start Date" + }, + "eventStartTime": { + "type": "string", + "description": "Event Start Time.", + "title": "Event Start Time" + }, + "eventEndDate": { + "type": "string", + "description": "Event End Date.", + "title": "Event End Date" + }, + "eventEndTime": { + "type": "string", + "description": "Event End Time.", + "title": "Event End Time" + }, + "eventTimezone": { + "type": "string", + "description": "Event Time Zone.", + "title": "Event Time Zone" + }, + "eventDescription": { + "type": "string", + "description": "Event Description.", + "title": "Event Description" + }, + "shortDescription": { + "type": "string", + "description": "Short Description.", + "title": "Short Description" + }, + "publicEvent": { + "type": "boolean", + "description": "Public Event.", + "title": "Public Event", + "enum": [ + true, + false + ] + }, + "imageUrl": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Image Url." + }, + "externalUrl": { + "type": "string", + "description": "External Url.", + "title": "External Url" + }, + "externalCode": { + "type": "string", + "description": "External Code.", + "title": "External Code" + }, + "eventLocations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Event Locations - Name.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "Event Locations - Description.", + "title": "Description" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - ID.", + "title": "ID" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Primary.", + "title": "Primary" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Line 3" }, - "category": { + "city": { "type": "string", - "description": "Nominated By Customer - Category.", - "title": "Category" + "description": "Addresses - City.", + "title": "City" }, - "categories": { - "type": "array", - "description": "Nominated By Customer - Categories.", - "items": { - "type": "object", - "description": "Nominated By Customer - Categories - Item.", - "properties": { - "subCategories": { - "type": "array", - "description": "Nominated By Customer - Categories - Subcategories.", - "items": { - "type": "object", - "description": "Nominated By Customer - Categories - Subcategories - Item.", - "properties": { - "code": { - "type": "string", - "description": "Nominated By Customer - Categories - Subcategories - Code.", - "title": "Code" - }, - "name": { - "type": "string", - "description": "Nominated By Customer - Categories - Subcategories - Name.", - "title": "Name" - } - } - } - }, - "code": { - "type": "string", - "description": "Nominated By Customer - Categories - Code.", - "title": "Code" - }, - "name": { - "type": "string", - "description": "Nominated By Customer - Categories - Name.", - "title": "Name" - } - } - } + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" }, - "customFields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Nominated By Customer - Custom Fields - Name.", - "title": "Name" - }, - "caption": { - "type": "string", - "description": "Nominated By Customer - Custom Fields - Caption.", - "title": "Caption" - }, - "value": { - "type": "string", - "description": "Nominated By Customer - Custom Fields - Value.", - "title": "Value" - } - } - } + "zipcode": { + "type": "string", + "description": "Addresses - Zipcode.", + "title": "Zipcode" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "format": "float", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "format": "float", + "description": "Addresses - Longitude.", + "title": "Longitude" }, "showInDirectory": { "type": "boolean", - "description": "Nominated By Customer - Show In Directory.", + "description": "Addresses - Show In Directory.", "title": "Show In Directory" }, - "links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Nominated By Customer - Links - Type.", - "title": "Type" - }, - "url": { - "type": "string", - "description": "Nominated By Customer - Links - URL.", - "title": "URL" - } - } - } - }, - "oldId": { + "congressionalDistrict": { "type": "string", - "description": "Nominated By Customer - Old Id.", - "title": "Old Id" - } - } - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Addresses - Address Id.", - "title": "Address Id" - }, - "primary": { - "type": "boolean", - "description": "Addresses - Is Primary.", - "title": "Is Primary Address" - }, - "line1": { - "type": "string", - "description": "Addresses - Line 1.", - "title": "Address Line 1" - }, - "line2": { - "type": "string", - "description": "Addresses - Line 2.", - "title": "Address Line 2" - }, - "line3": { - "type": "string", - "description": "Addresses - Line 3.", - "title": "Address Line 3" - }, - "city": { - "type": "string", - "description": "Addresses - City.", - "title": "City" - }, - "state": { - "type": "string", - "description": "Addresses - State.", - "title": "State" - }, - "zipcode": { - "type": "string", - "description": "Addresses - Zip Code.", - "title": "Zip Code" - }, - "country": { - "type": "string", - "description": "Addresses - Country.", - "title": "Country" - }, - "stateAbbreviation": { - "type": "string", - "description": "Addresses - State Abbreviation.", - "title": "State Abbreviation" - }, - "stateISOCode": { - "type": "string", - "description": "Addresses - State ISO Code.", - "title": "State ISO Code" - }, - "type": { - "type": "string", - "description": "Addresses - Type.", - "title": "Type" - }, - "region": { - "type": "string", - "description": "Addresses - Region.", - "title": "Region" - }, - "latitude": { - "type": "number", - "description": "Addresses - Latitude.", - "title": "Latitude" - }, - "longitude": { - "type": "number", - "description": "Addresses - Longitude.", - "title": "Longitude" - }, - "showInDirectory": { - "type": "boolean", - "description": "Addresses - Show In Directory.", - "title": "Show In Directory" - }, - "congressionalDistrict": { - "type": "string", - "description": "Addresses - Congressional District.", - "title": "Congressional District" - }, - "countryData": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Addresses - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Addresses - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Addresses - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Addresses - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Addresses - Country - Country Code.", - "title": "Country Code" - } + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Country - ID.", + "title": "ID" + }, + "name": { + "type": "string", + "description": "Country - Name.", + "title": "Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Country - Two Letter Iso Code.", + "title": "Two Letter Iso Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Country - Three Letter Iso Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "format": "int32", + "description": "Country - Code.", + "title": "Code" } - } + }, + "description": "Country Data.", + "title": "Country Data" + }, + "isPreferredShipping": { + "type": "boolean", + "description": "Addresses - Is Preferred Shipping.", + "title": "Is Preferred Shipping" + }, + "isPreferredBilling": { + "type": "boolean", + "description": "Addresses - Is Preferred Billing.", + "title": "Is Preferred Billing" + }, + "isBadAddress": { + "type": "boolean", + "description": "Addresses - Is Bad Address.", + "title": "Is Bad Address" } } }, - "phones": { - "type": "array", - "items": { + "description": "Event Locations - Addresses.", + "title": "Addresses" + } + } + }, + "description": "Event Locations.", + "title": "Event Locations" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "string", + "description": "Subcategories - Subcategories.", + "title": "Sub Categories" + }, + "code": { + "type": "string", + "description": "Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Subcategories - Name.", + "title": "Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Subcoategories - Is Primary.", + "title": "Is Primary" + } + } + }, + "description": "Event Locations - Subcategories." + }, + "code": { + "type": "string", + "description": "Categories - Code", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Categories - Name", + "title": "Name" + }, + "isPrimary": { + "type": "boolean", + "description": "Categories - Is Primary.", + "title": "Is Primary" + } + } + }, + "description": "Event Locations - Categories.", + "title": "Categories" + }, + "educationCredits": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Education Credits - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Education Credits - Name.", + "title": "Name" + }, + "shortDescription": { + "type": "string", + "description": "Education Credits - Short Description.", + "title": "Short Description" + }, + "credits": { + "type": "integer", + "format": "int32", + "description": "Education Credits - Credits.", + "title": "Credits" + } + } + }, + "description": "Event Locations - Education Credits.", + "title": "Education Credits" + }, + "uploadsData": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "Uploads - Title.", + "title": "Title" + }, + "documentType": { + "type": "string", + "description": "Uploads - Document Type.", + "title": "Document Type" + }, + "description": { + "type": "string", + "description": "Uploads - Description.", + "title": "Description" + }, + "extension": { + "type": "string", + "description": "Uploads - Extension.", + "title": "Extension" + }, + "url": { + "type": "string", + "description": "Uploads - Url.", + "title": "Url" + } + } + }, + "description": "Event Locations - Uploads Data", + "title": "Uploads Data" + }, + "relatedProducts": { + "type": "array", + "items": { + "type": "object", + "properties": { + "isRequired": { + "type": "boolean", + "description": "Related Products - Is Required.", + "title": "Is Required" + }, + "id": { + "type": "string", + "description": "Related Products - ID.", + "title": "ID" + }, + "code": { + "type": "string", + "description": "Related Products - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Related Products - Name.", + "title": "Name" + }, + "shortDescription": { + "type": "string", + "description": "Related Products - Short Description.", + "title": "Short Description" + }, + "longDescription": { + "type": "string", + "description": "Related Products - Long Description.", + "title": "Long Description" + }, + "type": { + "type": "string", + "description": "Related Products - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Related Products - Url.", + "title": "Url" + }, + "imageUrl": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Related Products - Image Url.", + "title": "Image Url" + }, + "isPublic": { + "type": "boolean", + "description": "Related Products - Is Public.", + "title": "Is Public" + }, + "availableFrom": { + "type": "string", + "description": "Related Products - Available From.", + "title": "Available From" + }, + "availableUntil": { + "type": "string", + "description": "Related Products - Available Until.", + "title": "Available Until" + } + } + }, + "description": "Event Locations - Related Products.", + "title": "Related Products" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Event Locations - Tags", + "title": "Tags" + } + } + }, + "PhoneSaveData": { + "type": "object", + "properties": { + "countryName": { + "type": "string", + "description": "Country Name.", + "title": "Country Name" + }, + "primary": { + "type": "boolean", + "description": "Primary.", + "title": "Primary", + "enum": [ + true, + false + ] + }, + "showInDirectory": { + "type": "boolean", + "description": "Show in Directory.", + "title": "Show in Directory", + "enum": [ + true, + false + ] + }, + "number": { + "type": "string", + "description": "Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name", + "enum": [ + "Home", + "Work", + "Mobile", + "Fax", + "TollFree", + "Other", + "Main" + ] + } + }, + "required": [ + "countryName", + "number", + "typeName" + ] + }, + "PhoneDataSet": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "Phone ID" + }, + "primary": { + "type": "boolean", + "description": "Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Country - Country ID.", + "title": "Country ID" + }, + "name": { + "type": "string", + "description": "Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Type Name.", + "title": "Type Name" + } + } + }, + "EmailData": { + "type": "object", + "description": "Email Data.", + "properties": { + "primary": { + "type": "boolean", + "description": "Is Primary Email.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory" + } + } + }, + "AddressSaveData": { + "type": "object", + "description": "Address Save Data.", + "properties": { + "id": { + "type": "string", + "description": "ID.", + "title": "ID" + }, + "primary": { + "type": "boolean", + "description": "Primary.", + "title": "Primary", + "enum": [ + true, + false + ] + }, + "line1": { + "type": "string", + "description": "Line 1.", + "title": "Line 1" + }, + "line2": { + "type": "string", + "description": "Line 2.", + "title": "Line 2" + }, + "line3": { + "type": "string", + "description": "Line 3.", + "title": "Line 3" + }, + "city": { + "type": "string", + "description": "City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Zipcode.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Country.", + "title": "Country" + }, + "type": { + "type": "string", + "description": "Type.", + "title": "Type", + "enum": [ + "Home", + "Work", + "Other" + ] + }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory", + "enum": [ + true, + false + ] + }, + "isPreferredShipping": { + "type": "boolean", + "description": "Is Preferred Shipping.", + "title": "Is Preferred Shipping", + "enum": [ + true, + false + ] + }, + "isPreferredBilling": { + "type": "boolean", + "description": "Is Preferred Billing.", + "title": "Is Preferred Billing", + "enum": [ + true, + false + ] + }, + "isBadAddress": { + "type": "boolean", + "description": "Is Bad Address.", + "title": "Is Bad Address", + "enum": [ + true, + false + ] + } + } + }, + "CommitteeMemberDetailData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Member Id.", + "title": "Member Id" + }, + "firstName": { + "type": "string", + "description": "First Name.", + "title": "First Name" + }, + "lastName": { + "type": "string", + "description": "Last Name.", + "title": "Last Name" + }, + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "recordNumber": { + "type": "string", + "description": "Record Number.", + "title": "Record Number" + }, + "position": { + "type": "string", + "description": "Position.", + "title": "Position" + }, + "positionCode": { + "type": "string", + "description": "Position Code.", + "title": "Position Code" + }, + "startDate": { + "type": "string", + "description": "Start Date.", + "title": "Start Date" + }, + "endDate": { + "type": "string", + "description": "End Date.", + "title": "End Date" + }, + "primaryOrganization": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "Contact Ids", + "description": "Primary Organization - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Primary Organization - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Primary Organization - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Primary Organization - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Primary Organization - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Primary Organization - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Primary Organization - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Primary Organization - Id.", + "title": "Primary Organization Id" + }, + "customerType": { + "type": "string", + "description": "Primary Organization - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Primary Organization - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Primary Organization - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Primary Organization - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Primary Organization - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Primary Organization - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Primary Organization - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Primary Organization - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Primary Organization - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Primary Organization - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Primary Organization - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Primary Organization - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Primary Organization - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Primary Organization - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Primary Organization - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Primary Organization - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Primary Organization - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Primary Organization - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { "type": "object", "properties": { "id": { "type": "string", - "description": "Phones - Id.", - "title": "Phone Id" - }, - "primary": { - "type": "boolean", - "description": "Phones - Is Primary.", - "title": "Is Primary Phone" - }, - "type": { - "type": "integer", - "description": "Phones - Type.", - "title": "Type" - }, - "country": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Phones - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Phones - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Phones - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Phones - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Phones - Country - Country Code.", - "title": "Country Code" - } - } - }, - "showInDirectory": { - "type": "boolean", - "description": "Phones - Show In Directory.", - "title": "Show In Directory" - }, - "number": { - "type": "string", - "description": "Phones - Number.", - "title": "Number" - }, - "extension": { - "type": "string", - "description": "Phones - Extension.", - "title": "Extension" + "description": "Primary Organization - Addresses - Country - Country Id.", + "title": "Country Id" }, - "typeName": { + "name": { "type": "string", - "description": "Phones - Type Name.", - "title": "Type Name" - } - } - } - }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "primary": { - "type": "boolean", - "description": "Emails - Is Primary.", - "title": "Is Primary Email" + "description": "Primary Organization - Addresses - Country - Country Name.", + "title": "Country Name" }, - "address": { + "twoLetterIsoCode": { "type": "string", - "description": "Emails - Address.", - "title": "Address" + "description": "Primary Organization - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" }, - "type": { + "threeLetterIsoCode": { "type": "string", - "description": "Emails - Type.", - "title": "Type" + "description": "Primary Organization - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" }, - "showInDirectory": { - "type": "boolean", - "description": "Emails - Show In Directory.", - "title": "Show In Directory" + "code": { + "type": "integer", + "description": "Primary Organization - Addresses - Country - Country Code.", + "title": "Country Code" } } } - }, - "rank": { - "type": "integer", - "description": "Rank.", - "title": "Rank" } } - } - } - }, - "summary": "Add Individual to Committee", - "description": "Add Individual to Committee.", - "operationId": "Add-To-Committee", - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "type": "string", - "description": "Committee Code.", - "x-ms-summary": "Committee Code", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "description": "Committee Member Data.", - "required": true, - "schema": { - "$ref": "#/definitions/CommitteeMemberCreateData" - } - } - ] - } - }, - "/api/v1/Committees/{code}/Members/{memberRecordNumber}/{currentPositionCode}": { - "put": { - "tags": ["Committee"], - "summary": "Update Committee Member", - "description": "Update Committee Member.", - "operationId": "Update-Committee-Member", - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "type": "string", - "description": "Committee Code.", - "x-ms-summary": "Committee Code", - "x-ms-url-encoding": "single" - }, - { - "name": "memberRecordNumber", - "in": "path", - "required": true, - "type": "string", - "description": "Member Record Number.", - "x-ms-summary": "Member Record Number", - "x-ms-url-encoding": "single" - }, - { - "name": "currentPositionCode", - "in": "path", - "required": true, - "type": "string", - "description": "Current Position Code.", - "x-ms-summary": "Current Position Code", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/CommitteeMemberUpdateData" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": {} - } - } - } - }, - "/api/v1/Organizations": { - "post": { - "tags": ["Organization"], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/OrganizationData" - } - } - }, - "summary": "Add Organization", - "description": "Add Organization.", - "operationId": "Add-Organization", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id.", - "title": "Id", - "x-ms-visibility": "internal" - }, - "name": { - "type": "string", - "description": "Name.", - "title": "Name" - }, - "showInDirectory": { - "type": "boolean", - "description": "Show In Directory.", - "title": "Show In Directory", - "x-ms-visibility": "internal", - "enum": [true, false], - "default": false - }, - "branchName": { - "type": "string", - "description": "Branch Name.", - "title": "Branch Name", - "x-ms-visibility": "advanced" - }, - "website": { - "type": "string", - "description": "Website.", - "title": "Website", - "x-ms-visibility": "advanced" + }, + "email": { + "type": "string", + "description": "Primary Organization - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Primary Organization - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Primary Organization - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Primary Organization - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Primary Organization - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Primary Organization - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Primary Organization - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Primary Organization - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Primary Organization - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Primary Organization - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Primary Organization - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Primary Organization - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Primary Organization - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Primary Organization - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Primary Organization - Phones - Type Name.", + "title": "Type Name" + } } - }, - "required": ["name", "showInDirectory"] - } - } - ] - } - }, - "/api/v1/Organizations/{id}": { - "put": { - "tags": ["Organization"], - "responses": { - "200": { - "description": "Success", - "schema": { - "$ref": "#/definitions/OrganizationData" - } - } - }, - "summary": "Update Organization", - "description": "Update Organization.", - "operationId": "Update-Organization", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "format": "uuid", - "description": "Organization Id.", - "x-ms-summary": "Organization Id", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name.", - "title": "Name" - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description" - }, - "showInDirectory": { - "type": "boolean", - "description": "Show In Directory.", - "title": "Show In Directory", - "enum": [true, false], - "x-ms-visibility": "advanced" - }, - "branchName": { - "type": "string", - "description": "Branch Name.", - "title": "Branch Name" - }, - "website": { - "type": "string", - "description": "Website.", - "title": "Website" + } + }, + "webSite": { + "type": "string", + "description": "Primary Organization - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Primary Organization - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Primary Organization - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Primary Organization - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Primary Organization - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Primary Organization - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Primary Organization - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Primary Organization - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Primary Organization - Memberships - Effective Date.", + "title": "Effective Date" + } } } + }, + "category": { + "type": "string", + "description": "Primary Organization - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "subCategories": { + "type": "array", + "description": "Primary Organization - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Primary Organization - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Subcategories - Name.", + "title": "Name" + } + } + } + }, + "code": { + "type": "string", + "description": "Primary Organization - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Primary Organization - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Primary Organization - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Primary Organization - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Primary Organization - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Primary Organization - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Primary Organization - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Primary Organization - Old Id.", + "title": "Old Id" } } - ] - } - }, - "/api/v1/Organizations/Profile/{idOrRecordnumber}/{pageNumber}": { - "get": { - "tags": ["Organization"], - "summary": "Find Organization by Id or Record Number", - "description": "Get organization's profile information by ID or Record Number", - "operationId": "Organization-Get-Profile", - "parameters": [ - { - "name": "idOrRecordnumber", - "in": "path", - "required": true, - "type": "string", - "description": "Organization Id or Record Number.", - "x-ms-summary": "Id or Record Number", - "x-ms-url-encoding": "single" - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "type": "integer", - "default": 1, - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, - { - "name": "includeDescription", - "in": "query", - "required": true, - "type": "string", - "default": "True", - "x-ms-visibility": "internal" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/OrganizationData" - } - } - } - } - }, - "/api/v1/Organizations/{id}/Notes": { - "post": { - "tags": ["Organization"], - "summary": "Add Note to Organization", - "description": "Add a Note to an Organization.", - "operationId": "Organization-AddNote", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "description": "Organization Id.", - "x-ms-summary": "Organization Id", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "note", - "in": "body", - "x-ms-summary": "Note Data", - "description": "Note Data.", - "required": true, - "schema": { - "$ref": "#/definitions/NoteData" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": {} - } - } - } - }, - "/api/v1/Organizations/Lookup/{pageNumber}": { - "get": { - "tags": ["Organization"], - "summary": "Lookup Organizations", - "description": "Lookup Organizations by Name or Acronym", - "operationId": "Organization-LookupByName", - "parameters": [ - { - "name": "name", - "in": "query", - "required": true, - "type": "string", - "description": "Name or Acronym.", - "x-ms-summary": "Lookup value" - }, - { - "name": "includeAddresses", - "in": "query", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "pageNumber", - "in": "path", - "required": true, - "type": "integer", - "default": 1, - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "pageNumber": { - "type": "integer", - "format": "int32", - "title": "Page Number", - "description": "Page Number." - }, - "dataList": { - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationLookupBasicData" + }, + "organizationRepresenting": { + "type": "object", + "properties": { + "contactIds": { + "type": "array", + "x-ms-summary": "ContactIds", + "description": "Organization Representing - Contact Ids.", + "items": { + "type": "string", + "format": "uuid", + "title": "Contact Id", + "description": "Organization Representing - Contact Ids - Contact Id." + } + }, + "parentCompanyId": { + "type": "string", + "description": "Organization Representing - Parent Company Id.", + "title": "Parent Company Id" + }, + "description": { + "type": "string", + "description": "Organization Representing - Description.", + "title": "Description" + }, + "branchName": { + "type": "string", + "description": "Organization Representing - Branch Name.", + "title": "Branch Name" + }, + "tags": { + "type": "array", + "x-ms-summary": "Tags", + "description": "Organization Representing - Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Organization Representing - Tags - Tag." + } + }, + "id": { + "type": "string", + "description": "Organization Representing - Organization Representing Id.", + "title": "Representing Organization Id" + }, + "customerType": { + "type": "string", + "description": "Organization Representing - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Organization Representing - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Organization Representing - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Organization Representing - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Organization Representing - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Organization Representing - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Organization Representing - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Organization Representing - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Organization Representing - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Organization Representing - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Organization Representing - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Organization Representing - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Organization Representing - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Organization Representing - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Organization Representing - Addresses - Region.", + "title": "Region" }, - "description": "Data List." - } - } - } - } - } - } - }, - "/api/v1/Setup/customfields/1": { - "get": { - "tags": ["Setup"], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "pageNumber": { - "type": "integer", - "format": "int32", - "description": "Page Number." - }, - "dataList": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Name." - }, - "caption": { - "type": "string", - "description": "Caption." - }, - "description": { - "type": "string", - "description": "Description." - }, - "dataType": { - "type": "string", - "description": "Data Type." - }, - "inputType": { - "type": "string", - "description": "Input Type." - }, - "availableValues": { - "type": "array", - "items": {}, - "description": "Available Values." - } - } + "latitude": { + "type": "number", + "description": "Organization Representing - Addresses - Latitude.", + "title": "Latitude" }, - "description": "Data List." - } - } - } - } - }, - "x-ms-visibility": "internal", - "summary": "List of all custom fields", - "description": "List of all custom fields.", - "operationId": "List-of-all-custom-fields", - "parameters": [ - { - "name": "Content-type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ] - } - }, - "/api/v1/Customers/{pageNumber}": { - "get": { - "tags": ["Customer"], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "pageNumber": { - "type": "integer", - "description": "Page Number.", - "title": "Page Number" - }, - "dataList": { - "type": "array", - "items": { + "longitude": { + "type": "number", + "description": "Organization Representing - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Organization Representing - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { "type": "object", "properties": { - "fullName": { - "type": "string", - "description": "Full Name.", - "title": "Full Name" - }, - "id": { - "type": "string", - "description": "Customer Id.", - "title": "Customer Id" - }, - "customerType": { - "type": "string", - "description": "Customer Type.", - "title": "Customer Type" - }, - "recordNumber": { - "type": "string", - "description": "Record Number.", - "title": "Record Number" - }, - "showInDirectory": { - "type": "boolean", - "description": "Show In Directory.", - "title": "Show In Directory" - }, - "addresses": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Addresses - Address Id.", - "title": "Address Id" - }, - "primary": { - "type": "boolean", - "description": "Addresses - Is Primary.", - "title": "Is Primary Address" - }, - "line1": { - "type": "string", - "description": "Addresses - Line 1.", - "title": "Address Line 1" - }, - "line2": { - "type": "string", - "description": "Addresses - Line 2.", - "title": "Address Line 2" - }, - "line3": { - "type": "string", - "description": "Addresses - Line 3.", - "title": "Address Line 3" - }, - "city": { - "type": "string", - "description": "Addresses - City.", - "title": "City" - }, - "state": { - "type": "string", - "description": "Addresses - State.", - "title": "State" - }, - "zipcode": { - "type": "string", - "description": "Addresses - Zip Code.", - "title": "Zip Code" - }, - "country": { - "type": "string", - "description": "Addresses - Country.", - "title": "Country" - }, - "stateAbbreviation": { - "type": "string", - "description": "Addresses - State Abbreviation.", - "title": "State Abbreviation" - }, - "stateISOCode": { - "type": "string", - "description": "Addresses - State ISO Code.", - "title": "State ISO Code" - }, - "type": { - "type": "string", - "description": "Addresses - Type.", - "title": "Type" - }, - "region": { - "type": "string", - "description": "Addresses - Region.", - "title": "Region" - }, - "latitude": { - "type": "number", - "description": "Addresses - Latitude.", - "title": "Latitude" - }, - "longitude": { - "type": "number", - "description": "Addresses - Longitude.", - "title": "Longitude" - }, - "showInDirectory": { - "type": "boolean", - "description": "Addresses - Show In Directory.", - "title": "Show In Directory" - }, - "congressionalDistrict": { - "type": "string", - "description": "Addresses - Congressional District.", - "title": "Congressional District" - }, - "countryData": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Addresses - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Addresses - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Addresses - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Addresses - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Addresses - Country - Country Code.", - "title": "Country Code" - } - } - } - } - } + "id": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Id.", + "title": "Country Id" }, - "emails": { - "type": "array", - "items": { - "type": "object", - "properties": { - "primary": { - "type": "boolean", - "description": "Emails - Is Primary.", - "title": "Is Primary Email" - }, - "address": { - "type": "string", - "description": "Emails - Address.", - "title": "Address" - }, - "type": { - "type": "string", - "description": "Emails - Type.", - "title": "Type" - }, - "showInDirectory": { - "type": "boolean", - "description": "Emails - Show In Directory.", - "title": "Show In Directory" - } - } - } + "name": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Country Name.", + "title": "Country Name" }, - "phones": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Phones - Id.", - "title": "Phone Id" - }, - "primary": { - "type": "boolean", - "description": "Phones - Is Primary.", - "title": "Is Primary Phone" - }, - "type": { - "type": "integer", - "description": "Phones - Type.", - "title": "Type" - }, - "country": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Phones - Country - Country Id.", - "title": "Country Id" - }, - "name": { - "type": "string", - "description": "Phones - Country - Country Name.", - "title": "Country Name" - }, - "twoLetterIsoCode": { - "type": "string", - "description": "Phones - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" - }, - "threeLetterIsoCode": { - "type": "string", - "description": "Phones - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" - }, - "code": { - "type": "integer", - "description": "Phones - Country - Country Code.", - "title": "Country Code" - } - } - }, - "showInDirectory": { - "type": "boolean", - "description": "Phones - Show In Directory.", - "title": "Show In Directory" - }, - "number": { - "type": "string", - "description": "Phones - Number.", - "title": "Number" - }, - "extension": { - "type": "string", - "description": "Phones - Extension.", - "title": "Extension" - }, - "typeName": { - "type": "string", - "description": "Phones - Type Name.", - "title": "Type Name" - } - } + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Organization Representing - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Organization Representing - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Organization Representing - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Organization Representing - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Organization Representing - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Organization Representing - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Organization Representing - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Organization Representing - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Organization Representing - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Organization Representing - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Organization Representing - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Organization Representing - Phones - Country - Country Code.", + "title": "Country Code" + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Organization Representing - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Organization Representing - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Organization Representing - Phones - Type Name.", + "title": "Type Name" + } + } + } + }, + "webSite": { + "type": "string", + "description": "Organization Representing - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type.", + "title": "Membership Type" + }, + "membershipTypeId": { + "type": "string", + "description": "Organization Representing - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Organization Representing - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Organization Representing - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Organization Representing - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Organization Representing - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Organization Representing - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Organization Representing - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Organization Representing - Memberships - Effective Date.", + "title": "Effective Date" + } + } + } + }, + "category": { + "type": "string", + "description": "Organization Representing - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Organization Representing - Categories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Organization Representing - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Organization Representing - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Subcategories - Name.", + "title": "Name" } } } + }, + "code": { + "type": "string", + "description": "Organization Representing - Categories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Organization Representing - Categories - Name.", + "title": "Name" + } + } + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Organization Representing - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Organization Representing - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Organization Representing - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Organization Representing - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Organization Representing - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Organization Representing - Links - URL.", + "title": "URL" } } } + }, + "oldId": { + "type": "string", + "description": "Organization Representing - Old Id.", + "title": "Old Id" } } }, - "summary": "Find Customer by Phone Number", - "description": "Find Customer by Phone Number.", - "operationId": "Find-Customer-Phone", - "parameters": [ - { - "name": "pageNumber", - "in": "path", - "required": true, - "type": "string", - "default": "1", - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, - { - "name": "phoneNumber", - "in": "query", - "required": true, - "type": "string", - "description": "Phone Number.", - "x-ms-summary": "Phone Number" - }, - { - "name": "includeAddress", - "in": "query", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "includePhone", - "in": "query", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "includeEmail", - "in": "query", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ] - } - }, - "/api/v1/Events/Registrants/{recordNumber}/Attended": { - "put": { - "tags": ["Events"], - "summary": "Mark Registrant as Attended", - "description": "Mark the Registrant as Attended for the specified Events.", - "operationId": "Mark-Registrant-Attended", - "parameters": [ - { - "name": "recordNumber", - "in": "path", - "required": true, - "type": "string", - "description": "Record Number.", - "x-ms-summary": "Record Number", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "x-ms-summary": "Data List", - "required": true, - "schema": { + "nominatedByCustomer": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Nominated By Customer Id.", + "title": "Nominated By Customer Id" + }, + "customerType": { + "type": "string", + "description": "Nominated By Customer - Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Nominated By Customer - Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Nominated By Customer - Title.", + "title": "Title" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Name.", + "title": "Name" + }, + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Nominated By Customer - Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Nominated By Customer - Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Nominated By Customer - Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Nominated By Customer - Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Nominated By Customer - Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Nominated By Customer - Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Nominated By Customer - Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Nominated By Customer - Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Nominated By Customer - Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Nominated By Customer - Addresses - Country - Country Code.", + "title": "Country Code" + } + } + } + } + } + }, + "email": { + "type": "string", + "description": "Nominated By Customer - Email.", + "title": "Email" + }, + "imageUri": { + "type": "string", + "description": "Nominated By Customer - Image URI.", + "title": "Image URI" + }, + "twitter": { + "type": "string", + "description": "Nominated By Customer - Twitter.", + "title": "Twitter" + }, + "linkedIn": { + "type": "string", + "description": "Nominated By Customer - LinkedIn.", + "title": "LinkedIn" + }, + "emails": { "type": "array", "items": { "type": "object", "properties": { - "eventOrSessionCode": { + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { "type": "string", - "description": "Event or Session Code.", - "title": "Code" + "description": "Nominated By Customer - Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Nominated By Customer - Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Emails - Show In Directory.", + "title": "Show In Directory" } - }, - "required": ["eventOrSessionCode"] + } } - } - } - ], - "responses": { - "200": { "description": "OK", "schema": {} } - } - } - }, - "/api/v1/Awards/{id}/Nominations": { - "post": { - "tags": ["Awards"], - "summary": "Add Award Nomination", - "description": "Add a new Award Nomination.", - "operationId": "Awards-AddAwardNomination", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "description": "Award Id.", - "x-ms-summary": "Award Id", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "awardNominationData", - "in": "body", - "description": "", - "required": true, - "schema": { - "$ref": "#/definitions/AwardNominationData" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": {} - } - } - } - }, - "/api/v1/Awards/{id}/Nominations/{nomineeRecordNumber}": { - "put": { - "tags": ["Awards"], - "summary": "Update Award Nomination", - "description": "Update an existing Award Nomination.", - "operationId": "Awards-UpdateAwardNomination", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "description": "Award Id.", - "x-ms-summary": "Award Id", - "x-ms-url-encoding": "single" - }, - { - "name": "nomineeRecordNumber", - "in": "path", - "required": true, - "type": "string", - "description": "Nominee Record Number.", - "x-ms-summary": "Nominee Record Number", - "x-ms-url-encoding": "single" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "awardNominationData", - "in": "body", - "description": "", - "required": true, - "schema": { - "$ref": "#/definitions/UpdateAwardNominationData" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": {} - } - } - } - }, - "/api/v1/Awards/{id}/Recipients/Individuals/{pageNumber}": { - "get": { - "tags": ["Awards"], - "summary": "List Award Individual Recipients", - "description": "List all Individuals that are Award Recipients.", - "operationId": "Awards-GetIndividualAwardRecipients", - "parameters": [ - { - "name": "pageNumber", - "in": "path", - "description": "", - "required": true, - "type": "integer", - "format": "int32", - "default": "1", - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "description": "Award Id.", - "x-ms-summary": "Award Id", - "x-ms-url-encoding": "single" - }, - { - "name": "includeDetails", - "in": "query", - "description": "", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "pageNumber": { - "type": "integer", - "format": "int32", - "title": "Page Number", - "description": "Page Number." - }, - "dataList": { - "type": "array", - "items": { - "$ref": "#/definitions/AwardRecipientIndividualData" + }, + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Nominated By Customer - Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Nominated By Customer - Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Country Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Nominated By Customer - Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Nominated By Customer - Phones - Country - Country Code.", + "title": "Country Code" + } + } }, - "description": "Data List." + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Nominated By Customer - Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Nominated By Customer - Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Nominated By Customer - Phones - Type Name.", + "title": "Type Name" + } } } - } - } - } - } - }, - "/api/v1/Awards/{id}/Recipients/Organizations/{pageNumber}": { - "get": { - "tags": ["Awards"], - "summary": "List Award Organization Recipients", - "description": "List all Organizations that are Award Recipients.", - "operationId": "Awards-GetOrganizationAwardRecipients", - "parameters": [ - { - "name": "pageNumber", - "in": "path", - "description": "", - "required": true, - "type": "integer", - "format": "int32", - "default": "1", - "x-ms-visibility": "internal", - "x-ms-url-encoding": "single" - }, - { - "name": "id", - "in": "path", - "required": true, - "type": "string", - "description": "Award Id.", - "x-ms-summary": "Award Id", - "x-ms-url-encoding": "single" - }, - { - "name": "includeDetails", - "in": "query", - "description": "", - "required": true, - "type": "boolean", - "default": true, - "x-ms-visibility": "internal" - }, - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - } - ], - "responses": { - "200": { - "description": "Success", - "schema": { - "type": "object", - "properties": { - "pageNumber": { - "type": "integer", - "format": "int32", - "title": "Page Number", - "description": "Page Number." - }, - "dataList": { - "type": "array", - "items": { - "$ref": "#/definitions/AwardRecipientOrganizationData" + }, + "webSite": { + "type": "string", + "description": "Nominated By Customer - Website.", + "title": "Website" + }, + "memberships": { + "type": "array", + "items": { + "type": "object", + "properties": { + "membershipType": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type.", + "title": "Membership Type" }, - "description": "Data List." + "membershipTypeId": { + "type": "string", + "description": "Nominated By Customer - Memberships - Membership Type Id.", + "title": "Membership Type Id" + }, + "code": { + "type": "string", + "description": "Nominated By Customer - Memberships - Code.", + "title": "Code" + }, + "expireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Expire Date.", + "title": "Expire Date" + }, + "graceExpireDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Grace Expire Date.", + "title": "Grace Expire Date" + }, + "inheritedMembershipBenefits": { + "type": "boolean", + "description": "Nominated By Customer - Memberships - Inherited Membership Benefits.", + "title": "Inherited Membership Benefits" + }, + "renewalUrl": { + "type": "string", + "description": "Nominated By Customer - Memberships - Renewal URL.", + "title": "Renewal URL" + }, + "joinDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Join Date.", + "title": "Join Date" + }, + "terminateDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Terminate Date.", + "title": "Terminate Date" + }, + "effectiveDate": { + "type": "string", + "description": "Nominated By Customer - Memberships - Effective Date.", + "title": "Effective Date" + } } } - } - } - } - } - }, - "/": { - "x-ms-notification-content": { - "description": "Individual Created.", - "schema": { - "$ref": "#/definitions/IndividualPayload" - } - } - }, - "/api/v1/Webhooks/IndividualCreated": { - "x-ms-notification-content": { - "description": "Individual Added.", - "schema": { - "$ref": "#/definitions/IndividualPayload" - } - }, - "post": { - "tags": ["Webhook", "Individuals"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } - }, - "summary": "When an individual is created", - "description": "Triggers when an individual is created.", - "operationId": "When-Individual-Created", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Individual.Created" - }, - "filters": { - "type": "array", - "items": { + }, + "category": { + "type": "string", + "description": "Nominated By Customer - Category.", + "title": "Category" + }, + "categories": { + "type": "array", + "description": "Nominated By Customer - Categories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Item.", + "properties": { + "subCategories": { + "type": "array", + "description": "Nominated By Customer - Categories - Subcategories.", + "items": { + "type": "object", + "description": "Nominated By Customer - Categories - Subcategories - Item.", + "properties": { + "code": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Subcategories - Name.", + "title": "Name" + } + } + } + }, + "code": { "type": "string", - "title": "Additional Filters", - "x-ms-visibility": "internal", - "default": "NA" + "description": "Nominated By Customer - Categories - Code.", + "title": "Code" }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "x-ms-notification-url": true, - "x-ms-visibility": "internal", - "title": "Callback URL" - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" + "name": { + "type": "string", + "description": "Nominated By Customer - Categories - Name.", + "title": "Name" + } } - }, - "required": [ - "callBackUrl", - "secret", - "typeName", - "description", - "filters" - ] - } - } - ], - "x-ms-visibility": "advanced" - } - }, - "/api/v1/Webhooks/ProductPurchased": { - "x-ms-notification-content": { - "description": "Product Purchased.", - "schema": { - "$ref": "#/definitions/ProductPurchasedPayload" - } - }, - "post": { - "tags": ["Webhook", "Purchase"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } - }, - "summary": "When a product is purchased", - "description": "Triggers when a product is purchased. Supported Product Types: Course, Event (Sessions are included), Exam, Fund, Membership, Merchandise and Publication.", - "operationId": "When-product-purchased", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id.", - "title": "Id", - "x-ms-visibility": "internal" - }, - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Product.Purchased" - }, - "filters": { - "type": "array", - "items": { + } + }, + "customFields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { "type": "string", - "title": "Product Code", - "x-ms-visibility": "advanced", - "description": "This triggers when a product is purchased." + "description": "Nominated By Customer - Custom Fields - Name.", + "title": "Name" }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "title": "Callback URL", - "x-ms-visibility": "internal", - "x-ms-notification-url": true - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" + "caption": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Nominated By Customer - Custom Fields - Value.", + "title": "Value" + } } - }, - "required": [ - "callBackUrl", - "description", - "secret", - "typeName", - "filters" - ] + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Nominated By Customer - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Nominated By Customer - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "description": "Nominated By Customer - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Nominated By Customer - Old Id.", + "title": "Old Id" } } - ] - } - }, - "/api/v1/Webhooks/CommitteeMemberUpdated": { - "x-ms-notification-content": { - "description": "Committee Member Updated.", - "schema": { - "$ref": "#/definitions/CommitteeMemberPayload" - } - }, - "post": { - "tags": ["Webhook", "Committee"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } }, - "summary": "When committee member is updated", - "description": "Triggers when a individual is added, deleted or updated to/from a commiteee.", - "operationId": "When-Committee-Member-Updated", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Individual.CommitteeUpdated" - }, - "filters": { - "type": "array", - "items": { + "addresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Addresses - Address Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "properties": { + "id": { "type": "string", - "title": "Additional Filters", - "x-ms-visibility": "internal", - "default": "NA" + "description": "Addresses - Country - Country Id.", + "title": "Country Id" }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "x-ms-notification-url": true, - "x-ms-visibility": "internal", - "title": "Callback URL" - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" - } - }, - "required": [ - "callBackUrl", - "secret", - "typeName", - "description", - "filters" - ] - } - } - ], - "x-ms-visibility": "advanced" - } - }, - "/api/v1/Webhooks/PurchaseCancelled": { - "x-ms-notification-content": { - "description": "Purchase Canceled.", - "schema": { - "$ref": "#/definitions/PurchaseCancelledPayload" - } - }, - "post": { - "tags": ["Webhook", "Purchase"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } - }, - "summary": "When a purchase is canceled", - "description": "Triggers when a purchase is canceled. Supported Product Types: Course, Event (Sessions are included), Exam, Fund, Membership, Merchandise, Publication.", - "operationId": "When-purchase-cancelled", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Id.", - "title": "Id", - "x-ms-visibility": "internal" - }, - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Purchase.Cancelled" - }, - "filters": { - "type": "array", - "items": { + "name": { "type": "string", - "title": "Product Code", - "x-ms-visibility": "advanced", - "description": "Triggers when a purchase is canceled." + "description": "Addresses - Country - Country Name.", + "title": "Country Name" }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "title": "Callback URL", - "x-ms-visibility": "internal", - "x-ms-notification-url": true - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" + "twoLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Addresses - Country - Country Code.", + "title": "Country Code" + } } - }, - "required": [ - "callBackUrl", - "description", - "secret", - "typeName", - "filters" - ] + } } } - ] - } - }, - "/api/v1/Webhooks/RequestUpdated": { - "x-ms-notification-content": { - "description": "When customer request is updated.", - "schema": { - "$ref": "#/definitions/CustomerRequestPayload" - } - }, - "post": { - "tags": ["Webhook", "Customer"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } }, - "summary": "When customer request is updated", - "description": "Triggers when a customer request is added or closed.", - "operationId": "When-Request-Updated", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Customer.RequestUpdated" - }, - "filters": { - "type": "array", - "items": { + "phones": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "properties": { + "id": { "type": "string", - "title": "Additional Filters", - "x-ms-visibility": "internal", - "default": "NA" + "description": "Phones - Country - Country Id.", + "title": "Country Id" }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "x-ms-notification-url": true, - "x-ms-visibility": "internal", - "title": "Callback URL" - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" + "name": { + "type": "string", + "description": "Phones - Country - Country Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Phones - Country - Country Code.", + "title": "Country Code" + } } }, - "required": [ - "callBackUrl", - "secret", - "typeName", - "description", - "filters" - ] + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" + } } } - ], - "x-ms-visibility": "advanced" - } - }, - "/api/v1/Webhooks/EmailUpdated": { - "x-ms-notification-content": { - "description": "When a customer email is updated.", - "schema": { - "$ref": "#/definitions/EmailPayload" - } - }, - "post": { - "tags": ["Webhook", "Customer"], - "responses": { - "200": { - "description": "Success", - "schema": {} - } }, - "summary": "When customer email is updated", - "description": "Triggers when an email is added/edited or deleted.", - "operationId": "When-Email-Updated", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "typeName": { - "type": "string", - "description": "Type Name.", - "title": "Type Name", - "x-ms-visibility": "internal", - "default": "Customer.EmailUpdated" - }, - "filters": { - "type": "array", - "items": { - "type": "string", - "title": "Additional Filters", - "x-ms-visibility": "internal", - "default": "NA" - }, - "description": "Filters." - }, - "secret": { - "type": "string", - "description": "Secret.", - "title": "Secret", - "x-ms-visibility": "internal", - "default": "Impexium" - }, - "callBackUrl": { - "type": "string", - "description": "Callback URL.", - "x-ms-notification-url": true, - "x-ms-visibility": "internal", - "title": "Callback URL" - }, - "description": { - "type": "string", - "description": "Description.", - "title": "Description", - "x-ms-visibility": "internal", - "default": "Added by Impexium Connector" - } + "emails": { + "type": "array", + "items": { + "type": "object", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Is Primary.", + "title": "Is Primary Email" }, - "required": [ - "callBackUrl", - "secret", - "typeName", - "description", - "filters" - ] + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } } } - ], - "x-ms-visibility": "advanced" + }, + "rank": { + "type": "integer", + "description": "Rank.", + "title": "Rank" + } } - } - }, - "definitions": { + }, "IndividualData": { "type": "object", "properties": { @@ -6772,7 +16630,174 @@ "x-ms-visibility": "internal" } }, - "required": ["recordNumber", "positionCode", "startDate"] + "required": [ + "recordNumber", + "positionCode", + "startDate" + ] + }, + "SubscriptionData": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "expireDate": { + "type": "string", + "description": "Expire Date.", + "title": "Expire Date" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Quantity.", + "title": "Quantity" + } + } + }, + "CommitteePositionData": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Code.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Name.", + "title": "Name" + }, + "term": { + "type": "integer", + "format": "int32", + "description": "Term.", + "title": "Term" + }, + "description": { + "type": "string", + "description": "Description.", + "title": "Description" + }, + "isAdmin": { + "type": "boolean", + "description": "Is Admin.", + "title": "Is Admin", + "enum": [ + true, + false + ] + } + } + }, + "CommitteeData": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "Name." + }, + "code": { + "type": "string", + "title": "Code", + "description": "Code." + }, + "website": { + "type": "string", + "title": "Website", + "description": "Website." + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Id", + "description": "Id." + }, + "parentCommitteeId": { + "type": "string", + "format": "uuid", + "title": "Parent Committee Id", + "description": "Parent Committee Id." + }, + "categoryName": { + "type": "string", + "title": "Category Name", + "description": "Category Name." + }, + "categoryCode": { + "type": "string", + "title": "Category Code", + "description": "Category Code." + }, + "description": { + "type": "string", + "title": "Description", + "description": "Description." + }, + "startDate": { + "type": "string", + "format": "date-time", + "title": "Start Date", + "description": "Start Date." + }, + "endDate": { + "type": "string", + "format": "date-time", + "title": "Committee End Date", + "description": "End Date." + }, + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Show In Directory." + }, + "term": { + "type": "object", + "description": "Term.", + "properties": { + "term": { + "type": "integer", + "title": "Term", + "description": "Term - Term Number." + }, + "startDate": { + "type": "string", + "format": "date-time", + "title": "Start Date", + "description": "Term - Start Date." + }, + "endDate": { + "type": "string", + "format": "date-time", + "title": "End Date", + "description": "Term - End Date." + }, + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Term - Show In Directory." + } + } + }, + "tags": { + "type": "array", + "title": "Tags", + "description": "Tags.", + "items": { + "type": "string", + "title": "Tag", + "description": "Tags - Tag." + } + } + } }, "CommitteeMemberUpdateData": { "type": "object", @@ -6890,7 +16915,12 @@ "x-ms-visibility": "advanced" } }, - "required": ["type", "description", "numberOfCredits", "dateEarned"] + "required": [ + "type", + "description", + "numberOfCredits", + "dateEarned" + ] }, "NoteData": { "type": "object", @@ -6933,7 +16963,9 @@ "x-ms-visibility": "advanced" } }, - "required": ["content"] + "required": [ + "content" + ] }, "AwardNominationData": { "type": "object", @@ -6966,7 +16998,12 @@ "title": "Status", "description": "Status.", "x-ms-visibility": "advanced", - "enum": ["", "Pending", "Rejected", "Awarded"] + "enum": [ + "", + "Pending", + "Rejected", + "Awarded" + ] }, "description": { "type": "string", @@ -7011,7 +17048,12 @@ "type": "string", "title": "Status", "description": "Status.", - "enum": ["", "Pending", "Rejected", "Awarded"] + "enum": [ + "", + "Pending", + "Rejected", + "Awarded" + ] }, "description": { "type": "string", @@ -7019,7 +17061,10 @@ "description": "An explanation why the nominee should be considered for the award." } }, - "required": ["nominatedByCustomerRecordNumber", "nominationDate"] + "required": [ + "nominatedByCustomerRecordNumber", + "nominationDate" + ] }, "AwardRecipientIndividualData": { "type": "object", @@ -7517,79 +17562,377 @@ "description": "Primary Organization - Custom Fields.", "items": { "type": "object", - "description": "Primary Organization - Custom Fields - Item.", + "description": "Primary Organization - Custom Fields - Item.", + "properties": { + "name": { + "type": "string", + "description": "Primary Organization - Custom Fields - Name.", + "title": "Name" + }, + "caption": { + "type": "string", + "description": "Primary Organization - Custom Fields - Caption.", + "title": "Caption" + }, + "value": { + "type": "string", + "description": "Primary Organization - Custom Fields - Value.", + "title": "Value" + } + } + } + }, + "showInDirectory": { + "type": "boolean", + "description": "Primary Organization - Show In Directory.", + "title": "Show In Directory" + }, + "links": { + "type": "array", + "description": "Primary Organization - Links.", + "items": { + "type": "object", + "description": "Primary Organization - Links - Item.", + "properties": { + "type": { + "type": "string", + "description": "Primary Organization - Links - Type.", + "title": "Type" + }, + "url": { + "type": "string", + "format": "uri", + "description": "Primary Organization - Links - URL.", + "title": "URL" + } + } + } + }, + "oldId": { + "type": "string", + "description": "Primary Organization - Old Id.", + "title": "Old Id" + } + } + }, + "id": { + "type": "string", + "format": "uuid", + "description": "Individual Id.", + "title": "Individual Id" + }, + "customerType": { + "type": "string", + "description": "Customer Type.", + "title": "Customer Type" + }, + "recordNumber": { + "type": "string", + "description": "Record Number.", + "title": "Record Number" + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "addresses": { + "type": "array", + "description": "Addresses.", + "items": { + "type": "object", + "description": "Addresses - Item.", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Addresses - Id.", + "title": "Address Id" + }, + "primary": { + "type": "boolean", + "description": "Addresses - Is Primary.", + "title": "Is Primary Address" + }, + "line1": { + "type": "string", + "description": "Addresses - Line 1.", + "title": "Address Line 1" + }, + "line2": { + "type": "string", + "description": "Addresses - Line 2.", + "title": "Address Line 2" + }, + "line3": { + "type": "string", + "description": "Addresses - Line 3.", + "title": "Address Line 3" + }, + "city": { + "type": "string", + "description": "Addresses - City.", + "title": "City" + }, + "state": { + "type": "string", + "description": "Addresses - State.", + "title": "State" + }, + "zipcode": { + "type": "string", + "description": "Addresses - Zip Code.", + "title": "Zip Code" + }, + "country": { + "type": "string", + "description": "Addresses - Country.", + "title": "Country" + }, + "stateAbbreviation": { + "type": "string", + "description": "Addresses - State Abbreviation.", + "title": "State Abbreviation" + }, + "stateISOCode": { + "type": "string", + "description": "Addresses - State ISO Code.", + "title": "State ISO Code" + }, + "type": { + "type": "string", + "description": "Addresses - Type.", + "title": "Type" + }, + "region": { + "type": "string", + "description": "Addresses - Region.", + "title": "Region" + }, + "latitude": { + "type": "number", + "description": "Addresses - Latitude.", + "title": "Latitude" + }, + "longitude": { + "type": "number", + "description": "Addresses - Longitude.", + "title": "Longitude" + }, + "showInDirectory": { + "type": "boolean", + "description": "Addresses - Show In Directory.", + "title": "Show In Directory" + }, + "congressionalDistrict": { + "type": "string", + "description": "Addresses - Congressional District.", + "title": "Congressional District" + }, + "countryData": { + "type": "object", + "description": "Country.", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "description": "Addresses - Country - Id.", + "title": "Country Id" + }, + "name": { + "type": "string", + "description": "Addresses - Country - Name.", + "title": "Country Name" + }, + "twoLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" + }, + "threeLetterIsoCode": { + "type": "string", + "description": "Addresses - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Addresses - Country - Code.", + "title": "Country Code" + } + } + } + } + } + }, + "emails": { + "type": "array", + "description": "Emails.", + "items": { + "type": "object", + "description": "Emails - Item.", + "properties": { + "primary": { + "type": "boolean", + "description": "Emails - Is Primary.", + "title": "Is Primary Email" + }, + "address": { + "type": "string", + "description": "Emails - Address.", + "title": "Address" + }, + "type": { + "type": "string", + "description": "Emails - Type.", + "title": "Type" + }, + "showInDirectory": { + "type": "boolean", + "description": "Emails - Show In Directory.", + "title": "Show In Directory" + } + } + } + }, + "phones": { + "type": "array", + "description": "Phones.", + "items": { + "type": "object", + "description": "Phones - Item.", + "properties": { + "id": { + "type": "string", + "description": "Phones - Id.", + "title": "Phone Id" + }, + "primary": { + "type": "boolean", + "description": "Phones - Is Primary.", + "title": "Is Primary Phone" + }, + "type": { + "type": "integer", + "description": "Phones - Type.", + "title": "Type" + }, + "country": { + "type": "object", + "description": "Country.", "properties": { - "name": { + "id": { "type": "string", - "description": "Primary Organization - Custom Fields - Name.", - "title": "Name" + "description": "Phones - Country - Id.", + "title": "Country Id" }, - "caption": { + "name": { "type": "string", - "description": "Primary Organization - Custom Fields - Caption.", - "title": "Caption" + "description": "Phones - Country - Name.", + "title": "Country Name" }, - "value": { - "type": "string", - "description": "Primary Organization - Custom Fields - Value.", - "title": "Value" - } - } - } - }, - "showInDirectory": { - "type": "boolean", - "description": "Primary Organization - Show In Directory.", - "title": "Show In Directory" - }, - "links": { - "type": "array", - "description": "Primary Organization - Links.", - "items": { - "type": "object", - "description": "Primary Organization - Links - Item.", - "properties": { - "type": { + "twoLetterIsoCode": { "type": "string", - "description": "Primary Organization - Links - Type.", - "title": "Type" + "description": "Phones - Country - Two Letter ISO Code.", + "title": "Two Letter ISO Code" }, - "url": { + "threeLetterIsoCode": { "type": "string", - "format": "uri", - "description": "Primary Organization - Links - URL.", - "title": "URL" + "description": "Phones - Country - Three Letter ISO Code.", + "title": "Three Letter ISO Code" + }, + "code": { + "type": "integer", + "description": "Phones - Country - Code.", + "title": "Country Code" } } + }, + "showInDirectory": { + "type": "boolean", + "description": "Phones - Show In Directory.", + "title": "Show In Directory" + }, + "number": { + "type": "string", + "description": "Phones - Number.", + "title": "Number" + }, + "extension": { + "type": "string", + "description": "Phones - Extension.", + "title": "Extension" + }, + "typeName": { + "type": "string", + "description": "Phones - Type Name.", + "title": "Type Name" } - }, - "oldId": { - "type": "string", - "description": "Primary Organization - Old Id.", - "title": "Old Id" } } }, + "showInDirectory": { + "type": "boolean", + "description": "Show In Directory.", + "title": "Show In Directory" + } + } + }, + "AwardRecipientOrganizationData": { + "type": "object", + "properties": { + "awardedDate": { + "format": "date", + "type": "string", + "title": "Awarded Date", + "description": "Awarded Date." + }, + "name": { + "type": "string", + "title": "Organization Name", + "description": "Organization Name." + }, + "acronym": { + "type": "string", + "title": "Acronym", + "description": "Acronym." + }, + "branchName": { + "type": "string", + "title": "Branch Name", + "description": "Branch Name." + }, + "annualSales": { + "format": "double", + "type": "number", + "title": "Annual Sales", + "description": "Annual Sales." + }, + "employeeRangeId": { + "type": "string", + "format": "uuid", + "title": "Employee Range Id", + "description": "Employee Range Id." + }, "id": { "type": "string", "format": "uuid", - "description": "Individual Id.", - "title": "Individual Id" + "title": "Organization Id", + "description": "Organization Id." }, "customerType": { "type": "string", - "description": "Customer Type.", - "title": "Customer Type" + "title": "Customer Type", + "description": "Customer Type." }, "recordNumber": { "type": "string", - "description": "Record Number.", - "title": "Record Number" + "title": "Record Number", + "description": "Record Number." }, - "title": { - "type": "string", - "description": "Title.", - "title": "Title" + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Show In Directory." }, "addresses": { "type": "array", @@ -7601,88 +17944,88 @@ "id": { "type": "string", "format": "uuid", - "description": "Addresses - Id.", - "title": "Address Id" + "title": "Address Id", + "description": "Addresses - Address Id." }, "primary": { "type": "boolean", - "description": "Addresses - Is Primary.", - "title": "Is Primary Address" + "title": "Is Primary Address", + "description": "Addresses - Is Primary." }, "line1": { "type": "string", - "description": "Addresses - Line 1.", - "title": "Address Line 1" + "title": "Address Line 1", + "description": "Addresses - Line 1." }, "line2": { "type": "string", - "description": "Addresses - Line 2.", - "title": "Address Line 2" + "title": "Address Line 2", + "description": "Addresses - Line 2." }, "line3": { "type": "string", - "description": "Addresses - Line 3.", - "title": "Address Line 3" + "title": "Address Line 3", + "description": "Addresses - Line 3." }, "city": { "type": "string", - "description": "Addresses - City.", - "title": "City" + "title": "City", + "description": "Addresses - City." }, "state": { "type": "string", - "description": "Addresses - State.", - "title": "State" + "title": "State", + "description": "Addresses - State." }, "zipcode": { "type": "string", - "description": "Addresses - Zip Code.", - "title": "Zip Code" + "title": "Zip Code", + "description": "Addresses - Zip Code." }, "country": { "type": "string", - "description": "Addresses - Country.", - "title": "Country" + "title": "Country", + "description": "Addresses - Country." }, "stateAbbreviation": { "type": "string", - "description": "Addresses - State Abbreviation.", - "title": "State Abbreviation" + "title": "State Abbreviation", + "description": "Addresses - State Abbreviation." }, "stateISOCode": { "type": "string", - "description": "Addresses - State ISO Code.", - "title": "State ISO Code" + "title": "State ISO Code", + "description": "Addresses - State ISO Code." }, "type": { "type": "string", - "description": "Addresses - Type.", - "title": "Type" + "title": "Type", + "description": "Addresses - Type." }, "region": { "type": "string", - "description": "Addresses - Region.", - "title": "Region" + "title": "Region", + "description": "Addresses - Region." }, "latitude": { "type": "number", - "description": "Addresses - Latitude.", - "title": "Latitude" + "title": "Latitude", + "description": "Addresses - Latitude." }, "longitude": { "type": "number", - "description": "Addresses - Longitude.", - "title": "Longitude" + "title": "Longitude", + "description": "Addresses - Longitude." }, "showInDirectory": { "type": "boolean", - "description": "Addresses - Show In Directory.", - "title": "Show In Directory" + "title": "Show In Directory", + "description": "Addresses - Show In Directory." }, "congressionalDistrict": { "type": "string", - "description": "Addresses - Congressional District.", - "title": "Congressional District" + "title": "Congressional District", + "description": "Addresses - Congressional District." }, "countryData": { "type": "object", @@ -7691,28 +18034,28 @@ "id": { "type": "string", "format": "uuid", - "description": "Addresses - Country - Id.", - "title": "Country Id" + "title": "Country Id", + "description": "Addresses - Country - Country Id." }, "name": { "type": "string", - "description": "Addresses - Country - Name.", - "title": "Country Name" + "title": "Country Name", + "description": "Addresses - Country - Country Name." }, "twoLetterIsoCode": { "type": "string", - "description": "Addresses - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" + "title": "Two Letter ISO Code", + "description": "Addresses - Country - Two Letter ISO Code." }, "threeLetterIsoCode": { "type": "string", - "description": "Addresses - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" + "title": "Three Letter ISO Code", + "description": "Addresses - Country - Three Letter ISO Code." }, "code": { "type": "integer", - "description": "Addresses - Country - Code.", - "title": "Country Code" + "title": "Country Code", + "description": "Addresses - Country - Country Code." } } } @@ -7728,23 +18071,24 @@ "properties": { "primary": { "type": "boolean", - "description": "Emails - Is Primary.", - "title": "Is Primary Email" + "title": "Is Primary Email", + "description": "Emails - Is Primary." }, "address": { "type": "string", - "description": "Emails - Address.", - "title": "Address" + "format": "email", + "title": "Email Address", + "description": "Emails - Email Address." }, "type": { "type": "string", - "description": "Emails - Type.", - "title": "Type" + "title": "Type", + "description": "Emails - Type." }, "showInDirectory": { "type": "boolean", - "description": "Emails - Show In Directory.", - "title": "Show In Directory" + "title": "Show In Directory", + "description": "Emails - Show In Directory." } } } @@ -7758,18 +18102,19 @@ "properties": { "id": { "type": "string", - "description": "Phones - Id.", - "title": "Phone Id" + "format": "uuid", + "title": "Phone Id", + "description": "Phones - Phone Id." }, "primary": { "type": "boolean", - "description": "Phones - Is Primary.", - "title": "Is Primary Phone" + "title": "Is Primary Phone", + "description": "Phones - Is Primary." }, "type": { "type": "integer", - "description": "Phones - Type.", - "title": "Type" + "title": "Type", + "description": "Phones - Type." }, "country": { "type": "object", @@ -7777,70 +18122,60 @@ "properties": { "id": { "type": "string", - "description": "Phones - Country - Id.", - "title": "Country Id" + "format": "uuid", + "title": "Country Id", + "description": "Phones - Country - Country Id." }, "name": { "type": "string", - "description": "Phones - Country - Name.", - "title": "Country Name" + "title": "Country Name", + "description": "Phones - Country - Country Name." }, "twoLetterIsoCode": { "type": "string", - "description": "Phones - Country - Two Letter ISO Code.", - "title": "Two Letter ISO Code" + "title": "Two Letter ISO Code", + "description": "Phones - Country - Two Letter ISO Code." }, "threeLetterIsoCode": { "type": "string", - "description": "Phones - Country - Three Letter ISO Code.", - "title": "Three Letter ISO Code" + "title": "Three Letter ISO Code", + "description": "Phones - Country - Three Letter ISO Code." }, "code": { "type": "integer", - "description": "Phones - Country - Code.", - "title": "Country Code" + "title": "Country Code", + "description": "Phones - Country - Country Code." } } }, "showInDirectory": { "type": "boolean", - "description": "Phones - Show In Directory.", - "title": "Show In Directory" + "title": "Show In Directory", + "description": "Phones - Show In Directory." }, "number": { "type": "string", - "description": "Phones - Number.", - "title": "Number" + "title": "Phone Number", + "description": "Phones - Phone Number." }, "extension": { "type": "string", - "description": "Phones - Extension.", - "title": "Extension" + "title": "Extension", + "description": "Phones - Extension." }, "typeName": { "type": "string", - "description": "Phones - Type Name.", - "title": "Type Name" + "title": "Type Name", + "description": "Phones - Type Name." } } } - }, - "showInDirectory": { - "type": "boolean", - "description": "Show In Directory.", - "title": "Show In Directory" } } }, - "AwardRecipientOrganizationData": { + "OrganizationLookupBasicData": { "type": "object", "properties": { - "awardedDate": { - "format": "date", - "type": "string", - "title": "Awarded Date", - "description": "Awarded Date." - }, "name": { "type": "string", "title": "Organization Name", @@ -7856,12 +18191,6 @@ "title": "Branch Name", "description": "Branch Name." }, - "annualSales": { - "format": "double", - "type": "number", - "title": "Annual Sales", - "description": "Annual Sales." - }, "employeeRangeId": { "type": "string", "format": "uuid", @@ -7874,21 +18203,11 @@ "title": "Organization Id", "description": "Organization Id." }, - "customerType": { - "type": "string", - "title": "Customer Type", - "description": "Customer Type." - }, "recordNumber": { "type": "string", "title": "Record Number", "description": "Record Number." }, - "showInDirectory": { - "type": "boolean", - "title": "Show In Directory", - "description": "Show In Directory." - }, "addresses": { "type": "array", "description": "Addresses.", @@ -7997,525 +18316,863 @@ "title": "Country Name", "description": "Addresses - Country - Country Name." }, - "twoLetterIsoCode": { - "type": "string", - "title": "Two Letter ISO Code", - "description": "Addresses - Country - Two Letter ISO Code." + "twoLetterIsoCode": { + "type": "string", + "title": "Two Letter ISO Code", + "description": "Addresses - Country - Two Letter ISO Code." + }, + "threeLetterIsoCode": { + "type": "string", + "title": "Three Letter ISO Code", + "description": "Addresses - Country - Three Letter ISO Code." + }, + "code": { + "type": "integer", + "title": "Country Code", + "description": "Addresses - Country - Country Code." + } + } + } + } + } + } + } + }, + "IndividualLookupBasicData": { + "type": "object", + "properties": { + "firstName": { + "type": "string", + "title": "First Name", + "description": "First Name." + }, + "lastName": { + "type": "string", + "title": "Last Name", + "description": "Last Name." + }, + "middleName": { + "type": "string", + "title": "Middle Name", + "description": "Middle Name." + }, + "preferredFirstName": { + "type": "string", + "title": "Preferred First Name", + "description": "Preferred First Name." + }, + "secondLastName": { + "type": "string", + "title": "Second Last Name", + "description": "Second Last Name." + }, + "prefix": { + "type": "string", + "title": "Prefix", + "description": "Prefix." + }, + "suffix": { + "type": "string", + "title": "Suffix", + "description": "Suffix." + }, + "gender": { + "type": "string", + "title": "Gender", + "description": "Gender." + }, + "title": { + "type": "string", + "description": "Title.", + "title": "Title" + }, + "primaryOrganization": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Organization Name", + "description": "Primary Organization - Organization Name." + }, + "acronym": { + "type": "string", + "title": "Acronym", + "description": "Primary Organization - Acronym." + }, + "branchName": { + "type": "string", + "title": "Branch Name", + "description": "Primary Organization - Branch Name." + }, + "employeeRangeId": { + "type": "string", + "format": "uuid", + "title": "Employee Range Id", + "description": "Primary Organization - Employee Range Id." + }, + "id": { + "type": "string", + "format": "uuid", + "title": "Organization Id", + "description": "Primary Organization - Organization Id." + }, + "recordNumber": { + "type": "string", + "title": "Record Number", + "description": "Primary Organization - Record Number." + }, + "addresses": { + "type": "array", + "description": "Primary Organization - Addresses.", + "items": { + "type": "object", + "description": "Primary Organization - Addresses - Item.", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Address Id", + "description": "Primary Organization - Addresses - Address Id." + }, + "primary": { + "type": "boolean", + "title": "Is Primary Address", + "description": "Primary Organization - Addresses - Is Primary." + }, + "line1": { + "type": "string", + "title": "Address Line 1", + "description": "Primary Organization - Addresses - Line 1." + }, + "line2": { + "type": "string", + "title": "Address Line 2", + "description": "Primary Organization - Addresses - Line 2." + }, + "line3": { + "type": "string", + "title": "Address Line 3", + "description": "Primary Organization - Addresses - Line 3." + }, + "city": { + "type": "string", + "title": "City", + "description": "Primary Organization - Addresses - City." + }, + "state": { + "type": "string", + "title": "State", + "description": "Primary Organization - Addresses - State." + }, + "zipcode": { + "type": "string", + "title": "Zip Code", + "description": "Primary Organization - Addresses - Zip Code." + }, + "country": { + "type": "string", + "title": "Country", + "description": "Primary Organization - Addresses - Country." + }, + "stateAbbreviation": { + "type": "string", + "title": "State Abbreviation", + "description": "Primary Organization - Addresses - State Abbreviation." + }, + "stateISOCode": { + "type": "string", + "title": "State ISO Code", + "description": "Primary Organization - Addresses - State ISO Code." + }, + "type": { + "type": "string", + "title": "Type", + "description": "Primary Organization - Addresses - Type." + }, + "region": { + "type": "string", + "title": "Region", + "description": "Primary Organization - Addresses - Region." + }, + "latitude": { + "type": "number", + "title": "Latitude", + "description": "Primary Organization - Addresses - Latitude." + }, + "longitude": { + "type": "number", + "title": "Longitude", + "description": "Primary Organization - Addresses - Longitude." + }, + "showInDirectory": { + "type": "boolean", + "title": "Show In Directory", + "description": "Primary Organization - Addresses - Show In Directory." }, - "threeLetterIsoCode": { + "congressionalDistrict": { "type": "string", - "title": "Three Letter ISO Code", - "description": "Addresses - Country - Three Letter ISO Code." + "title": "Congressional District", + "description": "Primary Organization - Addresses - Congressional District." }, - "code": { - "type": "integer", - "title": "Country Code", - "description": "Addresses - Country - Country Code." + "countryData": { + "type": "object", + "description": "Country.", + "properties": { + "id": { + "type": "string", + "format": "uuid", + "title": "Country Id", + "description": "Primary Organization - Addresses - Country - Country Id." + }, + "name": { + "type": "string", + "title": "Country Name", + "description": "Primary Organization - Addresses - Country - Country Name." + }, + "twoLetterIsoCode": { + "type": "string", + "title": "Two Letter ISO Code", + "description": "Primary Organization - Addresses - Country - Two Letter ISO Code." + }, + "threeLetterIsoCode": { + "type": "string", + "title": "Three Letter ISO Code", + "description": "Primary Organization - Addresses - Country - Three Letter ISO Code." + }, + "code": { + "type": "integer", + "title": "Country Code", + "description": "Primary Organization - Addresses - Country - Country Code." + } + } } } } } } }, - "emails": { + "id": { + "type": "string", + "format": "uuid", + "description": "Individual Id.", + "title": "Individual Id" + }, + "recordNumber": { + "type": "string", + "description": "Record Number.", + "title": "Record Number" + } + } + }, + "CustomerCustomFieldValuePayload": { + "type": "object", + "properties": { + "WebhookId": { + "type": "string", + "description": "Webhook Id.", + "title": "Webhook Id" + }, + "Properties": { + "type": "object", + "properties": { + "AdditionalFilter": { + "type": "string", + "description": "Properties - Additional Filter.", + "title": "Additional Filter" + }, + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { "type": "array", - "description": "Emails.", "items": { "type": "object", - "description": "Emails - Item.", "properties": { - "primary": { - "type": "boolean", - "title": "Is Primary Email", - "description": "Emails - Is Primary." + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" }, - "address": { + "CustomerId": { "type": "string", - "format": "email", - "title": "Email Address", - "description": "Emails - Email Address." + "description": "Notifications - Customer Id.", + "title": "Customer Id" }, - "type": { + "CustomFieldName": { "type": "string", - "title": "Type", - "description": "Emails - Type." + "description": "Notifications - Custom Field Name.", + "title": "Custom Field Name" }, - "showInDirectory": { - "type": "boolean", - "title": "Show In Directory", - "description": "Emails - Show In Directory." + "CustomFieldValue": { + "type": "string", + "description": "Notifications - Custom Field Value.", + "title": "Custom Field Value" } - } + }, + "description": "Notifications." } + } + } + }, + "CustomerMergedPayload": { + "type": "object", + "properties": { + "WebhookId": { + "type": "string", + "description": "Webhook Id.", + "title": "Webhook Id" }, - "phones": { + "Properties": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { "type": "array", - "description": "Phones.", "items": { "type": "object", - "description": "Phones - Item.", "properties": { - "id": { + "Action": { "type": "string", - "format": "uuid", - "title": "Phone Id", - "description": "Phones - Phone Id." - }, - "primary": { - "type": "boolean", - "title": "Is Primary Phone", - "description": "Phones - Is Primary." - }, - "type": { - "type": "integer", - "title": "Type", - "description": "Phones - Type." - }, - "country": { - "type": "object", - "description": "Country.", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Country Id", - "description": "Phones - Country - Country Id." - }, - "name": { - "type": "string", - "title": "Country Name", - "description": "Phones - Country - Country Name." - }, - "twoLetterIsoCode": { - "type": "string", - "title": "Two Letter ISO Code", - "description": "Phones - Country - Two Letter ISO Code." - }, - "threeLetterIsoCode": { - "type": "string", - "title": "Three Letter ISO Code", - "description": "Phones - Country - Three Letter ISO Code." - }, - "code": { - "type": "integer", - "title": "Country Code", - "description": "Phones - Country - Country Code." - } - } + "description": "Notifications - Action.", + "title": "Action" }, - "showInDirectory": { - "type": "boolean", - "title": "Show In Directory", - "description": "Phones - Show In Directory." + "Type": { + "type": "string", + "description": "Notifications - Customer Type.", + "title": "Customer Type" }, - "number": { + "NewRecordNumber": { "type": "string", - "title": "Phone Number", - "description": "Phones - Phone Number." + "description": "Notifications - New Record Number.", + "title": "New Record Number" }, - "extension": { + "OldId": { "type": "string", - "title": "Extension", - "description": "Phones - Extension." + "description": "Notifications - Old Id.", + "title": "Old Id" }, - "typeName": { + "NewId": { "type": "string", - "title": "Type Name", - "description": "Phones - Type Name." + "description": "Notifications - New Id.", + "title": "New Id" } - } + }, + "description": "Notifications." } } } }, - "OrganizationLookupBasicData": { + "CustomerRelationshipUpdatedPayload": { "type": "object", "properties": { - "name": { - "type": "string", - "title": "Organization Name", - "description": "Organization Name." - }, - "acronym": { - "type": "string", - "title": "Acronym", - "description": "Acronym." - }, - "branchName": { - "type": "string", - "title": "Branch Name", - "description": "Branch Name." - }, - "employeeRangeId": { - "type": "string", - "format": "uuid", - "title": "Employee Range Id", - "description": "Employee Range Id." - }, - "id": { + "WebhookId": { "type": "string", - "format": "uuid", - "title": "Organization Id", - "description": "Organization Id." + "description": "Webhook Id.", + "title": "Webhook Id" }, - "recordNumber": { - "type": "string", - "title": "Record Number", - "description": "Record Number." + "Properties": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." }, - "addresses": { + "Notifications": { "type": "array", - "description": "Addresses.", "items": { "type": "object", - "description": "Addresses - Item.", "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Address Id", - "description": "Addresses - Address Id." + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" }, - "primary": { - "type": "boolean", - "title": "Is Primary Address", - "description": "Addresses - Is Primary." + "ActionType": { + "type": "string", + "description": "Notifications - Action Type.", + "title": "Action Type" }, - "line1": { + "CustomerId": { "type": "string", - "title": "Address Line 1", - "description": "Addresses - Line 1." + "description": "Notifications - Customer Id.", + "title": "Customer Id" }, - "line2": { + "CustomerType": { "type": "string", - "title": "Address Line 2", - "description": "Addresses - Line 2." + "description": "Notifications - Customer Type.", + "title": "Customer Type" }, - "line3": { + "RelatedToCustomerId": { "type": "string", - "title": "Address Line 3", - "description": "Addresses - Line 3." + "description": "Notifications - Related To Customer Id.", + "title": "Related To Customer Id" }, - "city": { + "RelatedToCustomerType": { "type": "string", - "title": "City", - "description": "Addresses - City." + "description": "Notifications - Related To Customer Type.", + "title": "Related To Customer Type" }, - "state": { + "Relationship": { "type": "string", - "title": "State", - "description": "Addresses - State." + "description": "Notifications - Relationship.", + "title": "Relationship" }, - "zipcode": { + "ReciprocalRelationship": { "type": "string", - "title": "Zip Code", - "description": "Addresses - Zip Code." + "description": "Notifications - Reciprocal Relationship.", + "title": "Reciprocal Relationship" }, - "country": { + "StartDate": { "type": "string", - "title": "Country", - "description": "Addresses - Country." + "description": "Notifications - Start Date.", + "title": "Start Date" }, - "stateAbbreviation": { + "EndDate": { "type": "string", - "title": "State Abbreviation", - "description": "Addresses - State Abbreviation." + "description": "Notifications - End Date.", + "title": "End Date" + } + }, + "description": "Notifications." + } + } + } + }, + "CustomerPhoneUpdatedPayload": { + "type": "object", + "properties": { + "WebhookId": { + "type": "string", + "description": "Webhook Id.", + "title": "Webhook Id" + }, + "Properties": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" }, - "stateISOCode": { + "ActionType": { "type": "string", - "title": "State ISO Code", - "description": "Addresses - State ISO Code." + "description": "Notifications - Action Type.", + "title": "Action Type" }, - "type": { + "Id": { "type": "string", - "title": "Type", - "description": "Addresses - Type." + "description": "Notifications - Id.", + "title": "Phone Id" }, - "region": { + "PhoneType": { "type": "string", - "title": "Region", - "description": "Addresses - Region." + "description": "Notifications - Phone Type.", + "title": "Phone Type" }, - "latitude": { - "type": "number", - "title": "Latitude", - "description": "Addresses - Latitude." + "Number": { + "type": "string", + "description": "Notifications - Number.", + "title": "Phone Number" }, - "longitude": { - "type": "number", - "title": "Longitude", - "description": "Addresses - Longitude." + "Extension": { + "type": "string", + "description": "Notifications - Extension.", + "title": "Phone Extension" }, - "showInDirectory": { + "IsPrimary": { "type": "boolean", - "title": "Show In Directory", - "description": "Addresses - Show In Directory." + "description": "Notifications - Is Primary.", + "title": "Is Primary" }, - "congressionalDistrict": { + "CustomerId": { "type": "string", - "title": "Congressional District", - "description": "Addresses - Congressional District." + "description": "Notifications - Customer Id.", + "title": "Customer Id" }, - "countryData": { + "CustomerType": { + "type": "string", + "description": "Notifications - Customer Type.", + "title": "Customer Type" + }, + "RecordNumber": { + "type": "string", + "description": "Notifications - Record Number.", + "title": "Customer Record Number" + }, + "Old": { "type": "object", - "description": "Country.", "properties": { - "id": { + "Id": { "type": "string", - "format": "uuid", - "title": "Country Id", - "description": "Addresses - Country - Country Id." + "description": "Notifications - Old - Id.", + "title": "Old Phone Id" }, - "name": { + "PhoneType": { "type": "string", - "title": "Country Name", - "description": "Addresses - Country - Country Name." + "description": "Notifications - Old - Phone Type.", + "title": "Old Phone Type" }, - "twoLetterIsoCode": { + "Number": { "type": "string", - "title": "Two Letter ISO Code", - "description": "Addresses - Country - Two Letter ISO Code." + "description": "Notifications - Old - Number.", + "title": "Old Phone Number" }, - "threeLetterIsoCode": { + "Extension": { "type": "string", - "title": "Three Letter ISO Code", - "description": "Addresses - Country - Three Letter ISO Code." + "description": "Notifications - Old - Extension.", + "title": "Old Phone Extension" }, - "code": { - "type": "integer", - "title": "Country Code", - "description": "Addresses - Country - Country Code." + "IsPrimary": { + "type": "boolean", + "description": "Notifications - Old - Is Primary.", + "title": "Old Is Primary" + }, + "CustomerId": { + "type": "string", + "description": "Notifications - Old - Customer Id.", + "title": "Old Customer Id" + }, + "CustomerType": { + "type": "string", + "description": "Notifications - Old - Customer Type.", + "title": "Old Customer Type" + }, + "RecordNumber": { + "type": "string", + "description": "Notifications - Old - Record Number.", + "title": "Old Customer Record Number" } - } + }, + "description": "Notifications - Old." } - } + }, + "description": "Notifications." } } } }, - "IndividualLookupBasicData": { + "CustomerAddressUpdatedPayload": { "type": "object", "properties": { - "firstName": { - "type": "string", - "title": "First Name", - "description": "First Name." - }, - "lastName": { - "type": "string", - "title": "Last Name", - "description": "Last Name." - }, - "middleName": { - "type": "string", - "title": "Middle Name", - "description": "Middle Name." - }, - "preferredFirstName": { - "type": "string", - "title": "Preferred First Name", - "description": "Preferred First Name." - }, - "secondLastName": { - "type": "string", - "title": "Second Last Name", - "description": "Second Last Name." - }, - "prefix": { - "type": "string", - "title": "Prefix", - "description": "Prefix." - }, - "suffix": { - "type": "string", - "title": "Suffix", - "description": "Suffix." - }, - "gender": { - "type": "string", - "title": "Gender", - "description": "Gender." - }, - "title": { + "WebhookId": { "type": "string", - "description": "Title.", - "title": "Title" + "description": "Webhook Id.", + "title": "Webhook Id" }, - "primaryOrganization": { + "Properties": { "type": "object", "properties": { - "name": { - "type": "string", - "title": "Organization Name", - "description": "Primary Organization - Organization Name." - }, - "acronym": { - "type": "string", - "title": "Acronym", - "description": "Primary Organization - Acronym." - }, - "branchName": { - "type": "string", - "title": "Branch Name", - "description": "Primary Organization - Branch Name." - }, - "employeeRangeId": { - "type": "string", - "format": "uuid", - "title": "Employee Range Id", - "description": "Primary Organization - Employee Range Id." - }, - "id": { - "type": "string", - "format": "uuid", - "title": "Organization Id", - "description": "Primary Organization - Organization Id." - }, - "recordNumber": { + "Date": { "type": "string", - "title": "Record Number", - "description": "Primary Organization - Record Number." - }, - "addresses": { - "type": "array", - "description": "Primary Organization - Addresses.", - "items": { + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" + }, + "ActionType": { + "type": "string", + "description": "Notifications - Action Type.", + "title": "Action Type" + }, + "CustomerId": { + "type": "string", + "description": "Notifications - Customer Id.", + "title": "Customer Id" + }, + "CustomerType": { + "type": "string", + "description": "Notifications - Customer Type.", + "title": "Customer Type" + }, + "RecordNumber": { + "type": "string", + "description": "Notifications - Record Number.", + "title": "Customer Record Number" + }, + "Id": { + "type": "string", + "description": "Notifications - Id.", + "title": "Address Id" + }, + "Primary": { + "type": "boolean", + "description": "Notifications - Primary.", + "title": "Is Primary" + }, + "Line1": { + "type": "string", + "description": "Notifications - Line 1.", + "title": "Line 1" + }, + "Line2": { + "type": "string", + "description": "Notifications - Line 2.", + "title": "Line 2" + }, + "Line3": { + "type": "string", + "description": "Notifications - Line 3.", + "title": "Line 3" + }, + "City": { + "type": "string", + "description": "Notifications - City.", + "title": "City" + }, + "State": { + "type": "string", + "description": "Notifications - State.", + "title": "State" + }, + "Zipcode": { + "type": "string", + "description": "Notifications - Zip Code.", + "title": "Zip Code" + }, + "Country": { + "type": "string", + "description": "Notifications - Country.", + "title": "Country" + }, + "Old": { "type": "object", - "description": "Primary Organization - Addresses - Item.", "properties": { - "id": { + "Id": { "type": "string", - "format": "uuid", - "title": "Address Id", - "description": "Primary Organization - Addresses - Address Id." + "description": "Notifications - Old - Id.", + "title": "Old Address Id" }, - "primary": { + "Primary": { "type": "boolean", - "title": "Is Primary Address", - "description": "Primary Organization - Addresses - Is Primary." - }, - "line1": { - "type": "string", - "title": "Address Line 1", - "description": "Primary Organization - Addresses - Line 1." - }, - "line2": { - "type": "string", - "title": "Address Line 2", - "description": "Primary Organization - Addresses - Line 2." - }, - "line3": { - "type": "string", - "title": "Address Line 3", - "description": "Primary Organization - Addresses - Line 3." - }, - "city": { - "type": "string", - "title": "City", - "description": "Primary Organization - Addresses - City." - }, - "state": { - "type": "string", - "title": "State", - "description": "Primary Organization - Addresses - State." + "description": "Notifications - Old - Primary.", + "title": "Old Is Primary" }, - "zipcode": { + "Line1": { "type": "string", - "title": "Zip Code", - "description": "Primary Organization - Addresses - Zip Code." + "description": "Notifications - Old - Line 1.", + "title": "Old Line 1" }, - "country": { + "Line2": { "type": "string", - "title": "Country", - "description": "Primary Organization - Addresses - Country." + "description": "Notifications - Old - Line 2.", + "title": "Old Line 2" }, - "stateAbbreviation": { + "Line3": { "type": "string", - "title": "State Abbreviation", - "description": "Primary Organization - Addresses - State Abbreviation." + "description": "Notifications - Old - Line 3.", + "title": "Old Line 3" }, - "stateISOCode": { + "City": { "type": "string", - "title": "State ISO Code", - "description": "Primary Organization - Addresses - State ISO Code." + "description": "Notifications - Old - City.", + "title": "Old City" }, - "type": { + "State": { "type": "string", - "title": "Type", - "description": "Primary Organization - Addresses - Type." + "description": "Notifications - Old - State.", + "title": "Old State" }, - "region": { + "Zipcode": { "type": "string", - "title": "Region", - "description": "Primary Organization - Addresses - Region." - }, - "latitude": { - "type": "number", - "title": "Latitude", - "description": "Primary Organization - Addresses - Latitude." - }, - "longitude": { - "type": "number", - "title": "Longitude", - "description": "Primary Organization - Addresses - Longitude." - }, - "showInDirectory": { - "type": "boolean", - "title": "Show In Directory", - "description": "Primary Organization - Addresses - Show In Directory." + "description": "Notifications - Old - Zip Code.", + "title": "Old Zip Code" }, - "congressionalDistrict": { + "Country": { "type": "string", - "title": "Congressional District", - "description": "Primary Organization - Addresses - Congressional District." - }, - "countryData": { - "type": "object", - "description": "Country.", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "title": "Country Id", - "description": "Primary Organization - Addresses - Country - Country Id." - }, - "name": { - "type": "string", - "title": "Country Name", - "description": "Primary Organization - Addresses - Country - Country Name." - }, - "twoLetterIsoCode": { - "type": "string", - "title": "Two Letter ISO Code", - "description": "Primary Organization - Addresses - Country - Two Letter ISO Code." - }, - "threeLetterIsoCode": { - "type": "string", - "title": "Three Letter ISO Code", - "description": "Primary Organization - Addresses - Country - Three Letter ISO Code." - }, - "code": { - "type": "integer", - "title": "Country Code", - "description": "Primary Organization - Addresses - Country - Country Code." - } - } + "description": "Notifications - Old - Country.", + "title": "Old Country" } - } + }, + "description": "Notifications - Old." } - } + }, + "description": "Notifications." } - }, - "id": { + } + } + }, + "EventRegistrationSubstitutedPayload": { + "type": "object", + "properties": { + "WebhookId": { "type": "string", - "format": "uuid", - "description": "Individual Id.", - "title": "Individual Id" + "description": "Webhook Id.", + "title": "Webhook Id" }, - "recordNumber": { + "Properties": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" + }, + "OrderNumber": { + "type": "string", + "description": "Notifications - Order Number.", + "title": "Order Number" + }, + "InvoiceNumber": { + "type": "string", + "description": "Notifications - Invoice Number.", + "title": "Invoice Number" + }, + "ProductCode": { + "type": "string", + "description": "Notifications - Product Code.", + "title": "Product Code" + }, + "ProductName": { + "type": "string", + "description": "Notifications - Product Name.", + "title": "Product Name" + }, + "ProductType": { + "type": "string", + "description": "Notifications - Product Type.", + "title": "Product Type" + }, + "ParentProductCode": { + "type": "string", + "description": "Notifications - Parent Product Code.", + "title": "Parent Product Code" + }, + "SubstitutedForCustomerId": { + "type": "string", + "description": "Notifications - Substituted For Customer Id.", + "title": "Substituted For Customer Id" + }, + "SubstitutedForCustomerRecordNumber": { + "type": "string", + "description": "Notifications - Substituted For Customer Record Number.", + "title": "Substituted For Customer Record Number" + }, + "SubstitutedByCustomerId": { + "type": "string", + "description": "Notifications - Substituted By Customer Id.", + "title": "Substituted By Customer Id" + }, + "SubstitutedByCustomerRecordNumber": { + "type": "string", + "description": "Notifications - Substituted By Customer Record Number.", + "title": "Substituted By Customer Record Number" + }, + "SubstitutedByCustomerFirstName": { + "type": "string", + "description": "Notifications - Substituted By Customer First Name.", + "title": "Substituted By Customer First Name" + }, + "SubstitutedByCustomerLastName": { + "type": "string", + "description": "Notifications - Substituted By Customer Last Name.", + "title": "Substituted By Customer Last Name" + }, + "SubstitutedByCustomerEmailAddress": { + "type": "string", + "description": "Notifications - Substituted By Customer Email Address.", + "title": "Substituted By Customer Email Address" + } + }, + "description": "Notifications." + } + } + } + }, + "IndividualRequestToBeForgottenPayload": { + "type": "object", + "properties": { + "WebhookId": { "type": "string", - "description": "Record Number.", - "title": "Record Number" + "description": "Webhook Id.", + "title": "Webhook Id" + }, + "Properties": { + "type": "object", + "properties": { + "Date": { + "type": "string", + "description": "Properties - Date.", + "title": "Date" + } + }, + "description": "Properties." + }, + "Notifications": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Action": { + "type": "string", + "description": "Notifications - Action.", + "title": "Action" + }, + "IndividualId": { + "type": "string", + "description": "Notifications - Individual Id.", + "title": "Individual Id" + }, + "RecordNumber": { + "type": "string", + "description": "Notifications - Record Number.", + "title": "Record Number" + } + }, + "description": "Notifications." + } } } } From 499988000a92dedd87e2a3da3a38f7b5cd75f5d4 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:57:17 -0500 Subject: [PATCH 196/219] adding RENXT Constituents connector (#1290) * adding RENXT Constituents connector * fix connector name --- .../apiDefinition.swagger.json | 10898 ++++++++++++++++ .../apiProperties.json | 73 + .../readme.md | 37 + .../script.csx | 55 + 4 files changed, 11063 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Constituents/readme.md create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Constituents/script.csx diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiDefinition.swagger.json new file mode 100644 index 0000000000..e44cfcd482 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiDefinition.swagger.json @@ -0,0 +1,10898 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Con", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Constituents connector to manage constituent biographical details, contact information, and relationships.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/commpref/v1/consent/categories": { + "get": { + "operationId": "ListConsentCategories", + "summary": "List consent categories", + "description": "Lists the available consent categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive categories?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConsentCategoryCollection" + } + } + } + } + }, + "/commpref/v1/consent/channels": { + "get": { + "operationId": "ListConsentChannels", + "summary": "List consent channels", + "description": "Lists the available consent channels.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConsentChannelCollection" + } + } + } + } + }, + "/commpref/v1/consent/consents": { + "post": { + "operationId": "CreateConstituentConsent", + "summary": "Create a constituent consent record", + "description": "Creates a new constituent consent record.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConstituentConsentAdd" + }, + "description": "An object that represents the consent record to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new consent record.", + "schema": { + "$ref": "#/definitions/CommPrefApi.CreatedConstituentConsent" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create a consent record." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/commpref/v1/consent/sources": { + "get": { + "operationId": "ListConsentSources", + "summary": "List consent sources", + "description": "Lists the available consent sources.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive sources?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConsentSourceCollection" + } + } + } + } + }, + "/commpref/v1/constituents/{constituent_id}/consents": { + "get": { + "operationId": "ListConstituentConsents", + "summary": "List constituent consent records", + "description": "Lists the consent records for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "most_recent_only", + "in": "query", + "description": "Include only the most recent consent records for each channel category combination in the response?", + "type": "boolean", + "x-ms-summary": "Most recent only?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConstituentConsentReadCollection" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituent." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/commpref/v1/constituents/{constituent_id}/constituentsolicitcodes": { + "get": { + "operationId": "ListConstituentSolicitCodes", + "summary": "List constituent solicit codes", + "description": "Lists the solicit codes for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConstituentSolicitCodeReadCollection" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituent or solicit codes." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/commpref/v1/constituentsolicitcodes": { + "post": { + "operationId": "CreateConstituentSolicitCode", + "summary": "Create a constituent solicit code", + "description": "Creates a new constituent solicit code.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConstituentSolicitCodeAdd" + }, + "description": "An object that represents the solicit code to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a phone. The response body contains the ID of the new phone.", + "schema": { + "$ref": "#/definitions/CommPrefApi.CreatedConstituentSolicitCode" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the phone." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/commpref/v1/constituentsolicitcodes/{constituent_solicit_code_id}": { + "patch": { + "operationId": "EditConstituentSolicitCode", + "summary": "Update a constituent solicit code", + "description": "Updates a constituent solicit code.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_solicit_code_id", + "in": "path", + "description": "The system record ID of the solicit code to update.", + "required": true, + "type": "string", + "x-ms-summary": "Solicit code ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/CommPrefApi.ConstituentSolicitCodeEdit" + }, + "description": "An object that represents the properties of the solicit code to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the solicit code." + }, + "400": { + "description": "Returned when the specified solicit code ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the solicit code." + }, + "404": { + "description": "Returned when the specified solicit code is not found." + } + } + } + }, + "/commpref/v1/solicitcodes": { + "get": { + "operationId": "ListSolicitCodes", + "summary": "List solicit codes", + "description": "Lists the available solicit codes.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/CommPrefApi.SolicitCodeCollection" + } + } + } + } + }, + "/constituent/v1/addresses": { + "post": { + "operationId": "CreateConstituentAddress", + "summary": "Create a constituent address", + "description": "Creates a new constituent address.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.AddressAdd" + }, + "description": "An object that represents the address to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an address. The response body contains the ID of the new address.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentAddress" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the address." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/addresses/{address_id}": { + "patch": { + "operationId": "EditConstituentAddress", + "summary": "Update a constituent address", + "description": "Updates a constituent address.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "address_id", + "in": "path", + "description": "The system record ID of the address to update.", + "required": true, + "type": "string", + "x-ms-summary": "Address ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.AddressEdit" + }, + "description": "An object that represents the properties of the address to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the address." + }, + "400": { + "description": "Returned when the specified address ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the address." + }, + "404": { + "description": "Returned when the specified address is not found." + } + } + } + }, + "/constituent/v1/aliases": { + "post": { + "operationId": "CreateConstituentAlias", + "summary": "Create a constituent alias", + "description": "Creates a new constituent alias.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.AliasAdd" + }, + "description": "An object that represents the alias to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an alias. The response body contains the ID of the new alias.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentAlias" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the alias." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/aliases/{alias_id}": { + "patch": { + "operationId": "EditConstituentAlias", + "summary": "Update a constituent alias", + "description": "Updates an constituent alias.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "alias_id", + "in": "path", + "description": "The system record ID of the alias to update.", + "required": true, + "type": "string", + "x-ms-summary": "Alias ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.AliasEdit" + }, + "description": "An object that represents the properties of the alias to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the alias." + }, + "400": { + "description": "Returned when the specified alias ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "404": { + "description": "Returned when the specified alias is not found." + } + } + } + }, + "/constituent/v1/constituentcodes": { + "post": { + "operationId": "CreateConstituentCode", + "summary": "Create a constituent code", + "description": "Creates a new constituent code.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentCodeAdd" + }, + "description": "An object that represents the constituent code to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a constituent code. The response body contains the ID of the new constituent code.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentCode" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the constituent code." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituentcodes/{constituent_code_id}": { + "delete": { + "operationId": "DeleteConstituentCode", + "summary": "Delete a constituent code", + "description": "Deletes a constituent code.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_code_id", + "in": "path", + "description": "The system record ID of the constituent code to delete.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent code ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully deletes the constituent code." + }, + "400": { + "description": "Returned when the specified constituent code ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to delete the constituent code." + } + } + }, + "patch": { + "operationId": "EditConstituentCode", + "summary": "Update a constituent code", + "description": "Updates a constituent code.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_code_id", + "in": "path", + "description": "The system record ID of the constituent code to update.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent code ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentCodeEdit" + }, + "description": "An object that represents the properties of the constituent code to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the constituent code." + }, + "400": { + "description": "Returned when the specified constituent code ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the constituent code." + }, + "404": { + "description": "Returned when the specified constituent code is not found." + } + } + } + }, + "/constituent/v1/constituents": { + "get": { + "operationId": "ListConstituents", + "summary": "List constituents", + "description": "Returns a list of constituents.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_id", + "in": "query", + "description": "Defines a list identifier used to filter the set of constituents to those included in the specified list. If this value is set, other specified filters will be ignored.", + "type": "string", + "x-ms-summary": "List", + "x-ms-dynamic-values": { + "operationId": "ListLists", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "list_type": "Constituent" + } + }, + "x-ms-dynamic-list": { + "operationId": "ListLists", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "list_type": { + "value": "Constituent" + } + } + } + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "constituent_code", + "in": "query", + "description": "Represents a constituent code to filter the list. For example, \"Board Member\" returns only constituents with a Board Member constituent code.", + "type": "string", + "x-ms-summary": "Constituent code", + "x-ms-visibility": "advanced" + }, + { + "name": "constituent_id", + "in": "query", + "description": "Represents a comma-separated list of constituent identifiers to filter the results. For example, \"280,1232\" returns only constituent 280 or constituent 1232.", + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-visibility": "advanced" + }, + { + "name": "custom_field_category", + "in": "query", + "description": "Represents a custom field category to filter the results. For example, \"Anniversary\" returns only constituents with an active Anniversary custom field.", + "type": "string", + "x-ms-summary": "Custom field category", + "x-ms-visibility": "advanced" + }, + { + "name": "fundraiser_status", + "in": "query", + "description": "Represents a comma-separated list of fundraiser statuses to filter the results. For example, \"Active,None\" returns only constituents whose fundraiser status is Active or None. Valid values for this filter are Active, Inactive, and None.", + "type": "string", + "x-ms-summary": "Fundraiser status", + "x-ms-visibility": "advanced" + }, + { + "name": "include_deceased", + "in": "query", + "description": "Include deceased constituents in the response?", + "type": "boolean", + "x-ms-summary": "Include deceased?", + "x-ms-visibility": "advanced" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive constituents in the response?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "postal_code", + "in": "query", + "description": "Represents a comma-separated list of postal codes to filter the results. For example, \"29466,29492\" returns only constituents whose preferred address has a postal code that starts with 29466 or 29492, such as 29466, 29492, or 29492-0727.", + "type": "string", + "x-ms-summary": "Postal code", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to constituents created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to constituents modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "sort", + "in": "query", + "description": "Represents a list of fields to sort the results by. Results are in ascending order by default, and a '-' sign denotes descending order. For example, \"date_added,-last\" sorts constituents by the \"date_added\" field in ascending order and then by the \"last\" field in descending order.", + "type": "string", + "x-ms-summary": "Sorted by", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfConstituentRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituents." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}": { + "get": { + "operationId": "GetConstituent", + "summary": "Get a constituent", + "description": "Returns information about a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent to get.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituent." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + }, + "patch": { + "operationId": "EditConstituent", + "summary": "Update a constituent", + "description": "Updates a constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent to update.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentEdit" + }, + "description": "An object that represents the properties of the constituent to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the constituent." + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the constituent." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/addresses": { + "get": { + "operationId": "ListConstituentAddresses", + "summary": "List constituent addresses", + "description": "Lists the addresses for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive addresses?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfAddressRead" + } + }, + "400": { + "description": "Returned when the specified ID is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the addresses." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/aliases": { + "get": { + "operationId": "ListConstituentAliases", + "summary": "List constituent aliases", + "description": "Lists the aliases for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfAliasRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the aliases." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/attachments": { + "get": { + "operationId": "ListConstituentAttachments", + "summary": "List constituent attachments", + "description": "Lists the attachments for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfConstituentAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/constituentcodes": { + "get": { + "operationId": "ListConstituentCodes", + "summary": "List constituent codes", + "description": "Lists the constituent codes for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfConstituentCodeRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituent codes." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/customfields": { + "get": { + "operationId": "ListConstituentCustomFields", + "summary": "List constituent custom fields", + "description": "Lists the custom fields for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfConstituentCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/educations": { + "get": { + "operationId": "ListConstituentEducations", + "summary": "List constituent educations", + "description": "Lists the education records for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfEducationRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the education records." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/emailaddresses": { + "get": { + "operationId": "ListConstituentEmailAddresses", + "summary": "List constituent email addresses", + "description": "Lists the email addresses for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive email addresses?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfEmailAddressRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the email addresses." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/fundraiserassignments": { + "get": { + "operationId": "ListConstituentFundraiserAssignments", + "summary": "List constituent fundraisers", + "description": "Lists the fundraiser assignments for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive fundraiser assignments?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfFundraiserAssignmentRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the fundraiser assignments." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/memberships": { + "get": { + "operationId": "ListConstituentMemberships", + "summary": "List constituent memberships", + "description": "Lists the memberships for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfMembershipRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the memberships." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/nameformats/summary": { + "get": { + "operationId": "GetConstituentNameFormatSummary", + "summary": "Get constituent name format summary", + "description": "Returns the name format summary for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.NameFormatSummaryRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the name format summary." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/notes": { + "get": { + "operationId": "ListConstituentNotes", + "summary": "List constituent notes", + "description": "Lists the notes for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfNoteRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the notes." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/onlinepresences": { + "get": { + "operationId": "ListConstituentOnlinePresences", + "summary": "List constituent online presences", + "description": "Lists the online presences for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive online presences?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfOnlinePresenceRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the online presences." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/phones": { + "get": { + "operationId": "ListConstituentPhones", + "summary": "List constituent phones", + "description": "Lists the phones for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive phones?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfPhoneRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the phones." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/profilepicture": { + "get": { + "operationId": "GetConstituentProfilePicture", + "summary": "Get a constituent profile picture", + "description": "Returns the current profile picture for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent for whom the profile picture is to be retrieved.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ProfilePictureRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the profile picture." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + }, + "patch": { + "operationId": "EditConstituentProfilePicture", + "summary": "Update a constituent profile picture", + "description": "Updates the current profile picture for a constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent whose profile picture is to be updated.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ProfilePictureEdit" + }, + "description": "An object that represents the properties for the constituent profile picture to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the profile picture." + }, + "400": { + "description": "Returned when the specified profile picture ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the profile picture." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/relationships": { + "get": { + "operationId": "ListConstituentRelationships", + "summary": "List constituent relationships", + "description": "Lists the relationships for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. There is no maximum.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfRelationshipRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the relationships." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/convert/{non_constituent_id}": { + "post": { + "operationId": "ConvertToConstituent", + "summary": "Convert to constituent", + "description": "Converts a non-constituent to a constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "non_constituent_id", + "in": "path", + "description": "The system record ID of the non-constituent record to convert.", + "required": true, + "type": "string", + "x-ms-summary": "Non-constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NonConstituentConversion" + }, + "description": "An object with fields for the conversion of the non-constituent.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully converts a non-constituent to a constituent. The response body contains the ID of the constituent.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConvertedConstituent" + } + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to convert the non-constituent to a constituent." + }, + "404": { + "description": "Returned when the specified non-constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/attachments": { + "post": { + "operationId": "CreateConstituentAttachment", + "summary": "Create a constituent attachment", + "description": "Creates a new constituent attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/attachments/{attachment_id}": { + "patch": { + "operationId": "EditConstituentAttachment", + "summary": "Update a constituent attachment", + "description": "Updates a constituent attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/constituent/v1/constituents/customfields": { + "post": { + "operationId": "CreateConstituentCustomField", + "summary": "Create a constituent custom field", + "description": "Creates a new constituent custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditConstituentCustomField", + "summary": "Update a constituent custom field", + "description": "Updates a constituent custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ConstituentCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/constituent/v1/constituents/customfields/categories/details": { + "get": { + "operationId": "ListConstituentCustomFieldCategoryDetails", + "summary": "List custom field categories", + "description": "Lists the constituent custom field category details.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/constituent/v1/constituents/search": { + "get": { + "operationId": "SearchConstituent", + "summary": "Search for a constituent", + "description": "Performs a constituent search based on the provided search text. Supports first name, last name, preferred name, former name, alias, email address, phone number, address, or lookup ID. Name combinations such as first name and last name or preferred name and last name are valid, but otherwise search only supports one parameter at a time. By default, searches include results that sound similar to your criteria. For example, searches for \"Smith\" include matches for \"Smyth\" and other alternative spellings. This search does not support wildcard characters such as * or ?. Search results are limited to 500 records.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "search_text", + "in": "query", + "description": "The search text. Supports first name, last name, preferred name, former name, alias, email address, phone number, address, or lookup ID. Name combinations such as first name and last name or preferred name and last name are valid, but otherwise search only supports one parameter at a time. By default, searches include results that sound similar to your criteria. For example, searches for \"Smith\" include matches for \"Smyth\" and other alternative spellings. This search does not support wildcard characters such as * or ?. Search results are limited to 500 records.", + "required": true, + "type": "string", + "x-ms-summary": "Search text" + }, + { + "name": "fundraiser_status", + "in": "query", + "description": "Represents a comma-separated list of fundraiser statuses to filter the results. For example, \"Active,None\" returns only constituents whose fundraiser status is Active or None. Valid values for this filter are Active, Inactive, and None.", + "type": "string", + "x-ms-summary": "Fundraiser statuses", + "x-ms-visibility": "advanced" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive constituents in the response?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "search_field", + "in": "query", + "description": "Represents a field to search on. Currently, it only supports lookup_id. If it is provided with search_text, a constituent with lookup_id that matches the search_text will be returned.", + "type": "string", + "enum": [ + "lookup_id" + ], + "x-ms-summary": "Search field", + "x-ms-visibility": "advanced" + }, + { + "name": "strict_search", + "in": "query", + "description": "Exclude constituents whose names sound like the search text but are spelled differently?", + "type": "boolean", + "x-ms-summary": "Use strict search?", + "x-ms-visibility": "advanced" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit", + "x-ms-visibility": "advanced" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfSearchResultRead" + } + } + } + } + }, + "/constituent/v1/countries": { + "get": { + "operationId": "ListCountries", + "summary": "List country definitions", + "description": "Lists the country definitions.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfCountryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view countries." + } + } + } + }, + "/constituent/v1/educations": { + "post": { + "operationId": "CreateConstituentEducation", + "summary": "Create a constituent education", + "description": "Creates a new constituent education.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.EducationAdd" + }, + "description": "An object that represents the education to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an education. The response body contains the ID of the new education.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentEducation" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the education." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/educations/{education_id}": { + "patch": { + "operationId": "EditConstituentEducation", + "summary": "Update a constituent education", + "description": "Updates a constituent education.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "education_id", + "in": "path", + "description": "The system record ID of the education record to update.", + "required": true, + "type": "string", + "x-ms-summary": "Education ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.EducationEdit" + }, + "description": "An object that represent properties of the education record to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the education." + }, + "400": { + "description": "Returned when the specified education ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the education." + }, + "404": { + "description": "Returned when the specified education is not found." + } + } + } + }, + "/constituent/v1/emailaddresses": { + "post": { + "operationId": "CreateConstituentEmailAddress", + "summary": "Create a constituent email address", + "description": "Creates a new constituent email address.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.EmailAddressAdd" + }, + "description": "An object that represents the email address to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an email address. The response body contains the ID of the new email address.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentEmailAddress" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the email address." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/emailaddresses/{email_address_id}": { + "patch": { + "operationId": "EditConstituentEmailAddress", + "summary": "Update a constituent email address", + "description": "Updates a constituent email address.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "email_address_id", + "in": "path", + "description": "The system record ID of the email address to update.", + "required": true, + "type": "string", + "x-ms-summary": "Email address ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.EmailAddressEdit" + }, + "description": "An object that represents the properties of the email address to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the email address." + }, + "400": { + "description": "Returned when the specified email address ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the email address." + }, + "404": { + "description": "Returned when the specified email address is not found." + } + } + } + }, + "/constituent/v1/nameformatconfigurations": { + "get": { + "operationId": "ListNameFormatConfigurations", + "summary": "List name format configurations", + "description": "List the name format configurations.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfNameFormatConfigurationRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view the name format configurations." + } + } + } + }, + "/constituent/v1/nameformats": { + "post": { + "operationId": "CreateConstituentNameFormat", + "summary": "Create a constituent name format", + "description": "Creates a new constituent name format.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NameFormatAdd" + }, + "description": "An object that represents the name format to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an name format. The response body contains the ID of the new name format.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedNameFormat" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the name format." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/nameformats/{name_format_id}": { + "patch": { + "operationId": "EditConstituentNameFormat", + "summary": "Update a constituent name format", + "description": "Updates a constituent name format.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "name_format_id", + "in": "path", + "description": "The system record ID of the name format to update.", + "required": true, + "type": "string", + "x-ms-summary": "Name format ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NameFormatEdit" + }, + "description": "An object that represents the properties of the name format to edit.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the name format." + }, + "400": { + "description": "Returned when the specified name format ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the name format." + }, + "404": { + "description": "Returned when the specified name format is not found." + } + } + } + }, + "/constituent/v1/notes": { + "post": { + "operationId": "CreateConstituentNote", + "summary": "Create a constituent note", + "description": "Creates a new constituent note.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NoteAdd" + }, + "description": "An object that represents the note to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a note. The response body contains the ID of the new note.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentNote" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the note." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/notes/{note_id}": { + "patch": { + "operationId": "EditConstituentNote", + "summary": "Update a constituent note", + "description": "Updates a constituent note.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "note_id", + "in": "path", + "description": "The system record ID of the note to update.", + "required": true, + "type": "string", + "x-ms-summary": "Note ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NoteEdit" + }, + "description": "An object that represent properties of the note to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the note." + }, + "400": { + "description": "Returned when the specified note ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the note." + }, + "404": { + "description": "Returned when the specified note is not found." + } + } + } + }, + "/constituent/v1/onlinepresences": { + "post": { + "operationId": "CreateConstituentOnlinePresence", + "summary": "Create a constituent online presence", + "description": "Creates a new constituent online presence.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.OnlinePresenceAdd" + }, + "description": "An object that represents the online presence to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an online presence. The response body contains the ID of the new online presence.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentOnlinePresence" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the online presence." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/onlinepresences/{online_presence_id}": { + "patch": { + "operationId": "EditConstituentOnlinePresence", + "summary": "Update a constituent online presence", + "description": "Updates a constituent online presence.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "online_presence_id", + "in": "path", + "description": "The system record ID of the online presence to update.", + "required": true, + "type": "string", + "x-ms-summary": "Online presence ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.OnlinePresenceEdit" + }, + "description": "An object that represents the properties of the online presence to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the online presence." + }, + "400": { + "description": "Returned when the specified online presence ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the online presence." + }, + "404": { + "description": "Returned when the specified online presence is not found." + } + } + } + }, + "/constituent/v1/phones": { + "post": { + "operationId": "CreateConstituentPhone", + "summary": "Create a constituent phone", + "description": "Creates a new constituent phone.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.PhoneAdd" + }, + "description": "An object that represents the phone to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a phone. The response body contains the ID of the new phone.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentPhone" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the phone." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/phones/{phone_id}": { + "patch": { + "operationId": "EditConstituentPhone", + "summary": "Update a constituent phone", + "description": "Updates a constituent phone.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "phone_id", + "in": "path", + "description": "The system record ID of the phone to update.", + "required": true, + "type": "string", + "x-ms-summary": "Phone ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.PhoneEdit" + }, + "description": "An object that represents the properties of the phone to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the phone." + }, + "400": { + "description": "Returned when the specified phone ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the phone." + }, + "404": { + "description": "Returned when the specified phone is not found." + } + } + } + }, + "/constituent/v1/primarynameformats": { + "post": { + "operationId": "CreateConstituentPrimaryNameFormat", + "summary": "Create a constituent primary name format", + "description": "Creates a primary name format for a constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.PrimaryNameFormatAdd" + }, + "description": "An object that represents the primary name format to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an primary name format. The response body contains the ID of the new primary name format.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedNameFormat" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the primary name format." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/primarynameformats/{primary_name_format_id}": { + "patch": { + "operationId": "EditConstituentPrimaryNameFormat", + "summary": "Update a constituent primary name format", + "description": "Updates the primary name format for a constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "primary_name_format_id", + "in": "path", + "description": "The system record ID of the primary name format to update.", + "required": true, + "type": "string", + "x-ms-summary": "Name format ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.PrimaryNameFormatEdit" + }, + "description": "An object that represents the properties of the primary name format to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the primary name format." + }, + "400": { + "description": "Returned when the specified primary name format ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the primary name format." + }, + "404": { + "description": "Returned when the specified primary name format is not found." + } + } + } + }, + "/constituent/v1/relationships/{relationship_id}": { + "patch": { + "operationId": "EditConstituentRelationship", + "summary": "Update a constituent relationship", + "description": "Updates a relationship for a constituent. If a reciprocal relationship exists, it is also modified to reflect the changes. This does not include changes to the \"comments\" property, which is specific to each record and can be modified independently on each record.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "relationship_id", + "in": "path", + "description": "The system record ID of the relationship to update.", + "required": true, + "type": "string", + "x-ms-summary": "Relationship ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.RelationshipEdit" + }, + "description": "An object that represents the properties of the relationship to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the relationship." + }, + "400": { + "description": "Returned when the specified relationship ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the relationship." + }, + "404": { + "description": "Returned when the specified relationship is not found." + } + } + } + }, + "/constituent/v1/virtual/individuals": { + "post": { + "operationId": "CreateIndividualConstituent", + "summary": "Create an individual constituent", + "description": "Creates a new individual constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.Virtual.IndividualAdd" + }, + "description": "An object that represents the constituent to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a constituent. The response body contains the ID of the new constituent.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedIndividualConstituent" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create a constituent." + } + } + } + }, + "/constituent/v1/virtual/individualrelationships": { + "post": { + "operationId": "CreateIndividualRelationship", + "summary": "Create an individual relationship", + "description": "Creates a new individual relationship. If the relationship is with another constituent, a reciprocal relationship is created for that constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.Virtual.IndividualRelationshipAdd" + }, + "description": "An object that represents the relationship to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a relationship. The response body contains the ID of the new relationship.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedIndividualRelationship" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the relationship." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/virtual/organizations": { + "post": { + "operationId": "CreateOrganizationConstituent", + "summary": "Create an organization constituent", + "description": "Creates a new organization constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.Virtual.OrganizationAdd" + }, + "description": "An object that represents the constituent to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a constituent. The response body contains the ID of the new constituent.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedOrganizationConstituent" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create a constituent." + } + } + } + }, + "/constituent/v1/virtual/organizationrelationships": { + "post": { + "operationId": "CreateOrganizationRelationship", + "summary": "Create an organization relationship", + "description": "Creates a new organization relationship. If the relationship is with another constituent, a reciprocal relationship is created for that constituent.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.Virtual.OrganizationRelationshipAdd" + }, + "description": "An object that represents the relationship to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a relationship. The response body contains the ID of the new relationship.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedOrganizationRelationship" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the relationship." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/fundraising/v1/fundraisers/assignments": { + "post": { + "operationId": "CreateFundraiserAssignment", + "summary": "Create a fundraiser assignment", + "description": "Creates a new fundraiser assignment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundraiserAssignmentAdd" + }, + "description": "An object that represents the fundraising assignment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an assignment.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedFundraiserAssignment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the assignment." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/fundraising/v1/fundraisers/{fundraiser_id}/assignments": { + "get": { + "operationId": "ListFundraiserAssignments", + "summary": "List fundraiser assignments", + "description": "List the assignments for a fundraiser.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "fundraiser_id", + "in": "path", + "description": "The system record ID of the fundraiser for whom assignments are to be returned.", + "required": true, + "type": "string", + "x-ms-summary": "Fundraiser ID", + "x-ms-url-encoding": "single" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfFundraiserAssignmentRead" + } + }, + "400": { + "description": "Returned when the specified ID is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the fundraiser assignments." + }, + "404": { + "description": "Returned when the specified fundraiser is not found." + } + } + } + }, + "/list/v1/lists": { + "get": { + "operationId": "ListLists", + "summary": "List lists", + "description": "Get a list of lists.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_type", + "in": "query", + "description": "The type of list to return.", + "required": true, + "type": "string", + "x-ms-summary": "List type", + "default": "Constituent", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ListApi.ApiCollectionOfList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues": { + "get": { + "operationId": "GetDynamicValues", + "summary": "Get dynamic values", + "description": "List dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "route", + "in": "query", + "description": "The route within the specified SKY API to call to produce the values for the dynamic list.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/customfields": { + "get": { + "operationId": "GetCustomFieldCodeTableDynamicValues", + "summary": "Get custom field code table dynamic values", + "description": "List custom field code table dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category_name", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/customfields": { + "get": { + "operationId": "GetCustomFieldDynamicProperties", + "summary": "Get custom field dynamic properties", + "description": "List custom field dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the endpoint that will be used to fetch the custom field category definition.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "CommPrefApi.ConsentCategory": { + "type": "object", + "description": "Consent category", + "properties": { + "description": { + "type": "string", + "description": "The name of the consent category.", + "x-ms-summary": "Description" + }, + "inactive": { + "type": "boolean", + "description": "Is the consent category inactive?", + "x-ms-summary": "Inactive?" + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The placement of the category in the order of category table values, if defined.", + "x-ms-summary": "Sequence" + } + } + }, + "CommPrefApi.ConsentCategoryCollection": { + "type": "object", + "description": "Consent categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of consent categories in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of consent categories included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.ConsentCategory" + } + } + } + }, + "CommPrefApi.ConsentChannel": { + "type": "object", + "description": "Consent channel", + "properties": { + "description": { + "type": "string", + "description": "The name of the consent channel.", + "x-ms-summary": "Description" + } + } + }, + "CommPrefApi.ConsentChannelCollection": { + "type": "object", + "description": "Consent channels", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of consent channels in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of consent channels included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.ConsentChannel" + } + } + } + }, + "CommPrefApi.ConsentSource": { + "type": "object", + "description": "Consent source", + "properties": { + "description": { + "type": "string", + "description": "The name of the consent source.", + "x-ms-summary": "Description" + }, + "inactive": { + "type": "boolean", + "description": "Is the consent source inactive?", + "x-ms-summary": "Inactive?" + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The placement of the source in the order of source table values, if defined.", + "x-ms-summary": "Sequence" + } + } + }, + "CommPrefApi.ConsentSourceCollection": { + "type": "object", + "description": "Consent sources", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of consent sources in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of consent sources included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.ConsentSource" + } + } + } + }, + "CommPrefApi.ConstituentConsentAdd": { + "type": "object", + "description": "Represents the consent entity to add to the specified constituent.", + "required": [ + "constituent_id", + "channel", + "consent_date", + "constituent_consent_response" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the consent record.", + "x-ms-summary": "Constituent ID" + }, + "channel": { + "type": "string", + "description": "The channel that the consent response applies to.", + "x-ms-summary": "Channel", + "x-ms-dynamic-values": { + "operationId": "ListConsentChannels", + "value-collection": "value", + "value-path": "description", + "value-title": "description" + }, + "x-ms-dynamic-list": { + "operationId": "ListConsentChannels", + "itemsPath": "value", + "itemValuePath": "description", + "itemTitlePath": "description" + } + }, + "category": { + "type": "string", + "description": "The category that the consent response applies to.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListConsentCategories", + "value-collection": "value", + "value-path": "description", + "value-title": "description" + }, + "x-ms-dynamic-list": { + "operationId": "ListConsentCategories", + "itemsPath": "value", + "itemValuePath": "description", + "itemTitlePath": "description" + } + }, + "source": { + "type": "string", + "description": "The source of the consent response from the constituent.", + "x-ms-summary": "Source", + "x-ms-dynamic-values": { + "operationId": "ListConsentSources", + "value-collection": "value", + "value-path": "description", + "value-title": "description" + }, + "x-ms-dynamic-list": { + "operationId": "ListConsentSources", + "itemsPath": "value", + "itemValuePath": "description", + "itemTitlePath": "description" + } + }, + "constituent_consent_response": { + "type": "string", + "description": "How the constituent responded to consent for the specified channel/category.", + "x-ms-summary": "Response", + "enum": [ + "OptIn", + "OptOut", + "NoResponse" + ] + }, + "consent_date": { + "type": "string", + "format": "date-time", + "description": "The date the consent response was received (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "consent_statement": { + "type": "string", + "maxLength": 7999, + "description": "The statement the constituent responded to when providing consent.", + "x-ms-summary": "Consent statement" + }, + "privacy_notice": { + "type": "string", + "maxLength": 7999, + "description": "The privacy notice provided to the constituent.", + "x-ms-summary": "Privacy notice" + } + } + }, + "CommPrefApi.ConstituentConsentRead": { + "type": "object", + "description": "Represents a consent entity for a constituent.", + "properties": { + "id": { + "description": "The system record ID of the consent record.", + "type": "string", + "x-ms-summary": "ID" + }, + "channel": { + "type": "string", + "description": "The channel that the consent response applies to.", + "x-ms-summary": "Channel" + }, + "category": { + "type": "string", + "description": "The category that the consent response applies to.", + "x-ms-summary": "Category" + }, + "source": { + "type": "string", + "description": "The source of the consent response from the constituent.", + "x-ms-summary": "Source" + }, + "constituent_consent_response": { + "type": "string", + "description": "How the constituent responded to consent for the specified channel/category.", + "x-ms-summary": "Response", + "enum": [ + "OptIn", + "OptOut", + "NoResponse" + ] + }, + "consent_date": { + "type": "string", + "format": "date-time", + "description": "The date the consent response was received.", + "x-ms-summary": "Date" + }, + "consent_statement": { + "type": "string", + "description": "The statement the constituent responded to when providing consent.", + "x-ms-summary": "Consent statement" + }, + "privacy_notice": { + "type": "string", + "maxLength": 7999, + "description": "The privacy notice provided to the constituent.", + "x-ms-summary": "Privacy notice" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date the consent response was added.", + "x-ms-summary": "Date added" + }, + "user_name": { + "type": "string", + "description": "The user that added the consent response.", + "x-ms-summary": "Added by" + } + } + }, + "CommPrefApi.ConstituentConsentReadCollection": { + "type": "object", + "description": "Consent records", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of consent records in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of consent records included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.ConstituentConsentRead" + } + } + } + }, + "CommPrefApi.ConstituentSolicitCodeAdd": { + "type": "object", + "description": "Solicit codes provide guidance on how to contact constituents. These rules describe instructions and restrictions about when to reach out to constituents and how to tailor communications to honor their requests.", + "required": [ + "constituent_id", + "solicit_code" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the solicit code.", + "x-ms-summary": "Constituent ID" + }, + "solicit_code": { + "type": "string", + "description": "Communication instructions and/or restrictions for a constituent.", + "x-ms-summary": "Solicit code", + "x-ms-dynamic-values": { + "operationId": "ListSolicitCodes", + "value-collection": "value", + "value-path": "description", + "value-title": "description" + }, + "x-ms-dynamic-list": { + "operationId": "ListSolicitCodes", + "itemsPath": "value", + "itemValuePath": "description", + "itemTitlePath": "description" + } + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "Start date" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "End date" + } + } + }, + "CommPrefApi.ConstituentSolicitCodeEdit": { + "type": "object", + "description": "Solicit codes provide guidance on how to contact constituents. These rules describe instructions and restrictions about when to reach out to constituents and how to tailor communications to honor their requests.", + "properties": { + "solicit_code": { + "type": "string", + "description": "Communication instructions and/or restrictions for a constituent.", + "x-ms-summary": "Solicit code", + "x-ms-dynamic-values": { + "operationId": "ListSolicitCodes", + "value-collection": "value", + "value-path": "description", + "value-title": "description" + }, + "x-ms-dynamic-list": { + "operationId": "ListSolicitCodes", + "itemsPath": "value", + "itemValuePath": "description", + "itemTitlePath": "description" + } + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "Start date" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "End date" + } + } + }, + "CommPrefApi.ConstituentSolicitCodeRead": { + "type": "object", + "description": "Solicit code", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the constituent solicit code.", + "x-ms-summary": "ID" + }, + "solicit_code": { + "type": "string", + "description": "Communication instructions and/or restrictions for a constituent.", + "x-ms-summary": "Solicit code" + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "Start date" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the solicit code (ex: '2005-09-18').", + "x-ms-summary": "End date" + } + } + }, + "CommPrefApi.ConstituentSolicitCodeReadCollection": { + "type": "object", + "description": "Solicit codes", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of constituent solicit codes in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of constituent solicit codes included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.ConstituentSolicitCodeRead" + } + } + } + }, + "CommPrefApi.CreatedConstituentConsent": { + "type": "object", + "description": "Created constituent consent", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created consent record.", + "x-ms-summary": "ID" + } + } + }, + "CommPrefApi.CreatedConstituentSolicitCode": { + "type": "object", + "description": "Created constituent solicit code", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent solicit code.", + "x-ms-summary": "ID" + } + } + }, + "CommPrefApi.SolicitCode": { + "type": "object", + "description": "Solicit code", + "properties": { + "description": { + "type": "string", + "description": "The name of the solicit code.", + "x-ms-summary": "Description" + } + } + }, + "CommPrefApi.SolicitCodeCollection": { + "type": "object", + "description": "Solicit codes", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of solicit codes in the list.", + "readOnly": true, + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of solicit codes included in the response.", + "items": { + "$ref": "#/definitions/CommPrefApi.SolicitCode" + } + } + } + }, + "ConstituentApi.AddressAdd": { + "type": "object", + "description": "Addresses store information about constituent residences and other addresses along with information about where or whether to send mail.", + "required": [ + "constituent_id", + "type" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the address.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "Address type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "addresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "addresstypes" + } + } + } + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "Country", + "x-ms-dynamic-values": { + "operationId": "ListCountries", + "value-collection": "value", + "value-path": "id", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCountries", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name" + } + }, + "address_lines": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The address lines.", + "x-ms-summary": "Address lines" + }, + "city": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "City" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "State" + }, + "postal_code": { + "type": "string", + "maxLength": 12, + "minLength": 0, + "description": "The postal code of the address.", + "x-ms-summary": "Postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "Suburb" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "County" + }, + "information_source": { + "type": "string", + "description": "The information source for the address.", + "x-ms-summary": "Information source", + "x-ms-visibility": "advanced" + }, + "region": { + "type": "string", + "description": "The region for the address.", + "x-ms-summary": "Region", + "x-ms-visibility": "advanced" + }, + "cart": { + "type": "string", + "maxLength": 20, + "minLength": 0, + "description": "The carrier route (CART) for the address.", + "x-ms-summary": "CART", + "x-ms-visibility": "advanced" + }, + "lot": { + "type": "string", + "description": "The line of travel (LOT) for the address.", + "x-ms-summary": "LOT", + "x-ms-visibility": "advanced" + }, + "dpc": { + "type": "string", + "description": "The delivery point code (DPC) for the address.", + "maxLength": 8, + "minLength": 0, + "x-ms-summary": "DPC", + "x-ms-visibility": "advanced" + }, + "start": { + "type": "string", + "format": "date", + "description": "The date when the constituent began residing at this address (ex: '2005-09-18').", + "x-ms-summary": "Valid from", + "x-ms-visibility": "advanced" + }, + "end": { + "type": "string", + "format": "date", + "description": "The date when the constituent ceased to reside at this address (ex: '2005-09-18').", + "x-ms-summary": "Valid to", + "x-ms-visibility": "advanced" + }, + "preferred": { + "type": "boolean", + "description": "Is this the constituent's preferred address?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_mail": { + "type": "boolean", + "description": "Can the constituent be contacted at this address?", + "x-ms-summary": "Do not mail?", + "x-ms-visibility": "advanced" + }, + "seasonal_start": { + "type": "object", + "description": "The time of year that the constituent begins residing at this address.", + "x-ms-summary": "Seasonal start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "seasonal_end": { + "type": "object", + "description": "The time of the year ceases to reside at this address.", + "x-ms-summary": "Seasonal end", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "ConstituentApi.AddressEdit": { + "type": "object", + "description": "Addresses store information about constituent residences and other addresses along with information about where or whether to send mail.", + "properties": { + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "Address type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "addresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "addresstypes" + } + } + } + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "Country", + "x-ms-dynamic-values": { + "operationId": "ListCountries", + "value-collection": "value", + "value-path": "id", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCountries", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name" + } + }, + "address_lines": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The address lines.", + "x-ms-summary": "Address lines" + }, + "city": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "City" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "State" + }, + "postal_code": { + "type": "string", + "maxLength": 12, + "minLength": 0, + "description": "The postal code of the address.", + "x-ms-summary": "Postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "Suburb" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "County" + }, + "information_source": { + "type": "string", + "description": "The information source for the address.", + "x-ms-summary": "Information source", + "x-ms-visibility": "advanced" + }, + "region": { + "type": "string", + "description": "The region for the address.", + "x-ms-summary": "Region", + "x-ms-visibility": "advanced" + }, + "cart": { + "type": "string", + "maxLength": 20, + "minLength": 0, + "description": "The carrier route (CART) for the address.", + "x-ms-summary": "CART", + "x-ms-visibility": "advanced" + }, + "lot": { + "type": "string", + "description": "The line of travel (LOT) for the address.", + "x-ms-summary": "LOT", + "x-ms-visibility": "advanced" + }, + "dpc": { + "type": "string", + "description": "The delivery point code (DPC) for the address.", + "maxLength": 8, + "minLength": 0, + "x-ms-summary": "DPC", + "x-ms-visibility": "advanced" + }, + "start": { + "type": "string", + "format": "date", + "description": "The date when the constituent began residing at this address (ex: '2005-09-18').", + "x-ms-summary": "Valid from", + "x-ms-visibility": "advanced" + }, + "end": { + "type": "string", + "format": "date", + "description": "The date when the constituent ceased to reside at this address (ex: '2005-09-18').", + "x-ms-summary": "Valid to", + "x-ms-visibility": "advanced" + }, + "preferred": { + "type": "boolean", + "description": "Is this the constituent's preferred address?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_mail": { + "type": "boolean", + "description": "Can the constituent be contacted at this address?", + "x-ms-summary": "Do not mail?", + "x-ms-visibility": "advanced" + }, + "seasonal_start": { + "type": "object", + "description": "The time of year that the constituent begins residing at this address.", + "x-ms-summary": "Seasonal start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "seasonal_end": { + "type": "object", + "description": "The time of the year ceases to reside at this address.", + "x-ms-summary": "Seasonal end", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "ConstituentApi.AddressRead": { + "type": "object", + "description": "Address", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the address.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "Type" + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "Country" + }, + "address_lines": { + "type": "string", + "description": "The address lines.", + "x-ms-summary": "Address lines" + }, + "city": { + "type": "string", + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "City" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "State" + }, + "postal_code": { + "type": "string", + "description": "The postal code of the address.", + "x-ms-summary": "Postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "Suburb" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "County" + }, + "formatted_address": { + "type": "string", + "description": "The formatted address in the configured format of the country.", + "x-ms-summary": "Formatted address" + }, + "information_source": { + "type": "string", + "description": "The information source for the address.", + "x-ms-summary": "Information source" + }, + "region": { + "type": "string", + "description": "The region for the address.", + "x-ms-summary": "Region" + }, + "cart": { + "type": "string", + "maxLength": 20, + "minLength": 0, + "description": "The carrier route (CART) for the address.", + "x-ms-summary": "CART" + }, + "lot": { + "type": "string", + "description": "The line of travel (LOT) for the address.", + "x-ms-summary": "LOT" + }, + "dpc": { + "type": "string", + "description": "The delivery point code (DPC) for the address.", + "maxLength": 8, + "minLength": 0, + "x-ms-summary": "DPC" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent began residing at this address.", + "x-ms-summary": "Valid from" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent ceased to reside at this address.", + "x-ms-summary": "Valid to" + }, + "preferred": { + "type": "boolean", + "description": "Is this the constituent's preferred address?", + "x-ms-summary": "Primary?" + }, + "inactive": { + "type": "boolean", + "description": "Is the address inactive (meaning, the current date is before any end date)?", + "x-ms-summary": "Inactive?" + }, + "do_not_mail": { + "type": "boolean", + "description": "Can the constituent be contacted at this address?", + "x-ms-summary": "Do not mail?" + }, + "seasonal_start": { + "type": "object", + "description": "The time of year that the constituent begins residing at this address.", + "x-ms-summary": "Seasonal start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "seasonal_end": { + "type": "object", + "description": "The time of the year ceases to reside at this address.", + "x-ms-summary": "Seasonal end", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the address was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the address was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.AliasAdd": { + "type": "object", + "description": "Aliases provide secondary identification for individuals or organizations. For example, aliases can be stage names or acronyms.", + "required": [ + "constituent_id", + "name" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the alias.", + "x-ms-summary": "Constituent ID" + }, + "name": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The name to use as the constituent's alias. Character limit: 100.", + "x-ms-summary": "Alias" + }, + "type": { + "type": "string", + "description": "The alias type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "aliastypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "aliastypes" + } + } + } + } + } + }, + "ConstituentApi.AliasEdit": { + "type": "object", + "description": "Aliases provide secondary identification for individuals or organizations. For example, aliases can be stage names or acronyms.", + "properties": { + "name": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The name to use as the constituent's alias. Character limit: 100.", + "x-ms-summary": "Alias" + }, + "type": { + "type": "string", + "description": "The alias type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "aliastypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "aliastypes" + } + } + } + } + } + }, + "ConstituentApi.AliasRead": { + "type": "object", + "description": "Alias", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the alias.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name to use as the constituent's alias.", + "x-ms-summary": "Alias" + }, + "type": { + "type": "string", + "description": "The alias type.", + "x-ms-summary": "Type" + } + } + }, + "ConstituentApi.ApiCollectionOfAddressRead": { + "type": "object", + "description": "Addresses", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.AddressRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfAliasRead": { + "type": "object", + "description": "Aliases", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.AliasRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfConstituentAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentAttachmentRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfConstituentCodeRead": { + "type": "object", + "description": "Constituent codes", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentCodeRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfConstituentCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentCustomFieldRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfConstituentRead": { + "type": "object", + "description": "Constituents", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfCountryRead": { + "type": "object", + "description": "Countries", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.CountryRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfCustomFieldCategoryRead": { + "type": "object", + "description": "Custom field categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.CustomFieldCategoryRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfEducationRead": { + "type": "object", + "description": "Educations", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.EducationRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfEmailAddressRead": { + "type": "object", + "description": "Email addresses", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.EmailAddressRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfFundraiserAssignmentRead": { + "type": "object", + "description": "Fundraiser assignments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.FundraiserAssignmentRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfMembershipRead": { + "type": "object", + "description": "Memberships", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.MembershipRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfNameFormatConfigurationRead": { + "type": "object", + "description": "Name format configurations", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.NameFormatConfigurationRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfNoteRead": { + "type": "object", + "description": "Notes", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.NoteRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfOnlinePresenceRead": { + "type": "object", + "description": "Online presences", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.OnlinePresenceRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfPhoneRead": { + "type": "object", + "description": "Phones", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.PhoneRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfRelationshipRead": { + "type": "object", + "description": "Relationships", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.RelationshipRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfSearchResultRead": { + "type": "object", + "description": "Search results", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.SearchResultRead" + } + } + } + }, + "ConstituentApi.ConstituentAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the attachment.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "ConstituentApi.ConstituentAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "ConstituentApi.ConstituentAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the attachment.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "ConstituentApi.ConstituentCodeAdd": { + "type": "object", + "description": "Constituent codes define the high-level affiliations between constituents and your organization - such as Board member, Vendor, and Volunteer - to provide context for why constituents are in the database.", + "required": [ + "constituent_id", + "description" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the constituent code.", + "x-ms-summary": "Constituent ID" + }, + "description": { + "type": "string", + "description": "The constituent code.", + "x-ms-summary": "Constituent code", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "constituentcodetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "constituentcodetypes" + } + } + } + }, + "start": { + "type": "object", + "description": "The start date of the constituent code.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date of the constituent code.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The numeric sequence associated with the constituent code.", + "x-ms-summary": "Sequence" + } + } + }, + "ConstituentApi.ConstituentCodeEdit": { + "type": "object", + "description": "Constituent codes define the high-level affiliations between constituents and your organization - such as Board member, Vendor, and Volunteer - to provide context for why constituents are in the database.", + "properties": { + "start": { + "type": "object", + "description": "The start date of the constituent code.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date of the constituent code.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The numeric sequence associated with the constituent code.", + "x-ms-summary": "Sequence" + } + } + }, + "ConstituentApi.ConstituentCodeLink": { + "type": "object", + "description": "Constituent codes define the high-level affiliations between constituents and your organization - such as Board member, Vendor, and Volunteer - to provide context for why constituents are in the database.", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the constituent code.", + "x-ms-summary": "ID" + }, + "start": { + "type": "object", + "description": "The start date of the constituent code.", + "x-ms-summary": "start date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date of the constituent code.", + "x-ms-summary": "end date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The sequence of the constituent code.", + "x-ms-summary": "sequence" + } + } + }, + "ConstituentApi.ConstituentCodeRead": { + "type": "object", + "description": "Constituent code", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the constituent code.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the constituent code.", + "x-ms-summary": "Constituent ID" + }, + "description": { + "type": "string", + "description": "The constituent code.", + "x-ms-summary": "Constituent code" + }, + "start": { + "type": "object", + "description": "The start date of the constituent code.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date of the constituent code.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "inactive": { + "type": "boolean", + "description": "Is the constituent code inactive?", + "x-ms-summary": "Inactive?" + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The numeric sequence associated with the constituent code.", + "x-ms-summary": "Sequence" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent code was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent code was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.ConstituentCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the custom field.", + "x-ms-summary": "Constituent ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListConstituentCustomFieldCategoryDetails", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListConstituentCustomFieldCategoryDetails", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "constituent", + "custom_field_type": "constituents", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "constituent" + }, + "custom_field_type": { + "value": "constituents" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "ConstituentApi.ConstituentCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListConstituentCustomFieldCategoryDetails", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListConstituentCustomFieldCategoryDetails", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "constituent", + "custom_field_type": "constituents", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "constituent" + }, + "custom_field_type": { + "value": "constituents" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "ConstituentApi.ConstituentCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the custom field.", + "x-ms-summary": "Constituent ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.ConstituentEdit": { + "type": "object", + "description": "Constituents are the individuals and organizations who support your organization by contributing time, money, and resources. The constituent entity stores information about donors, prospects, volunteers, general supporters, and more.", + "properties": { + "title": { + "type": "string", + "description": "The constituent's primary title (for individuals only).", + "x-ms-summary": "Title", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "titles" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "titles" + } + } + } + }, + "first": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's first name (for individuals only). Character limit: 50.", + "x-ms-summary": "First name" + }, + "last": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The constituent's last name (for individuals only). Character limit: 100.", + "x-ms-summary": "Last name" + }, + "name": { + "type": "string", + "description": "For individuals, this is a computed field that is not applicable for edit operations. For organization, this field is required and represents the organization's name. Character limit: 100.", + "x-ms-summary": "Organization name" + }, + "suffix": { + "type": "string", + "description": "The constituent's primary suffix (for individuals only).", + "x-ms-summary": "Suffix", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "suffixes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "suffixes" + } + } + } + }, + "preferred_name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's preferred name (for individuals only). Character limit: 50.", + "x-ms-summary": "Preferred name" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the constituent.", + "x-ms-summary": "Lookup ID" + }, + "gender": { + "type": "string", + "description": "The constituent's gender (for individuals only).", + "x-ms-summary": "Gender", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "genders" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "genders" + } + } + } + }, + "middle": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's middle name (for individuals only). Character limit: 50.", + "x-ms-summary": "Middle name", + "x-ms-visibility": "advanced" + }, + "former_name": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The constituent's former name (for individuals only). Character limit: 100.", + "x-ms-summary": "Former name", + "x-ms-visibility": "advanced" + }, + "title_2": { + "type": "string", + "description": "The constituent's secondary title (for individuals only).", + "x-ms-summary": "Title 2", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "titles" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "titles" + } + } + } + }, + "suffix_2": { + "type": "string", + "description": "The constituent's secondary suffix (for individuals only).", + "x-ms-summary": "Suffix 2", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "suffixes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "suffixes" + } + } + } + }, + "marital_status": { + "type": "string", + "description": "The constituent's marital status (for individuals only).", + "x-ms-summary": "Marital status", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "maritalstatuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "maritalstatuses" + } + } + } + }, + "gives_anonymously": { + "type": "boolean", + "description": "Does the constituent give anonymously?", + "x-ms-summary": "Gives anonymously?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is the constituent inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + }, + "birthdate": { + "type": "object", + "description": "The constituent's birthdate (for individuals only).", + "x-ms-summary": "Birthdate", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "birthplace": { + "type": "string", + "description": "The birthplace of the constituent (for individuals only).", + "x-ms-summary": "Birthplace", + "x-ms-visibility": "advanced" + }, + "ethnicity": { + "type": "string", + "description": "The ethnicity of the constituent (for individuals only).", + "x-ms-summary": "Ethnicity", + "x-ms-visibility": "advanced" + }, + "income": { + "type": "string", + "description": "The income for the constituent (for individuals only).", + "x-ms-summary": "Income", + "x-ms-visibility": "advanced" + }, + "religion": { + "type": "string", + "description": "The religion of the constituent (for individuals only).", + "x-ms-summary": "Religion", + "x-ms-visibility": "advanced" + }, + "industry": { + "type": "string", + "description": "The industry of the constituent (for organizations only).", + "x-ms-summary": "Industry", + "x-ms-visibility": "advanced" + }, + "num_employees": { + "type": "integer", + "format": "int32", + "description": "The number of employees at the organization.", + "x-ms-summary": "Number of employees", + "x-ms-visibility": "advanced" + }, + "matches_gifts": { + "type": "boolean", + "description": "Does the organization match gifts?", + "x-ms-summary": "Matches gifts?", + "x-ms-visibility": "advanced" + }, + "matching_gift_factor": { + "type": "number", + "format": "double", + "description": "The matching gift factor (for organizations only).", + "x-ms-summary": "Matching gift factor", + "x-ms-visibility": "advanced" + }, + "matching_gift_per_gift_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match amount per gift for the constituent (for organizations only).", + "x-ms-summary": "Min match per gift", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_per_gift_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match amount per gift for the constituent (for organizations only).", + "x-ms-summary": "Max match per gift", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_total_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match total for the constituent (for organizations only).", + "x-ms-summary": "Min match per constit", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_total_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match total for the constituent (for organizations only).", + "x-ms-summary": "Max match per constit", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_notes": { + "type": "string", + "description": "The matching gift notes for the constituent (for organizations only).", + "x-ms-summary": "Matching gift notes", + "x-ms-visibility": "advanced" + }, + "deceased": { + "type": "boolean", + "description": "Is the constituent deceased (for individuals only)?", + "x-ms-summary": "Deceased?", + "x-ms-visibility": "advanced" + }, + "deceased_date": { + "type": "object", + "description": "The date when the constituent died (for individuals only).", + "x-ms-summary": "Deceased date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "ConstituentApi.ConstituentRead": { + "type": "object", + "description": "Constituent", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the constituent. This is not the same as the user-definable constituent identifier, which is stored in the lookup_id.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The type of constituent.", + "enum": [ + "Individual", + "Organization" + ], + "x-ms-summary": "Type" + }, + "title": { + "type": "string", + "description": "The constituent's primary title (for individuals only).", + "x-ms-summary": "Title" + }, + "first": { + "type": "string", + "description": "The constituent's first name (for individuals only).", + "x-ms-summary": "First name" + }, + "last": { + "description": "The constituent's last name (for individuals only).", + "type": "string", + "x-ms-summary": "Last name" + }, + "name": { + "type": "string", + "description": "For individuals, this field is the full name of the constituent based on the target organization's display name settings. For organizations, this is the organization's name.", + "x-ms-summary": "Name" + }, + "preferred_name": { + "type": "string", + "description": "The constituent's preferred name (for individuals only).", + "x-ms-summary": "Preferred name" + }, + "suffix": { + "type": "string", + "description": "The constituent's primary suffix (for individuals only).", + "x-ms-summary": "Suffix" + }, + "lookup_id": { + "description": "The user-defined identifier for the constituent.", + "type": "string", + "x-ms-summary": "Lookup ID" + }, + "email": { + "type": "object", + "description": "The constituent's primary email address, or the constituent's first active email address if no active email address is marked as primary.", + "x-ms-summary": "Primary email", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the email address.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "type" + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "address" + }, + "do_not_email": { + "type": "boolean", + "description": "Can the constituent be contacted at this email address?", + "x-ms-summary": "do not email?" + }, + "inactive": { + "type": "boolean", + "description": "Is this email address inactive?", + "x-ms-summary": "inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the email address was created.", + "x-ms-summary": "date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the email address was last modified.", + "x-ms-summary": "date modified" + } + } + }, + "phone": { + "type": "object", + "description": "The constituent's primary phone, or the constituent's first active phone if no active phone is marked as primary.", + "x-ms-summary": "Primary phone", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the phone.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "type" + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "number" + }, + "do_not_call": { + "type": "boolean", + "description": "Can the constituent be contacted at this number?", + "x-ms-summary": "do not call?" + }, + "inactive": { + "type": "boolean", + "description": "Is this phone number inactive?", + "x-ms-summary": "inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the phone was created.", + "x-ms-summary": "date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the phone was last modified.", + "x-ms-summary": "date modified" + } + } + }, + "online_presence": { + "type": "object", + "description": "The constituent's primary online presence, or the constituent's first active online presence if no active online presence is marked as primary.", + "x-ms-summary": "Primary online presence", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the online presence.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "type" + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "link" + }, + "inactive": { + "type": "boolean", + "description": "Is this online presence inactive?", + "x-ms-summary": "inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the online presence was created.", + "x-ms-summary": "date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the online presence was last modified.", + "x-ms-summary": "date modified" + } + } + }, + "address": { + "type": "object", + "description": "The constituent's preferred address.", + "x-ms-summary": "Preferred address", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the address.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "type" + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "country" + }, + "address_lines": { + "type": "string", + "description": "The address lines.", + "x-ms-summary": "lines" + }, + "city": { + "type": "string", + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "city" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "state" + }, + "postal_code": { + "type": "string", + "description": "The postal code of the address.", + "x-ms-summary": "postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "suburb" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "county" + }, + "formatted_address": { + "type": "string", + "description": "The formatted address in the configured format of the country.", + "x-ms-summary": "formatted" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent began residing at this address.", + "x-ms-summary": "valid from" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent ceased to reside at this address.", + "x-ms-summary": "valid to" + }, + "inactive": { + "type": "boolean", + "description": "Is the address inactive (meaning, the current date is before any end date)?", + "x-ms-summary": "inactive?" + }, + "do_not_mail": { + "type": "boolean", + "description": "Can the constituent be contacted at this address?", + "x-ms-summary": "do not mail?" + }, + "seasonal_start": { + "type": "object", + "description": "The time of year that the constituent begins residing at this address.", + "x-ms-summary": "seasonal start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "seasonal_end": { + "type": "object", + "description": "The time of the year ceases to reside at this address.", + "x-ms-summary": "seasonal end", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the address was created.", + "x-ms-summary": "date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the address was last modified.", + "x-ms-summary": "date modified" + } + } + }, + "gender": { + "type": "string", + "description": "The constituent's gender (for individuals only).", + "x-ms-summary": "Gender" + }, + "middle": { + "type": "string", + "description": "The constituent's middle name (for individuals only).", + "x-ms-summary": "Middle name" + }, + "former_name": { + "type": "string", + "description": "The constituent's former name (for individuals only).", + "x-ms-summary": "Former name" + }, + "title_2": { + "type": "string", + "description": "The constituent's secondary title (for individuals only).", + "x-ms-summary": "Title 2" + }, + "suffix_2": { + "type": "string", + "description": "The constituent's secondary suffix (for individuals only).", + "x-ms-summary": "Suffix 2" + }, + "marital_status": { + "type": "string", + "description": "The constituent's marital status (for individuals only).", + "x-ms-summary": "Marital staus" + }, + "gives_anonymously": { + "type": "boolean", + "description": "Does the constituent give anonymously?", + "x-ms-summary": "Gives anonymously?" + }, + "inactive": { + "type": "boolean", + "description": "Is the constituent inactive?", + "x-ms-summary": "Inactive?" + }, + "birthdate": { + "type": "object", + "description": "The constituent's birthdate (for individuals only).", + "x-ms-summary": "Birthdate", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "birthplace": { + "type": "string", + "description": "The birthplace of the constituent (for individuals only).", + "x-ms-summary": "Birthplace" + }, + "ethnicity": { + "type": "string", + "description": "The ethnicity of the constituent (for individuals only).", + "x-ms-summary": "Ethnicity" + }, + "income": { + "type": "string", + "description": "The income for the constituent (for individuals only).", + "x-ms-summary": "Income" + }, + "religion": { + "type": "string", + "description": "The religion of the constituent (for individuals only).", + "x-ms-summary": "Religion" + }, + "industry": { + "type": "string", + "description": "The industry of the constituent (for organizations only).", + "x-ms-summary": "Industry" + }, + "num_employees": { + "type": "integer", + "format": "int32", + "description": "The number of employees at the organization.", + "x-ms-summary": "Number of employees" + }, + "matches_gifts": { + "type": "boolean", + "description": "Does the organization match gifts?", + "x-ms-summary": "Matches gifts?" + }, + "matching_gift_factor": { + "type": "number", + "format": "double", + "description": "The matching gift factor (for organizations only).", + "x-ms-summary": "Matching gift factor" + }, + "matching_gift_per_gift_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match amount per gift for the constituent (for organizations only).", + "x-ms-summary": "Min match per gift" + } + } + }, + "matching_gift_per_gift_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match amount per gift for the constituent (for organizations only).", + "x-ms-summary": "Max match per gift" + } + } + }, + "matching_gift_total_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match total for the constituent (for organizations only).", + "x-ms-summary": "Min match per constit" + } + } + }, + "matching_gift_total_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match total for the constituent (for organizations only).", + "x-ms-summary": "Max match per constit" + } + } + }, + "matching_gift_notes": { + "type": "string", + "description": "The matching gift notes for the constituent (for organizations only).", + "x-ms-summary": "Matching gift notes" + }, + "age": { + "type": "integer", + "format": "int32", + "description": "The constituent's age, as calculated based on the birthdate property (for individuals only).", + "x-ms-summary": "Age" + }, + "deceased": { + "type": "boolean", + "description": "Is the constituent deceased (for individuals only)?", + "x-ms-summary": "Deceased?" + }, + "deceased_date": { + "type": "object", + "description": "The date when the constituent died (for individuals only).", + "x-ms-summary": "Deceased date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "fundraiser_status": { + "type": "string", + "description": "Indicates whether the constituent is a fundraiser (for individuals only).", + "enum": [ + "Active", + "Inactive", + "None" + ], + "x-ms-summary": "Fundraiser status" + }, + "spouse": { + "type": "object", + "description": "The constituent's spouse (for individuals only).", + "x-ms-summary": "Spouse", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the spouse.", + "x-ms-summary": "ID" + }, + "first": { + "type": "string", + "description": "The spouse's first name.", + "x-ms-summary": "first name" + }, + "last": { + "type": "string", + "description": "The spouse's last name.", + "x-ms-summary": "last name" + }, + "is_head_of_household": { + "type": "boolean", + "description": "Is the spouse the head of the household?", + "x-ms-summary": "is head of household?" + } + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the constituent was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.ConvertedConstituent": { + "type": "object", + "description": "Converted constituent", + "properties": { + "id": { + "type": "string", + "description": "The ID of the converted constituent.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CountryRead": { + "type": "object", + "description": "Country", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the country.", + "x-ms-summary": "ID" + }, + "abbreviation": { + "type": "string", + "description": "The user-defined abbreviation for the country.", + "x-ms-summary": "Abbreviation" + }, + "name": { + "type": "string", + "description": "The country name.", + "x-ms-summary": "Name" + } + } + }, + "ConstituentApi.CreatedConstituentAddress": { + "type": "object", + "description": "Created constituent address", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent address.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentAlias": { + "type": "object", + "description": "Created constituent alias", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent alias.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentAttachment": { + "type": "object", + "description": "Created constituent attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent attachment.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentCode": { + "type": "object", + "description": "Created constituent code", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent code.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentCustomField": { + "type": "object", + "description": "Created constituent custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent custom field.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentEducation": { + "type": "object", + "description": "Created constituent education", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent education.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentEmailAddress": { + "type": "object", + "description": "Created constituent email address", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent email address.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentNote": { + "type": "object", + "description": "Created constituent note", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent note.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentOnlinePresence": { + "type": "object", + "description": "Created constituent online presence", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent online presence.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedConstituentPhone": { + "type": "object", + "description": "Created constituent phone", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent phone.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedIndividualConstituent": { + "type": "object", + "description": "Created individual constituent", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created individual constituent.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedIndividualRelationship": { + "type": "object", + "description": "Created individual relationship", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created individual relationship.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedNameFormat": { + "type": "object", + "description": "Created name format", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created name format.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedOrganizationConstituent": { + "type": "object", + "description": "Created organization constituent", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created organization constituent.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedOrganizationRelationship": { + "type": "object", + "description": "Created organization relationship", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created organization relationship.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CustomFieldCategoryRead": { + "type": "object", + "description": "Custom field category", + "properties": { + "name": { + "type": "string", + "description": "The name of the custom field category.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of data that custom fields with this category represent.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + } + } + }, + "ConstituentApi.EducationAdd": { + "type": "object", + "description": "A constituent's education history provides important insight into who they are and often helps determine which causes to which the constituent will invest time and money.", + "required": [ + "constituent_id", + "school" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the education.", + "x-ms-summary": "Constituent ID" + }, + "school": { + "type": "string", + "description": "The school/establishment name.", + "x-ms-summary": "School", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/schools" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/schools" + } + } + } + }, + "type": { + "type": "string", + "description": "The type of education.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/types" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/types" + } + } + } + }, + "class_of": { + "type": "string", + "description": "The year the constituent graduated.", + "x-ms-summary": "Class of" + }, + "status": { + "type": "string", + "description": "The status of the education.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/statuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/statuses" + } + } + } + }, + "date_entered": { + "type": "object", + "description": "The first date of attendance.", + "x-ms-summary": "Date entered", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_left": { + "type": "object", + "description": "The last date of attendance.", + "x-ms-summary": "Date left", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_graduated": { + "type": "object", + "description": "The graduation date.", + "x-ms-summary": "Date graduated", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "degree": { + "type": "string", + "description": "The degree received.", + "x-ms-summary": "Degree", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/degrees" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/degrees" + } + } + } + }, + "gpa": { + "type": "number", + "format": "double", + "description": "The grade point average.", + "x-ms-summary": "GPA" + }, + "subject_of_study": { + "type": "string", + "description": "The subject of study.", + "x-ms-summary": "Subject of study", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary school association?", + "x-ms-summary": "Primary?" + }, + "majors": { + "type": "array", + "description": "The major courses of study.", + "items": { + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "x-ms-summary": "Majors" + }, + "minors": { + "type": "array", + "description": "The minor courses of study.", + "items": { + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "x-ms-summary": "Minors" + }, + "campus": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The campus. Character limit: 50.", + "x-ms-summary": "Campus", + "x-ms-visibility": "advanced" + }, + "social_organization": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The social organization. Character limit: 50.", + "x-ms-summary": "Social organization", + "x-ms-visibility": "advanced" + }, + "known_name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The known name. Character limit: 50.", + "x-ms-summary": "Known name", + "x-ms-visibility": "advanced" + }, + "class_of_degree": { + "type": "string", + "description": "The class of degree (only applicable for UK versions).", + "x-ms-summary": "Class of degree", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/degreeclasses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/degreeclasses" + } + } + } + }, + "department": { + "type": "string", + "description": "The name of the education department (only applicable for UK versions).", + "x-ms-summary": "Department", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/departments" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/departments" + } + } + } + }, + "faculty": { + "type": "string", + "description": "The name of the faculty (only applicable for UK versions).", + "x-ms-summary": "Faculty", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/faculties" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/faculties" + } + } + } + }, + "registration_number": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The registration number (only applicable for UK versions). Character limit: 50.", + "x-ms-summary": "Registration number", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.EducationEdit": { + "type": "object", + "description": "A constituent's education history provides important insight into who they are and often helps determine which causes to which the constituent will invest time and money.", + "properties": { + "school": { + "type": "string", + "description": "The school/establishment name.", + "x-ms-summary": "School", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/schools" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/schools" + } + } + } + }, + "type": { + "type": "string", + "description": "The type of education.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/types" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/types" + } + } + } + }, + "class_of": { + "type": "string", + "description": "The year the constituent graduated.", + "x-ms-summary": "Class of" + }, + "status": { + "type": "string", + "description": "The status of the education.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/statuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/statuses" + } + } + } + }, + "date_entered": { + "type": "object", + "description": "The first date of attendance.", + "x-ms-summary": "Date entered", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_left": { + "type": "object", + "description": "The last date of attendance.", + "x-ms-summary": "Date left", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_graduated": { + "type": "object", + "description": "The graduation date.", + "x-ms-summary": "Date graduated", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "degree": { + "type": "string", + "description": "The degree received.", + "x-ms-summary": "Degree", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/degrees" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/degrees" + } + } + } + }, + "gpa": { + "type": "number", + "format": "double", + "description": "The grade point average.", + "x-ms-summary": "GPA" + }, + "subject_of_study": { + "type": "string", + "description": "The subject of study.", + "x-ms-summary": "Subject of study", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary school association?", + "x-ms-summary": "Primary?" + }, + "majors": { + "type": "array", + "description": "The major courses of study.", + "items": { + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "x-ms-summary": "Majors" + }, + "minors": { + "type": "array", + "description": "The minor courses of study.", + "items": { + "type": "string", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/subjects" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/subjects" + } + } + } + }, + "x-ms-summary": "Minors" + }, + "campus": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The campus. Character limit: 50.", + "x-ms-summary": "Campus", + "x-ms-visibility": "advanced" + }, + "social_organization": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The social organization. Character limit: 50.", + "x-ms-summary": "Social organization", + "x-ms-visibility": "advanced" + }, + "known_name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The known name. Character limit: 50.", + "x-ms-summary": "Known name", + "x-ms-visibility": "advanced" + }, + "class_of_degree": { + "type": "string", + "description": "The class of degree.", + "x-ms-summary": "Class of degree", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/degreeclasses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/degreeclasses" + } + } + } + }, + "department": { + "type": "string", + "description": "The name of the education department.", + "x-ms-summary": "Department", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/departments" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/departments" + } + } + } + }, + "faculty": { + "type": "string", + "description": "The name of the faculty.", + "x-ms-summary": "Faculty", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "educations/faculties" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "educations/faculties" + } + } + } + }, + "registration_number": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The registration number. Character limit: 50.", + "x-ms-summary": "Registration number", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.EducationRead": { + "type": "object", + "description": "Education", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the education.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the education.", + "x-ms-summary": "Constituent ID" + }, + "school": { + "type": "string", + "description": "The school/establishment name.", + "x-ms-summary": "School" + }, + "type": { + "type": "string", + "description": "The type of education.", + "x-ms-summary": "Type" + }, + "class_of": { + "type": "string", + "description": "The year the constituent graduated.", + "x-ms-summary": "Class of" + }, + "status": { + "type": "string", + "description": "The status of the education.", + "x-ms-summary": "Status" + }, + "date_entered": { + "type": "object", + "description": "The first date of attendance.", + "x-ms-summary": "Date entered", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_left": { + "type": "object", + "description": "The last date of attendance.", + "x-ms-summary": "Date left", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "date_graduated": { + "type": "object", + "description": "The graduation date.", + "x-ms-summary": "Date graduated", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "degree": { + "type": "string", + "description": "The degree received.", + "x-ms-summary": "Degree" + }, + "gpa": { + "type": "number", + "format": "double", + "description": "The grade point average.", + "x-ms-summary": "GPA" + }, + "majors": { + "type": "array", + "description": "The major courses of study.", + "items": { + "type": "string" + }, + "x-ms-summary": "Majors" + }, + "minors": { + "type": "array", + "description": "The minor courses of study.", + "items": { + "type": "string" + }, + "x-ms-summary": "Minors" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary school association?", + "x-ms-summary": "Is primary education?" + }, + "campus": { + "type": "string", + "description": "The campus.", + "x-ms-summary": "Campus" + }, + "social_organization": { + "type": "string", + "description": "The social organization.", + "x-ms-summary": "Social organization" + }, + "known_name": { + "type": "string", + "description": "The known name.", + "x-ms-summary": "Known name" + }, + "class_of_degree": { + "type": "string", + "description": "The class of degree.", + "x-ms-summary": "Class of degree" + }, + "department": { + "type": "string", + "description": "The name of the education department.", + "x-ms-summary": "Department" + }, + "faculty": { + "type": "string", + "description": "The name of the faculty.", + "x-ms-summary": "Faculty" + }, + "registration_number": { + "type": "string", + "description": "The registration number.", + "x-ms-summary": "Registration number" + }, + "subject_of_study": { + "type": "string", + "description": "The subject of study.", + "x-ms-summary": "Subject of study" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the education was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the education was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.EmailAddressAdd": { + "type": "object", + "description": "Email addresses store information about constituent email accounts and where to send email correspondences for individuals and organizations.", + "required": [ + "constituent_id", + "address", + "type" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the email address.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "Email type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "emailaddresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "emailaddresstypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "Email address" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary email address?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_email": { + "type": "boolean", + "description": "Can the constituent be contacted at this email address?", + "x-ms-summary": "Do not email?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this email address inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.EmailAddressEdit": { + "type": "object", + "description": "Email addresses store information about constituent email accounts and where to send email correspondences for individuals and organizations.", + "properties": { + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "Email type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "emailaddresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "emailaddresstypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "Email address" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary email address?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_email": { + "type": "boolean", + "description": "Can the constituent be contacted at this email address?", + "x-ms-summary": "Do not email?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this email address inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.EmailAddressRead": { + "type": "object", + "description": "Email address", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the email address.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the email address.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "Email type" + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "Email address" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary email address?", + "x-ms-summary": "Primary?" + }, + "do_not_email": { + "type": "boolean", + "description": "Can the constituent be contacted at this email address?", + "x-ms-summary": "Do not email?" + }, + "inactive": { + "type": "boolean", + "description": "Is this email address inactive?", + "x-ms-summary": "Inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the email address was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the email address was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.FundraiserAssignmentRead": { + "type": "object", + "description": "Fundraiser assignment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the fundraiser assignment.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent assigned to the fundraiser.", + "x-ms-summary": "Constituent ID" + }, + "fundraiser_id": { + "type": "string", + "description": "The system record ID of the fundraiser.", + "x-ms-summary": "Fundraiser ID" + }, + "type": { + "type": "string", + "description": "The type of fundraiser.", + "x-ms-summary": "Type" + }, + "amount": { + "type": "object", + "description": "The goal amount for the fundraiser to solicit from the assigned constituent.", + "x-ms-summary": "Amount", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign to apply resulting gifts to.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund any resulting gifts should be applied to. If a restricted fund is selected, only campaigns and appeals associated with that fund may be selected.", + "x-ms-summary": "Fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal the fundraiser should use to request gifts.", + "x-ms-summary": "Appeal ID" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The fundraiser assignment start date.", + "x-ms-summary": "Start date" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The fundraiser assignment end date.", + "x-ms-summary": "End date" + } + } + }, + "ConstituentApi.MembershipMemberRead": { + "type": "object", + "description": "Member", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the member.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the member.", + "x-ms-summary": "Constituent ID" + }, + "primary": { + "type": "boolean", + "description": "Is this the primary member?", + "x-ms-summary": "Is primary member?" + } + } + }, + "ConstituentApi.MembershipRead": { + "type": "object", + "description": "Membership", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the membership.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the membership.", + "x-ms-summary": "Constituent ID" + }, + "program": { + "type": "string", + "description": "The membership program.", + "x-ms-summary": "Program" + }, + "category": { + "type": "string", + "description": "The membership category.", + "x-ms-summary": "Category" + }, + "subcategory": { + "type": "string", + "description": "The membership subcategory.", + "x-ms-summary": "Subcategory" + }, + "standing": { + "type": "string", + "description": "The membership status.", + "x-ms-summary": "Standing", + "enum": [ + "New", + "Active", + "Lapsed", + "Dropped" + ] + }, + "expires": { + "type": "string", + "format": "date-time", + "description": "The date when the membership expires. ", + "x-ms-summary": "Expires" + }, + "joined": { + "type": "string", + "format": "date-time", + "description": "The date when the membership becomes active.", + "x-ms-summary": "Joined" + }, + "dues": { + "type": "object", + "description": "The membership dues.", + "x-ms-summary": "Dues", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "members": { + "type": "array", + "description": "The set of members who belong to the membership.", + "items": { + "$ref": "#/definitions/ConstituentApi.MembershipMemberRead" + }, + "x-ms-summary": "Members" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the membership was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the membership was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.NameFormatAdd": { + "type": "object", + "description": "Name formats define how to address constituents in communications. How you refer to individuals sets the tone of your communications with them and how well they receive your interactions.", + "required": [ + "constituent_id", + "type" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The name format type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "nameformattypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "nameformattypes" + } + } + } + }, + "custom_format": { + "type": "boolean", + "description": "Is a custom format?", + "x-ms-summary": "Custom name format?" + }, + "configuration_id": { + "type": "string", + "description": "Name format configuration (required unless a custom format is used).", + "x-ms-summary": "Format", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Custom name" + } + } + }, + "ConstituentApi.NameFormatEdit": { + "type": "object", + "description": "Name formats define how to address constituents in communications. How you refer to individuals sets the tone of your communications with them and how well they receive your interactions.", + "properties": { + "type": { + "type": "string", + "description": "The name format type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "nameformattypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "nameformattypes" + } + } + } + }, + "custom_format": { + "type": "boolean", + "description": "Is a custom format?", + "x-ms-summary": "Custom name format?" + }, + "configuration_id": { + "type": "string", + "description": "Name format configuration (required unless a custom format is used).", + "x-ms-summary": "Format", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Custom name" + } + } + }, + "ConstituentApi.NameFormatConfigurationRead": { + "type": "object", + "description": "Name format configuration", + "properties": { + "id": { + "type": "string", + "description": "The name format configuration identifier.", + "x-ms-summary": "ID" + }, + "format": { + "type": "string", + "description": "The name format.", + "x-ms-summary": "Format" + } + } + }, + "ConstituentApi.NameFormatRead": { + "type": "object", + "description": "Name formats define how to address constituents in communications. How you refer to individuals sets the tone of your communications with them and how well they receive your interactions.", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the name format.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The name format type.", + "x-ms-summary": "type" + }, + "custom_format": { + "type": "boolean", + "description": "Is this a custom format?", + "x-ms-summary": "custom format?" + }, + "configuration_id": { + "type": "string", + "description": "The configuration ID of the name format (for non-custom formats).", + "x-ms-summary": "configuration ID" + }, + "formatted_name": { + "type": "string", + "description": "The formatted name (for custom formats).", + "x-ms-summary": "formatted name" + } + } + }, + "ConstituentApi.NameFormatSummaryRead": { + "type": "object", + "description": "Name format summary", + "properties": { + "primary_addressee": { + "type": "object", + "description": "Addressees determine how the name appears with a mailing address, such as in an address block or on envelopes or mailing labels.", + "x-ms-summary": "Primary addressee", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the name format.", + "x-ms-summary": "ID" + }, + "primary_type": { + "type": "string", + "description": "The name format type.", + "x-ms-summary": "type", + "enum": [ + "Addressee", + "Salutation" + ] + }, + "custom_format": { + "type": "boolean", + "description": "Is this a custom format?", + "x-ms-summary": "custom format?" + }, + "configuration_id": { + "type": "string", + "description": "The configuration ID of the name format (for non-custom formats).", + "x-ms-summary": "configuration ID" + }, + "formatted_name": { + "type": "string", + "description": "The formatted name (for custom formats).", + "x-ms-summary": "formatted name" + } + } + }, + "primary_salutation": { + "type": "object", + "description": "Salutations determine how the name appears as a greeting within a letter or email message.", + "x-ms-summary": "Primary salutation", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the name format.", + "x-ms-summary": "ID" + }, + "primary_type": { + "type": "string", + "description": "The name format type.", + "x-ms-summary": "type", + "enum": [ + "Addressee", + "Salutation" + ] + }, + "custom_format": { + "type": "boolean", + "description": "Is this a custom format?", + "x-ms-summary": "custom format?" + }, + "configuration_id": { + "type": "string", + "description": "The configuration ID of the name format (for non-custom formats).", + "x-ms-summary": "configuration ID" + }, + "formatted_name": { + "type": "string", + "description": "The formatted name (for custom formats).", + "x-ms-summary": "formatted name" + } + } + }, + "additional_name_formats": { + "type": "array", + "description": "The additional name formats of the constituent.", + "x-ms-summary": "Additional name formats", + "items": { + "$ref": "#/definitions/ConstituentApi.NameFormatRead" + } + } + } + }, + "ConstituentApi.NonConstituentConversion": { + "type": "object", + "description": "The non-constituent conversion object holds constituent codes to apply during the conversion.", + "properties": { + "constituent_codes": { + "type": "array", + "description": "The constituent codes.", + "x-ms-summary": "Constituent codes", + "x-ms-visibility": "internal", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentCodeLink" + } + } + } + }, + "ConstituentApi.NoteAdd": { + "type": "object", + "description": "Notes track helpful or important details about constituents, gifts, or actions, such as specific interests and special instructions for donations. Notes connect you with donors at a more personal level as you cultivate relationships and track lessons learned for more effective fundraising.", + "required": [ + "constituent_id", + "type", + "date" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the note.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The note type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "notetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "notetypes" + } + } + } + }, + "date": { + "type": "object", + "description": "The note date.", + "x-ms-summary": "Date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "summary": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The note summary. Character limit: 50.", + "x-ms-summary": "Summary" + }, + "text": { + "type": "string", + "description": "The note text.", + "x-ms-summary": "Note" + } + } + }, + "ConstituentApi.NoteEdit": { + "type": "object", + "description": "Notes track helpful or important details about constituents, gifts, or actions, such as specific interests and special instructions for donations. Notes connect you with donors at a more personal level as you cultivate relationships and track lessons learned for more effective fundraising.", + "properties": { + "type": { + "type": "string", + "description": "The note type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "notetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "notetypes" + } + } + } + }, + "date": { + "type": "object", + "description": "The note date.", + "x-ms-summary": "Date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "summary": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The note summary. Character limit: 50.", + "x-ms-summary": "Summary" + }, + "text": { + "type": "string", + "description": "The note text.", + "x-ms-summary": "Note" + } + } + }, + "ConstituentApi.NoteRead": { + "type": "object", + "description": "Note", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the note.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the note.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The note type.", + "x-ms-summary": "Type" + }, + "date": { + "type": "object", + "description": "The note date.", + "x-ms-summary": "Date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "summary": { + "type": "string", + "description": "The note summary.", + "x-ms-summary": "Summary" + }, + "text": { + "type": "string", + "description": "The note text.", + "x-ms-summary": "Note" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the note was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the note was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.OnlinePresenceAdd": { + "type": "object", + "description": "Online presence entities store a constituent's social media accounts, websites, and other means of reaching out or gaining more information about the constituent.", + "required": [ + "constituent_id", + "address", + "type" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the online presence.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "onlinepresencetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "onlinepresencetypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "Link" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary online presence?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this online presence inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.OnlinePresenceEdit": { + "type": "object", + "description": "Online presence entities store a constituent's social media accounts, websites, and other means of reaching out or gaining more information about the constituent.", + "properties": { + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "onlinepresencetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "onlinepresencetypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "Link" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary online presence?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this online presence inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.OnlinePresenceRead": { + "type": "object", + "description": "Online presence", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the online presence.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the online presence.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "Type" + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "Link" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary online presence?", + "x-ms-summary": "Primary?" + }, + "inactive": { + "type": "boolean", + "description": "Is this online presence inactive?", + "x-ms-summary": "Inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the online presence was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the online presence was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.PhoneAdd": { + "type": "object", + "description": "Phones store information about constituent phone numbers and where to call individuals and organizations.", + "required": [ + "constituent_id", + "type", + "number" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the phone.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "phonetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "phonetypes" + } + } + } + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "Number" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary phone?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_call": { + "type": "boolean", + "description": "Can the constituent be contacted at this number?", + "x-ms-summary": "Do not call?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this phone number inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.PhoneEdit": { + "type": "object", + "description": "Phones store information about constituent phone numbers and where to call individuals and organizations.", + "properties": { + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "phonetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "phonetypes" + } + } + } + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "Number" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary phone?", + "x-ms-summary": "Primary?", + "x-ms-visibility": "advanced" + }, + "do_not_call": { + "type": "boolean", + "description": "Can the constituent be contacted at this number?", + "x-ms-summary": "Do not call?", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is this phone number inactive?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.PhoneRead": { + "type": "object", + "description": "Phone", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the phone.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the phone.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "Type" + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "Number" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary phone?", + "x-ms-summary": "Primary?" + }, + "do_not_call": { + "type": "boolean", + "description": "Can the constituent be contacted at this number?", + "x-ms-summary": "Do not call?" + }, + "inactive": { + "type": "boolean", + "description": "Is this phone number inactive?", + "x-ms-summary": "Inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the phone was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the phone was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.PrimaryNameFormatAdd": { + "type": "object", + "description": "Primary name formats are elevated name formats used for the constituent's most commonly used addressee and salutation name formats.", + "required": [ + "constituent_id", + "primary_type" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent.", + "x-ms-summary": "Constituent ID" + }, + "primary_type": { + "type": "string", + "description": "The primary name format type.", + "x-ms-summary": "Type", + "enum": [ + "Addressee", + "Salutation" + ] + }, + "custom_format": { + "type": "boolean", + "description": "Is a custom format?", + "x-ms-summary": "Custom name format?" + }, + "configuration_id": { + "type": "string", + "description": "Name format configuration (required unless a custom format is used).", + "x-ms-summary": "Format", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Custom name" + } + } + }, + "ConstituentApi.PrimaryNameFormatEdit": { + "type": "object", + "description": "Primary name formats are elevated name formats used for the constituent's most commonly used addressee and salutation name formats.", + "properties": { + "custom_format": { + "type": "boolean", + "description": "Is a custom format?", + "x-ms-summary": "Custom name format?" + }, + "configuration_id": { + "type": "string", + "description": "Name format configuration (required unless a custom format is used).", + "x-ms-summary": "Format", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Custom name" + } + } + }, + "ConstituentApi.ProfilePictureEdit": { + "type": "object", + "description": "Profile pictures are photos or images such as selfies or company logos that help identify constituents and personalize relationships. Profile pictures can be PNG, BMP, or JPG image files uploaded via the web view.", + "required": [ + "document_id", + "file_name", + "thumbnail_id" + ], + "properties": { + "file_name": { + "type": "string", + "description": "The name of the file.", + "x-ms-summary": "File name" + }, + "document_id": { + "type": "string", + "format": "uuid", + "description": "The document identifier.", + "x-ms-summary": "Document ID" + }, + "thumbnail_id": { + "type": "string", + "format": "uuid", + "description": "The thumbnail document identifier.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "ConstituentApi.ProfilePictureRead": { + "type": "object", + "description": "Profile picture", + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the profile picture.", + "x-ms-summary": "Constituent ID" + }, + "url": { + "type": "string", + "description": "The URL for the profile picture. The URL contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "URL" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail of the profile picture. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + } + } + }, + "ConstituentApi.RelationshipEdit": { + "type": "object", + "description": "Relationships describe connections between constituents and other individuals and organizations such as family, friends, and employers. Tracking constituent relationships can enhance fundraising efforts and interactions.", + "properties": { + "type": { + "type": "string", + "description": "The type of relation that the relationship represents.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "reciprocal_type": { + "type": "string", + "description": "Describes the constituent's relationship to the related constituent. For example, in a relationship between a male constituent and a female sibling, the reciprocal relationship type would be brother.", + "x-ms-summary": "Reciprocal type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "start": { + "type": "object", + "description": "The start date for the relationship.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date for the relationship.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "is_spouse": { + "type": "boolean", + "description": "Is the related individual the constituent's spouse (only applies to relationships between individuals)?", + "x-ms-summary": "Is spouse?" + }, + "is_constituent_head_of_household": { + "type": "boolean", + "description": "Is the constituent the head of the household?", + "x-ms-summary": "Is constituent head of household?" + }, + "is_spouse_head_of_household": { + "type": "boolean", + "description": "Is the spouse the head of the household?", + "x-ms-summary": "Is spouse head of household?" + }, + "comment": { + "type": "string", + "description": "Additional notes about the relationship.", + "x-ms-summary": "Notes" + }, + "is_organization_contact": { + "type": "boolean", + "description": "Does the constituent represent this organization as a contact (only applies to relationships between organizations and individuals)?", + "x-ms-summary": "Is contact?" + }, + "is_primary_business": { + "type": "boolean", + "description": "Is this the constituent's primary business (only applies to relationships between organizations and individuals)?", + "x-ms-summary": "Is primary business?" + }, + "organization_contact_type": { + "type": "string", + "description": "Provides context for interactions with the related individual who represents the organization as a contact. Only applies to relationships between organizations and individuals.", + "x-ms-summary": "Contact type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "organizationcontacttypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "organizationcontacttypes" + } + } + } + }, + "position": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The individual's position in the organization. Only applies to relationships between organizations and individuals. Character limit: 50.", + "x-ms-summary": "Position" + } + } + }, + "ConstituentApi.RelationshipRead": { + "type": "object", + "description": "Relationship", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the relationship.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the relationship.", + "x-ms-summary": "Constituent ID" + }, + "relation_id": { + "type": "string", + "description": "The system record ID of the related individual or organization.", + "x-ms-summary": "Relation ID" + }, + "reciprocal_relationship_id": { + "type": "string", + "description": "The identifier for the reciprocal relationship record. This value is read-only and is automatically generated when the relationship is created. Changes made to this record will also be reflected on the reciprocal, with the exception of the comments property.", + "x-ms-summary": "Reciprocal relationship ID" + }, + "name": { + "type": "string", + "description": "The name of the related constituent. If the related constituent is an individual, this will be the full name of the constituent based on the target organization's display name settings.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of relation that the relationship represents.", + "x-ms-summary": "Type" + }, + "reciprocal_type": { + "type": "string", + "description": "Describes the constituent's relationship to the related constituent. For example, in a relationship between a male constituent and a female sibling, the reciprocal relationship type would be brother.", + "x-ms-summary": "Reciprocal type" + }, + "start": { + "type": "object", + "description": "The start date for the relationship.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date for the relationship.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "is_spouse": { + "type": "boolean", + "description": "Is the related individual the constituent's spouse (only applies to relationships between individuals)?", + "x-ms-summary": "Is spouse?" + }, + "is_constituent_head_of_household": { + "type": "boolean", + "description": "Is the constituent the head of the household?", + "x-ms-summary": "Is constituent head of household?" + }, + "is_spouse_head_of_household": { + "type": "boolean", + "description": "Is the spouse the head of the household?", + "x-ms-summary": "Is spouse head of household?" + }, + "comment": { + "type": "string", + "description": "The comment on the relationship.", + "x-ms-summary": "Notes" + }, + "is_organization_contact": { + "type": "boolean", + "description": "Does the constituent represent this organization as a contact (only applies to relationships between organizations and individuals)?", + "x-ms-summary": "Is contact?" + }, + "is_primary_business": { + "type": "boolean", + "description": "Is this the constituent's primary business (only applies to relationships between organizations and individuals)?", + "x-ms-summary": "Is primary business?" + }, + "organization_contact_type": { + "type": "string", + "description": "Provides context for interactions with the related individual who represents the organization as a contact. Only applies to relationships between organizations and individuals.", + "x-ms-summary": "Contact type" + }, + "position": { + "type": "string", + "description": "The individual's position in the organization. Only applies to relationships between organizations and individuals.", + "x-ms-summary": "Position" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the relationship was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the relationship was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.SearchResultRead": { + "type": "object", + "description": "Search result", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the constituent.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The constituent name. For individuals, this computed field indicates the full name of the constituent based on the target organization's display name settings.", + "x-ms-summary": "Name" + }, + "address": { + "type": "string", + "description": "The constituent's preferred address.", + "x-ms-summary": "Address" + }, + "deceased": { + "type": "boolean", + "description": "Is the constituent is deceased?", + "x-ms-summary": "Deceased?" + }, + "email": { + "type": "string", + "description": "The constituent's email address.", + "x-ms-summary": "Email" + }, + "fundraiser_status": { + "type": "string", + "description": "The constituent's fundraiser status. For individuals, this computed field indicates the whether the constituent is Active, Inactive, or None. For organizations, this value will always be None.", + "x-ms-summary": "Fundraiser status" + }, + "inactive": { + "type": "boolean", + "description": "Is the constituent inactive?", + "x-ms-summary": "Inactive?" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the constituent.", + "x-ms-summary": "Lookup ID" + } + } + }, + "ConstituentApi.Virtual.IndividualAdd": { + "type": "object", + "description": "Constituents are the individuals and organizations who support your organization by contributing time, money, and resources. The constituent entity stores information about donors, prospects, volunteers, general supporters, and more.", + "required": [ + "type", + "last" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of constituent.", + "default": "Individual", + "x-ms-summary": "Type", + "x-ms-visibility": "internal", + "enum": [ + "Individual" + ] + }, + "title": { + "type": "string", + "description": "The constituent's primary title.", + "x-ms-summary": "Title", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "titles" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "titles" + } + } + } + }, + "first": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's first name. Character limit: 50.", + "x-ms-summary": "First name" + }, + "last": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The constituent's last name. Character limit: 100.", + "x-ms-summary": "Last name" + }, + "suffix": { + "type": "string", + "description": "The constituent's primary suffix.", + "x-ms-summary": "Suffix", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "suffixes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "suffixes" + } + } + } + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the constituent.", + "x-ms-summary": "Lookup ID" + }, + "address": { + "type": "object", + "description": "The constituent's preferred address.", + "x-ms-summary": "Address", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "addresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "addresstypes" + } + } + } + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "country", + "x-ms-dynamic-values": { + "operationId": "ListCountries", + "value-collection": "value", + "value-path": "id", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCountries", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name" + } + }, + "address_lines": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The address lines. Character limit: 150.", + "x-ms-summary": "lines" + }, + "city": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "city" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "state" + }, + "postal_code": { + "type": "string", + "maxLength": 12, + "minLength": 0, + "description": "The postal code of the address. Character limit: 12.", + "x-ms-summary": "postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "suburb", + "x-ms-visibility": "advanced" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "county", + "x-ms-visibility": "advanced" + }, + "start": { + "type": "string", + "format": "date", + "description": "The date when the constituent began residing at this address (ex: '2005-09-18').", + "x-ms-summary": "start", + "x-ms-visibility": "advanced" + }, + "end": { + "type": "string", + "format": "date", + "description": "The date when the constituent ceased to reside at this address (ex: '2005-09-18').", + "x-ms-summary": "end", + "x-ms-visibility": "advanced" + } + } + }, + "phone": { + "type": "object", + "description": "The constituent's phone.", + "x-ms-summary": "Phone", + "required": [ + "type", + "number" + ], + "properties": { + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "phonetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "phonetypes" + } + } + } + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "number", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary phone number?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "email": { + "type": "object", + "description": "The constituent's email address.", + "x-ms-summary": "Email", + "required": [ + "type", + "address" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "emailaddresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "emailaddresstypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "address", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary email address?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "online_presence": { + "type": "object", + "description": "The constituent's online presence.", + "x-ms-summary": "Online presence", + "required": [ + "type", + "address" + ], + "properties": { + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "onlinepresencetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "onlinepresencetypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "address", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary online presence?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "preferred_name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's preferred name. Character limit: 50.", + "x-ms-summary": "Preferred name", + "x-ms-visibility": "advanced" + }, + "middle": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The constituent's middle name. Character limit: 50.", + "x-ms-summary": "Middle name", + "x-ms-visibility": "advanced" + }, + "former_name": { + "type": "string", + "maxLength": 100, + "minLength": 0, + "description": "The constituent's former name. Character limit: 100.", + "x-ms-summary": "Former name", + "x-ms-visibility": "advanced" + }, + "title_2": { + "type": "string", + "description": "The constituent's secondary title.", + "x-ms-summary": "Title 2", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "titles" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "titles" + } + } + } + }, + "suffix_2": { + "type": "string", + "description": "The constituent's secondary suffix.", + "x-ms-summary": "Suffix 2", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "suffixes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "suffixes" + } + } + } + }, + "gender": { + "type": "string", + "description": "The constituent's gender.", + "x-ms-summary": "Gender", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "genders" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "genders" + } + } + } + }, + "marital_status": { + "type": "string", + "description": "The constituent's marital status.", + "x-ms-summary": "Marital status", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "maritalstatuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "maritalstatuses" + } + } + } + }, + "gives_anonymously": { + "type": "boolean", + "description": "Does the constituent give anonymously?", + "x-ms-summary": "Gives anonymously?", + "x-ms-visibility": "advanced" + }, + "birthdate": { + "type": "object", + "description": "The constituent's birthdate.", + "x-ms-summary": "Birthdate", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "birthplace": { + "type": "string", + "description": "The birthplace of the constituent.", + "x-ms-summary": "Birthplace", + "x-ms-visibility": "advanced" + }, + "ethnicity": { + "type": "string", + "description": "The ethnicity of the constituent.", + "x-ms-summary": "Ethnicity", + "x-ms-visibility": "advanced" + }, + "income": { + "type": "string", + "description": "The income for the constituent.", + "x-ms-summary": "Income", + "x-ms-visibility": "advanced" + }, + "religion": { + "type": "string", + "description": "The religion of the constituent.", + "x-ms-summary": "Religion", + "x-ms-visibility": "advanced" + }, + "primary_addressee": { + "type": "object", + "properties": { + "custom_format": { + "type": "boolean", + "description": "Is the primary addressee a custom format?", + "x-ms-summary": "Custom addressee?", + "x-ms-visibility": "advanced" + }, + "configuration_id": { + "type": "string", + "description": "Primary addressee configuration (required unless a custom format is used).", + "x-ms-summary": "Addressee format", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Primary addressee formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Addressee custom name", + "x-ms-visibility": "advanced" + } + } + }, + "primary_salutation": { + "type": "object", + "properties": { + "custom_format": { + "type": "boolean", + "description": "Is the primary salutation a custom format?", + "x-ms-summary": "Custom salutation?", + "x-ms-visibility": "advanced" + }, + "configuration_id": { + "type": "string", + "description": "Primary salutation configuration (required unless a custom format is used).", + "x-ms-summary": "Salutation format", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "ListNameFormatConfigurations", + "value-collection": "value", + "value-path": "id", + "value-title": "format" + }, + "x-ms-dynamic-list": { + "operationId": "ListNameFormatConfigurations", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "format" + } + }, + "formatted_name": { + "type": "string", + "minLength": 0, + "maxLength": 255, + "description": "Primary salutation formatted name (required when a custom format is used). Character limit: 255.", + "x-ms-summary": "Salutation custom name", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "ConstituentApi.Virtual.IndividualRelationshipAdd": { + "type": "object", + "description": "Relationships describe connections between constituents and other individuals such as family, friends, and employers. Tracking constituent relationships can enhance fundraising efforts and interactions.", + "required": [ + "constituent_id", + "relation_id" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the relationship.", + "x-ms-summary": "Constituent ID" + }, + "relation_id": { + "type": "string", + "description": "The system record ID of the related individual.", + "x-ms-summary": "Relation ID" + }, + "type": { + "type": "string", + "description": "The type of relation that the relationship represents.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "reciprocal_type": { + "type": "string", + "description": "Describes the constituent's relationship to the related constituent. For example, in a relationship between a male constituent and a female sibling, the reciprocal relationship type would be brother.", + "x-ms-summary": "Reciprocal type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "start": { + "type": "object", + "description": "The start date for the relationship.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date for the relationship.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "is_spouse": { + "type": "boolean", + "description": "Is the related individual the constituent's spouse?", + "x-ms-summary": "Is spouse?" + }, + "is_constituent_head_of_household": { + "type": "boolean", + "description": "Is the constituent the head of the household?", + "x-ms-summary": "Is constituent head of household?" + }, + "is_spouse_head_of_household": { + "type": "boolean", + "description": "Is the spouse the head of the household?", + "x-ms-summary": "Is spouse head of household?" + }, + "comment": { + "type": "string", + "description": "Additional notes about the relationship.", + "x-ms-summary": "Notes" + } + } + }, + "ConstituentApi.Virtual.OrganizationAdd": { + "type": "object", + "description": "Constituents are the individuals and organizations who support your organization by contributing time, money, and resources. The constituent entity stores information about donors, prospects, volunteers, general supporters, and more.", + "required": [ + "type", + "name" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of constituent.", + "default": "Organization", + "x-ms-summary": "Type", + "x-ms-visibility": "internal", + "enum": [ + "Organization" + ] + }, + "name": { + "type": "string", + "description": "The organization name. Character limit: 100.", + "x-ms-summary": "Name" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the constituent.", + "x-ms-summary": "Lookup ID" + }, + "address": { + "type": "object", + "description": "The constituent's preferred address.", + "x-ms-summary": "Address", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "description": "The address type.", + "x-ms-summary": "type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "addresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "addresstypes" + } + } + } + }, + "country": { + "type": "string", + "description": "The country of the address (can be the ID, name, or abbreviation).", + "x-ms-summary": "country", + "x-ms-dynamic-values": { + "operationId": "ListCountries", + "value-collection": "value", + "value-path": "id", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCountries", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name" + } + }, + "address_lines": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The address lines. Character limit: 150.", + "x-ms-summary": "lines" + }, + "city": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The city of the address (do not use in combination with the Suburb field).", + "x-ms-summary": "city" + }, + "state": { + "type": "string", + "description": "The state of the address.", + "x-ms-summary": "state" + }, + "postal_code": { + "type": "string", + "maxLength": 12, + "minLength": 0, + "description": "The postal code of the address. Character limit: 12.", + "x-ms-summary": "postal code" + }, + "suburb": { + "type": "string", + "description": "The suburb of the address (do not use in combination with the City field).", + "x-ms-summary": "suburb", + "x-ms-visibility": "advanced" + }, + "county": { + "type": "string", + "description": "The county of the address.", + "x-ms-summary": "county", + "x-ms-visibility": "advanced" + }, + "start": { + "type": "string", + "format": "date", + "description": "The date when the constituent began residing at this address (ex: '2005-09-18').", + "x-ms-summary": "start", + "x-ms-visibility": "advanced" + }, + "end": { + "type": "string", + "format": "date", + "description": "The date when the constituent ceased to reside at this address (ex: '2005-09-18').", + "x-ms-summary": "end", + "x-ms-visibility": "advanced" + } + } + }, + "phone": { + "type": "object", + "description": "The constituent's phone.", + "x-ms-summary": "Phone", + "required": [ + "type", + "number" + ], + "properties": { + "type": { + "type": "string", + "description": "The phone type.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "phonetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "phonetypes" + } + } + } + }, + "number": { + "type": "string", + "description": "The phone number.", + "x-ms-summary": "number", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary phone number?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "email": { + "type": "object", + "description": "The constituent's email address.", + "x-ms-summary": "Email", + "required": [ + "type", + "address" + ], + "properties": { + "type": { + "type": "string", + "description": "The type of email address.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "emailaddresstypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "emailaddresstypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The email address.", + "x-ms-summary": "address", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary email address?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "online_presence": { + "type": "object", + "description": "The constituent's online presence.", + "x-ms-summary": "Online presence", + "required": [ + "type", + "address" + ], + "properties": { + "type": { + "type": "string", + "description": "The online presence type.", + "x-ms-summary": "type", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "onlinepresencetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "onlinepresencetypes" + } + } + } + }, + "address": { + "type": "string", + "description": "The web address for the online presence.", + "x-ms-summary": "address", + "x-ms-visibility": "advanced" + }, + "primary": { + "type": "boolean", + "description": "Is this the constituent's primary online presence?", + "x-ms-summary": "is primary?", + "x-ms-visibility": "advanced" + } + } + }, + "gives_anonymously": { + "type": "boolean", + "description": "Does the constituent give anonymously?", + "x-ms-summary": "Gives anonymously?", + "x-ms-visibility": "advanced" + }, + "industry": { + "type": "string", + "description": "The industry of the constituent.", + "x-ms-summary": "Industry", + "x-ms-visibility": "advanced" + }, + "num_employees": { + "type": "integer", + "format": "int32", + "description": "The number of employees at the organization.", + "x-ms-summary": "Number of employees", + "x-ms-visibility": "advanced" + }, + "matches_gifts": { + "type": "boolean", + "description": "Does the organization match gifts?", + "x-ms-summary": "Matches gifts?", + "x-ms-visibility": "advanced" + }, + "matching_gift_factor": { + "type": "number", + "format": "double", + "description": "The matching gift factor.", + "x-ms-summary": "Matching gift factor", + "x-ms-visibility": "advanced" + }, + "matching_gift_per_gift_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match amount per gift for the constituent.", + "x-ms-summary": "Min match per gift", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_per_gift_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match amount per gift for the constituent.", + "x-ms-summary": "Max match per gift", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_total_min": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The minimum match total for the constituent.", + "x-ms-summary": "Min match per constit", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_total_max": { + "type": "object", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The maximum match total for the constituent.", + "x-ms-summary": "Max match per constit", + "x-ms-visibility": "advanced" + } + } + }, + "matching_gift_notes": { + "type": "string", + "description": "The matching gift notes for the constituent.", + "x-ms-summary": "Matching gift notes", + "x-ms-visibility": "advanced" + } + } + }, + "ConstituentApi.Virtual.OrganizationRelationshipAdd": { + "type": "object", + "description": "Relationships describe connections between constituents and other individuals and organizations such as family, friends, and employers. Tracking constituent relationships can enhance fundraising efforts and interactions.", + "required": [ + "constituent_id", + "relation_id" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the relationship.", + "x-ms-summary": "Constituent ID" + }, + "relation_id": { + "type": "string", + "description": "The system record ID of the related organization.", + "x-ms-summary": "Relation ID" + }, + "type": { + "type": "string", + "description": "The type of relation that the relationship represents.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "reciprocal_type": { + "type": "string", + "description": "Describes the constituent's relationship to the related organization.", + "x-ms-summary": "Reciprocal type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "relationshiptypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "relationshiptypes" + } + } + } + }, + "start": { + "type": "object", + "description": "The start date for the relationship.", + "x-ms-summary": "Start", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "end": { + "type": "object", + "description": "The end date for the relationship.", + "x-ms-summary": "End", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "is_organization_contact": { + "type": "boolean", + "description": "Does the constituent represent this organization as a contact?", + "x-ms-summary": "Is contact?" + }, + "organization_contact_type": { + "type": "string", + "description": "Provides context for interactions with the related individual who represents the organization as a contact.", + "x-ms-summary": "Contact type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "organizationcontacttypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "organizationcontacttypes" + } + } + } + }, + "position": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The individual's position in the organization. Character limit: 50.", + "x-ms-summary": "Position" + }, + "is_primary_business": { + "type": "boolean", + "description": "Is this the constituent's primary business?", + "x-ms-summary": "Is primary business?" + }, + "comment": { + "type": "string", + "description": "Additional notes about the relationship.", + "x-ms-summary": "Notes" + } + } + }, + "FundraisingApi.ApiCollectionOfFundraiserAssignmentRead": { + "type": "object", + "description": "Assignments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.FundraiserAssignmentRead" + } + } + } + }, + "FundraisingApi.CreatedFundraiserAssignment": { + "type": "object", + "description": "Created fundraiser assignment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created fundraiser assignment.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.FundraiserAssignmentAdd": { + "type": "object", + "description": "Fundraiser constituents interact with other constituents on behalf of your organization to cultivate relationships and request donations. Fundraiser assignments allow you to assign specific constituents to fundraisers for solicitation purposes.", + "required": [ + "constituent_id", + "fundraiser_id" + ], + "properties": { + "fundraiser_id": { + "type": "string", + "description": "The system record ID of the fundraiser.", + "x-ms-summary": "Fundraiser ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the assigned constituent.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The type of fundraiser.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "fundraising", + "route": "fundraisers/types" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "fundraising" + }, + "route": { + "value": "fundraisers/types" + } + } + } + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the assignment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Assignment starts" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The end date of the assignment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Assignment ends" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The goal amount for the fundraiser to solicit from the assigned constituent.", + "x-ms-summary": "Amount" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign to which which resulting gifts will be applied.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund to which which resulting gifts will be applied.", + "x-ms-summary": "Fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal to which which resulting gifts will be applied.", + "x-ms-summary": "Appeal ID" + } + } + }, + "FundraisingApi.FundraiserAssignmentRead": { + "type": "object", + "description": "Assignment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the fundraiser assignment.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the assigned constituent.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The fundraiser type.", + "x-ms-summary": "Type" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the assignment.", + "x-ms-summary": "Assignment starts" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The end date of the assignment.", + "x-ms-summary": "Assignment ends" + }, + "amount": { + "type": "object", + "description": "The goal amount for the fundraiser to solicit from the assigned constituent.", + "x-ms-summary": "Amount", + "properties": { + "value": { + "format": "double", + "description": "The monetary value.", + "type": "number" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign to which which resulting gifts will be applied.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund to which which resulting gifts will be applied.", + "x-ms-summary": "Fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal to which which resulting gifts will be applied.", + "x-ms-summary": "Appeal ID" + } + } + }, + "ListApi.ApiCollectionOfList": { + "type": "object", + "description": "Lists", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of lists in the set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/ListApi.ApiList" + } + } + } + }, + "ListApi.ApiList": { + "type": "object", + "description": "List", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the list." + }, + "name": { + "type": "string", + "description": "The name of the list." + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiProperties.json new file mode 100644 index 0000000000..db97673caa --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/apiProperties.json @@ -0,0 +1,73 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "scriptOperations": [ + "ListConstituentCustomFields" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Create constituent endpoint routing", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/constituent/v1/constituents", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "CreateIndividualConstituent", + "CreateOrganizationConstituent" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Create relationship endpoint routing", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/constituent/v1/relationships", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "CreateIndividualRelationship", + "CreateOrganizationRelationship" + ] + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/readme.md new file mode 100644 index 0000000000..500a17fcc7 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/readme.md @@ -0,0 +1,37 @@ +## Blackbaud Raiser's Edge NXT Constituents Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage constituents and related entities found within The Raiser's Edge NXT, including: +* Constituents +* Addresses +* Phones and emails +* Aliases +* Custom fields +* Notes +* Attachments +* Relationships +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/script.csx b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/script.csx new file mode 100644 index 0000000000..19b4daf4d2 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Constituents/script.csx @@ -0,0 +1,55 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + switch (this.Context.OperationId) + { + case "ListConstituentCustomFields": + return await this.HandleListCustomFieldOperation().ConfigureAwait(false); + } + + var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unhandled operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleListCustomFieldOperation() + { + // make the API request to the SKY API backend + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // if the call to the backend is successful, transform the response items + if (response.IsSuccessStatusCode) + { + // get the response string, convert it to a JObject, and then look at the "value" property (which will be the array of custom fields) + var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + var result = JObject.Parse(responseString); + var value = result["value"] as JArray; + + // if the array contains any items, append a new bespoke xxx_value property to each item + if (value?.Count() > 0) + { + foreach (var cf in value) + { + // only append the bespoke xxx_value property if a value property is present + if (cf.SelectToken("value") != null) { + var valueField = $"{cf["type"]}_value"; + valueField = valueField.ToLowerInvariant(); + cf[valueField] = cf["value"]; + } + } + } + + // assemble the new response + var responseJson = new JObject() { + ["count"] = result["count"], + ["value"] = value + }; + + // set the new response content + response.Content = CreateJsonContent(responseJson.ToString()); + } + + return response; + } +} \ No newline at end of file From e4236a4997abf40283e0565fd2a80465d1fa9d73 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:57:45 -0500 Subject: [PATCH 197/219] adding RENXT Documents connector (#1291) * adding RENXT Documents connector * fix connector name --- .../apiDefinition.swagger.json | 189 ++++++++++++++++++ .../apiProperties.json | 46 +++++ .../readme.md | 28 +++ 3 files changed, 263 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Documents/readme.md diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiDefinition.swagger.json new file mode 100644 index 0000000000..69832b56ad --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiDefinition.swagger.json @@ -0,0 +1,189 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Doc", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Documents connector to create documentation locations used when storing physical attachments.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/constituent/v1/documents": { + "post": { + "operationId": "CreateDocument", + "summary": "Create a document location", + "description": "Creates a new unique document identifier and upload location for use with physical attachments. The response will include instructions for where and how to upload the document contents.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.NewDocumentInfo" + }, + "description": "An object that represents the document to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a document location. The response describes how and where the document should be uploaded.", + "schema": { + "$ref": "#/definitions/ConstituentApi.FileDefinition" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create a document." + } + } + } + } + }, + "definitions": { + "ConstituentApi.FileDefinition": { + "type": "object", + "description": "File definition", + "properties": { + "file_id": { + "type": "string", + "description": "The identifier of the file.", + "x-ms-summary": "File ID" + }, + "file_upload_request": { + "type": "object", + "description": "The metadata for the request for uploading the file.", + "x-ms-summary": "File upload", + "properties": { + "url": { + "type": "string", + "description": "The URL to use for the upload request.", + "x-ms-summary": "URL" + }, + "method": { + "type": "string", + "description": "The HTTP method to use with the upload request.", + "x-ms-summary": "method" + }, + "headers": { + "type": "array", + "description": "The headers to supply when making the request.", + "x-ms-summary": "headers", + "items": { + "$ref": "#/definitions/ConstituentApi.Header" + } + } + } + }, + "thumbnail_id": { + "type": "string", + "description": "The identifier of the thumbnail.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_upload_request": { + "type": "object", + "description": "The metadata for the request for uploading the thumbnail.", + "x-ms-summary": "Thumbnail upload", + "properties": { + "url": { + "type": "string", + "description": "The URL to use for the upload request.", + "x-ms-summary": "URL" + }, + "method": { + "type": "string", + "description": "The HTTP method to use with the upload request.", + "x-ms-summary": "method" + }, + "headers": { + "type": "array", + "description": "The headers to supply when making the request.", + "x-ms-summary": "headers", + "items": { + "$ref": "#/definitions/ConstituentApi.Header" + } + } + } + } + } + }, + "ConstituentApi.Header": { + "type": "object", + "description": "Request header used for uploading the physical attachment.", + "properties": { + "name": { + "type": "string", + "description": "The name for the header.", + "x-ms-summary": "name" + }, + "value": { + "type": "string", + "description": "The value for the header.", + "x-ms-summary": "value" + } + } + }, + "ConstituentApi.NewDocumentInfo": { + "type": "object", + "description": "Cultivation activities often result in physical collateral such as images, PDFs, or Word files. The New Document entity allows you to upload these files to maintain a holistic view of target constituents.", + "properties": { + "file_name": { + "type": "string", + "description": "The file name of the document to be uploaded.", + "x-ms-summary": "File name" + }, + "upload_thumbnail": { + "type": "boolean", + "description": "Include a thumbnail document location?", + "x-ms-summary": "Include thumbnail?" + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiProperties.json new file mode 100644 index 0000000000..cfd4d6b107 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/apiProperties.json @@ -0,0 +1,46 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Documents/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/readme.md new file mode 100644 index 0000000000..67da62a2f6 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Documents/readme.md @@ -0,0 +1,28 @@ +## Blackbaud Raiser's Edge NXT Documents Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides functionality to create document locations for use with physical attachments within the system. + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file From b4edf5c6cf32ddbd5d7151a7ec73b398c6fe10e1 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:57:59 -0500 Subject: [PATCH 198/219] adding RENXT Events connector (#1292) * adding RENXT Events connector * fix connector name --- .../apiDefinition.swagger.json | 3477 +++++++++++++++++ .../apiProperties.json | 46 + .../readme.md | 32 + 3 files changed, 3555 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Events/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Events/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Events/readme.md diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiDefinition.swagger.json new file mode 100644 index 0000000000..af36d533e0 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiDefinition.swagger.json @@ -0,0 +1,3477 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Eve", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Events connector to manage events and participants.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/event/v1/eventcategories": { + "get": { + "operationId": "ListEventCategories", + "summary": "List event categories", + "description": "Lists the event categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfEventCategory" + } + }, + "403": { + "description": "Returned when the user does not have permission to view event categories." + } + } + } + }, + "/event/v1/eventlist": { + "get": { + "operationId": "ListEvents", + "summary": "List events", + "description": "Returns a list of events.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "category", + "in": "query", + "description": "Filter based on event category.", + "type": "string", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListEventCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListEventCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + { + "name": "lookup_id", + "in": "query", + "description": "A filter for results that match the custom identifier for the event record.", + "type": "string", + "x-ms-summary": "Lookup ID" + }, + { + "name": "start_date_from", + "in": "query", + "description": "Filter the results to events with start date on or after the specified date (ex: '2020-09-18').", + "type": "string", + "format": "date", + "x-ms-summary": "Start date from" + }, + { + "name": "start_date_to", + "in": "query", + "description": "Filter the results to events with start date on or before the specified date (ex: '2020-09-18').", + "type": "string", + "format": "date", + "x-ms-summary": "Start date to" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive events?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 10000.", + "type": "integer", + "format": "int32", + "maximum": 10000, + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "event_id", + "in": "query", + "description": "Filter the events that match the specified system record ID.", + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-visibility": "advanced" + }, + { + "name": "name", + "in": "query", + "description": "Filter for events that match the specified name.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to events created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to events modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains a collection and count of filtered events.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfEventListEntry" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the event records." + } + } + } + }, + "/event/v1/events": { + "post": { + "operationId": "CreateEvent", + "summary": "Create an event", + "description": "Creates a new event.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateEvent" + }, + "description": "An object that represents the event to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new event.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedEvent" + } + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the event." + } + } + } + }, + "/event/v1/events/{event_id}": { + "get": { + "operationId": "GetEvent", + "summary": "Get an event", + "description": "Returns information about an event.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event to get.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.Event" + } + }, + "400": { + "description": "Returned when the specified event ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the event record." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + }, + "patch": { + "operationId": "EditEvent", + "summary": "Update an event", + "description": "Updates the details about an event.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event to update.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.EditEvent" + }, + "description": "An object that represents the properties of the event to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds." + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to edit the event." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + } + }, + "/event/v1/events/{event_id}/eventfees": { + "get": { + "operationId": "ListEventFees", + "summary": "List event fees", + "description": "Lists the fees for an event.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfEventFee" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the event fees." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + }, + "post": { + "operationId": "CreateEventFee", + "summary": "Create an event fee", + "description": "Creates a new fee for an event.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateEventFee" + }, + "description": "An object that represents the event fee to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new event fee.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedEventFee" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the fee." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + } + }, + "/event/v1/events/{event_id}/eventparticipantoptions": { + "get": { + "operationId": "ListEventParticipantOptions", + "summary": "List event participant options", + "description": "Lists the participant options for an event.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfEventParticipantOption" + } + }, + "400": { + "description": "Returned when the specified request does not contain a valid ID." + }, + "403": { + "description": "Returned when the user does not have permission to view the event record." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + }, + "post": { + "operationId": "CreateEventParticipantOption", + "summary": "Create an event participant option", + "description": "Creates a new participant option for an event.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateEventParticipantOption" + }, + "description": "An object that represents the event participant option to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new event participant option.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedEventParticipantOption" + } + }, + "400": { + "description": "Returned when the route does not contain a valid ID or the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify the event record." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + } + }, + "/event/v1/events/{event_id}/participants": { + "get": { + "operationId": "ListEventParticipants", + "summary": "List event participants", + "description": "Lists the participants for an event.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "name": "rsvp_status", + "in": "query", + "description": "Filter participants based on RSVP status.", + "x-ms-summary": "RSVP status", + "type": "string", + "enum": [ + "NoResponse", + "Attending", + "Declined", + "Interested", + "Canceled", + "Waitlisted", + "NotApplicable" + ] + }, + { + "name": "invitation_status", + "in": "query", + "description": "Filter participants based on invitation status.", + "x-ms-summary": "Invitation status", + "type": "string", + "enum": [ + "NotApplicable", + "NotInvited", + "Invited" + ] + }, + { + "name": "participation_level", + "in": "query", + "description": "Filter participants based on level of involvement.", + "x-ms-summary": "Participation level", + "type": "string", + "x-ms-dynamic-values": { + "operationId": "ListParticipationLevels", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListParticipationLevels", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + { + "name": "attended_filter", + "in": "query", + "description": "Filter for including or excluding participants marked as attended.", + "type": "boolean", + "x-ms-summary": "Attended?" + }, + { + "name": "fees_paid_filter", + "in": "query", + "description": "Filter for including or excluding participants that have paid their fees.", + "type": "boolean", + "x-ms-summary": "Fees paid?" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 10000.", + "type": "integer", + "format": "int32", + "default": 500, + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "is_constituent_filter", + "in": "query", + "description": "Filter for including or excluding participants who are constituents.", + "type": "boolean", + "x-ms-summary": "Is a constituent?", + "x-ms-visibility": "advanced" + }, + { + "name": "email_eligible_filter", + "in": "query", + "description": "Filter for including or excluding participants based on whether they have a primary email address that's not marked Do not email?", + "type": "boolean", + "x-ms-summary": "Has an eligible email?", + "x-ms-visibility": "advanced" + }, + { + "name": "phone_call_eligible_filter", + "in": "query", + "description": "Filter for including or excluding participants based on whether they have a primary phone number that's not marked Do not call.", + "type": "boolean", + "x-ms-summary": "Has an eligible phone?", + "x-ms-visibility": "advanced" + }, + { + "name": "name", + "in": "query", + "description": "Filter for participants that match the specified name.", + "type": "string", + "x-ms-summary": "Name", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to participants created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to participants modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipantListEntry" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant records." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + }, + "post": { + "operationId": "CreateParticipant", + "summary": "Create a participant", + "description": "Creates a new participant for an event.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "path", + "description": "The system record ID of the event.", + "required": true, + "type": "string", + "x-ms-summary": "Event ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateParticipant" + }, + "description": "An object that represents the participant to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new participant.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedParticipant" + } + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the participant." + }, + "404": { + "description": "Returned when the specified event is not found." + } + } + } + }, + "/event/v1/participantoptions/{option_id}": { + "patch": { + "operationId": "EditParticipantOption", + "summary": "Update a participant option", + "description": "Updates the details about a participant option.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "option_id", + "in": "path", + "description": "The system record ID of the participant option to update.", + "required": true, + "type": "string", + "x-ms-summary": "Participant option ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.EditParticipantOption" + }, + "description": "An object that represents the event participant option to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds." + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify the participant option record." + }, + "404": { + "description": "Returned when the specified participant option is not found." + } + } + } + }, + "/event/v1/participants/{participant_id}": { + "get": { + "operationId": "GetParticipant", + "summary": "Get a participant", + "description": "Returns information about a specific event participant.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.Participant" + } + }, + "400": { + "description": "Returned when the specified participant ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + }, + "patch": { + "operationId": "EditParticipant", + "summary": "Update a participant", + "description": "Updates the details about a participant.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant to update.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.EditParticipant" + }, + "description": "An object that represents the properties of the participant to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds." + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to edit the participant." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + } + }, + "/event/v1/participants/{participant_id}/donations": { + "get": { + "operationId": "ListParticipantDonations", + "summary": "List participant donations", + "description": "Lists the donations for a participant.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 10000.", + "type": "integer", + "format": "int32", + "default": 500, + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination. The default is 0.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipantDonation" + } + }, + "400": { + "description": "Returned when the specified request does not contain a valid ID." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + }, + "post": { + "operationId": "CreateParticipantDonation", + "summary": "Create a participant donation", + "description": "Creates a new donation for a participant.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateParticipantDonation" + }, + "description": "An object that represents the participant donation to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new donation.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedParticipantDonation" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + } + }, + "/event/v1/participants/{participant_id}/feepayments": { + "get": { + "operationId": "ListParticipantFeePayments", + "summary": "List participant fee payments", + "description": "Lists the fee payments for a participant.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 10000.", + "type": "integer", + "format": "int32", + "default": 500, + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination. The default is 0.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains a collection of participant fees.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipantFeePayment" + } + }, + "400": { + "description": "Returned when the route does not contain a valid ID." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + }, + "post": { + "operationId": "CreateParticipantFeePayment", + "summary": "Create a participant fee payment", + "description": "Creates a new fee payment for a participant.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateParticipantFeePayment" + }, + "description": "An object that represents the participant fee payment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new fee payment.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedParticipantFeePayment" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + } + }, + "/event/v1/participants/{participant_id}/fees": { + "get": { + "operationId": "ListParticipantFees", + "summary": "List participant fees", + "description": "Lists the fees for a participant.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 10000.", + "type": "integer", + "format": "int32", + "default": 500, + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination. The default is 0.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains a collection of participant fees.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipantFee" + } + }, + "400": { + "description": "Returned when the request does not contain a valid ID." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + }, + "post": { + "operationId": "CreateParticipantFee", + "summary": "Create a participant fee", + "description": "Creates a new fee for a participant.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateParticipantFee" + }, + "description": "An object that represents the participant fee to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new participant fee.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedParticipantFee" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the participant fee." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + } + }, + "/event/v1/participants/{participant_id}/participantoptions": { + "get": { + "operationId": "ListParticipantOptions", + "summary": "List participant options", + "description": "Lists the participant options for a participant.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The system record ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipantOption" + } + }, + "400": { + "description": "Returned when the specified request does not contain a valid ID." + }, + "403": { + "description": "Returned when the user does not have permission to view the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + }, + "post": { + "operationId": "CreateParticipantOption", + "summary": "Create a participant option", + "description": "Creates a new participant option for a participant.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "participant_id", + "in": "path", + "description": "The ID of the participant.", + "required": true, + "type": "string", + "x-ms-summary": "Participant ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/EventApi.CreateParticipantOption" + }, + "description": "An object that represents the participant option to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds. The response body contains the ID of the new participant option.", + "schema": { + "$ref": "#/definitions/EventApi.CreatedParticipantOption" + } + }, + "400": { + "description": "Returned when the route does not contain a valid ID or the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify the participant record." + }, + "404": { + "description": "Returned when the specified participant is not found." + } + } + } + }, + "/event/v1/participationlevels": { + "get": { + "operationId": "ListParticipationLevels", + "summary": "List participation levels", + "description": "Lists the participation levels.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/EventApi.ApiCollectionOfParticipationLevel" + } + }, + "403": { + "description": "Returned when the user does not have permission to view participant participation levels." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/participantoptionlistvalues": { + "get": { + "operationId": "GetParticipantOptionListDynamicValues", + "summary": "Get participant option list dynamic values", + "description": "List participant option list dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "query", + "description": "The event identifier.", + "required": true, + "type": "string" + }, + { + "name": "event_participant_option_id", + "in": "query", + "description": "The event participant option identifier.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/participantoptions": { + "get": { + "operationId": "GetParticipantOptionDynamicProperties", + "summary": "Get participant option dynamic properties", + "description": "List participant option dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "event_id", + "in": "query", + "description": "The event identifier.", + "required": true, + "type": "string" + }, + { + "name": "event_participant_option_id", + "in": "query", + "description": "The event participant option identifier.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "EventApi.AdministrativeArea": { + "type": "object", + "description": "Defines the data model used for an address' administrative area (ex: state in the US).", + "x-ms-summary": "administrative area", + "properties": { + "id": { + "type": "string", + "description": "The record ID of the administrative area.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the administrative area.", + "x-ms-summary": "name" + }, + "short_description": { + "type": "string", + "description": "The short description of the administrative area.", + "x-ms-summary": "short description" + } + } + }, + "EventApi.ApiCollectionOfEventCategory": { + "type": "object", + "description": "Categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.EventCategory" + } + } + } + }, + "EventApi.ApiCollectionOfEventFee": { + "type": "object", + "description": "Fees", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.EventFee" + } + } + } + }, + "EventApi.ApiCollectionOfEventListEntry": { + "type": "object", + "description": "Events", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.EventListEntry" + } + } + } + }, + "EventApi.ApiCollectionOfEventParticipantOption": { + "type": "object", + "description": "Event participant options", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.EventParticipantOption" + } + } + } + }, + "EventApi.ApiCollectionOfParticipantDonation": { + "type": "object", + "description": "Donations", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantDonation" + } + } + } + }, + "EventApi.ApiCollectionOfParticipantFee": { + "type": "object", + "description": "Fees", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantFee" + } + } + } + }, + "EventApi.ApiCollectionOfParticipantFeePayment": { + "type": "object", + "description": "Fee payments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantFeePayment" + } + } + } + }, + "EventApi.ApiCollectionOfParticipantListEntry": { + "type": "object", + "description": "Participants", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantListEntry" + } + } + } + }, + "EventApi.ApiCollectionOfParticipantOption": { + "type": "object", + "description": "Participant options", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantOption" + } + } + } + }, + "EventApi.ApiCollectionOfParticipationLevel": { + "type": "object", + "description": "Participation levels", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/EventApi.ParticipationLevel" + } + } + } + }, + "EventApi.Country": { + "type": "object", + "description": "Defines the data model used for an address' country.", + "x-ms-summary": "country", + "properties": { + "id": { + "type": "string", + "description": "The ID of the country record.", + "x-ms-summary": "ID" + }, + "display_name": { + "type": "string", + "description": "The display name of the country.", + "x-ms-summary": "display name" + }, + "iso_alpha2_code": { + "type": "string", + "description": "The ISO 3166-1 alpha-2 code for the country.", + "x-ms-summary": "ISO code" + } + } + }, + "EventApi.CreatedEvent": { + "type": "object", + "description": "Created event", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created event.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedEventFee": { + "type": "object", + "description": "Created event fee", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created event fee.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedEventParticipantOption": { + "type": "object", + "description": "Created event participant option", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created event participant option.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedParticipant": { + "type": "object", + "description": "Created participant", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created participant.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedParticipantDonation": { + "type": "object", + "description": "Created participant donation", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created participant donation.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedParticipantFee": { + "type": "object", + "description": "Created participant fee", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created participant fee.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedParticipantFeePayment": { + "type": "object", + "description": "Created participant fee payment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created participant fee payment.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreatedParticipantOption": { + "type": "object", + "description": "Created participant option", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created participant option.", + "x-ms-summary": "ID" + } + } + }, + "EventApi.CreateEvent": { + "type": "object", + "description": "Events are planned occasions that help organizations raise awareness for their missions, engage constituents, and encourage donations.", + "required": [ + "name", + "start_date" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the event.", + "x-ms-summary": "Event name" + }, + "description": { + "type": "string", + "description": "The description of the event.", + "x-ms-summary": "Description" + }, + "category": { + "type": "object", + "description": "The event category", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The category name.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListEventCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListEventCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + } + } + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the event (ex: '2020-09-18').", + "x-ms-summary": "Start date" + }, + "start_time": { + "type": "string", + "description": "The start time of the event (ex: '07:30').", + "x-ms-summary": "Start time" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the event (ex: '2020-09-18').", + "x-ms-summary": "End date" + }, + "end_time": { + "type": "string", + "description": "The end time of the event (ex: '07:30)'.", + "x-ms-summary": "End time" + }, + "lookup_id": { + "type": "string", + "description": "The lookup ID of the event.", + "x-ms-summary": "Lookup ID", + "x-ms-visibility": "advanced" + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "The number of people that can attend the event.", + "x-ms-summary": "Capacity", + "x-ms-visibility": "advanced" + }, + "goal": { + "type": "number", + "format": "double", + "description": "The monetary goal of the event.", + "x-ms-summary": "Goal", + "x-ms-visibility": "advanced" + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the event.", + "x-ms-summary": "Campaign ID", + "x-ms-visibility": "advanced" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the event.", + "x-ms-summary": "Fund ID", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is the event active?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "EventApi.CreateEventFee": { + "type": "object", + "description": "Event fees are how much an organization charges for individuals or organizations to participate in or attend the event.", + "required": [ + "name", + "cost", + "contribution_amount" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the fee.", + "x-ms-summary": "Name" + }, + "cost": { + "type": "number", + "format": "double", + "description": "The amount of money associated with the fee.", + "x-ms-summary": "Fee amount" + }, + "contribution_amount": { + "type": "number", + "format": "double", + "description": "The amount of the fee that's a donation above the costs of the event.", + "x-ms-summary": "Contribution amount" + } + } + }, + "EventApi.CreateEventParticipantOption": { + "type": "object", + "description": "Event participant options are fields that collect details about participants, such as t-shirt sizes, meal preferences, or seating requests. Set options and their values for an event and then add responses for each participant.", + "required": [ + "name", + "input_type" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the event participant option.", + "x-ms-summary": "Name" + }, + "input_type": { + "type": "string", + "description": "The types of values participants can use to provide responses.", + "x-ms-summary": "Input type", + "enum": [ + "Boolean", + "String", + "List" + ] + }, + "multi_select": { + "type": "boolean", + "description": "Allow more than one value for lists?", + "x-ms-summary": "Allow multi-select?", + "x-ms-visibility": "advanced" + }, + "list_options": { + "type": "array", + "description": "The available options for the list.", + "items": { + "$ref": "#/definitions/EventApi.CreateParticipantOptionListOption" + }, + "x-ms-visibility": "advanced" + } + } + }, + "EventApi.CreateParticipant": { + "type": "object", + "description": "Participants are individuals or organizations who engage with the organization through an event. \r\nThey can include constituents who receive invitations or register for the event.", + "required": [ + "constituent_id" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The constituent ID of the participant.", + "x-ms-summary": "Constituent ID" + }, + "host_id": { + "type": "string", + "description": "The ID of the host's participant record.", + "x-ms-summary": "Host ID" + }, + "rsvp_status": { + "type": "string", + "description": "The status of the participant's engagement with the event.", + "x-ms-summary": "RSVP status", + "enum": [ + "NoResponse", + "Attending", + "Declined", + "Interested", + "Canceled", + "Waitlisted", + "NotApplicable" + ] + }, + "attended": { + "type": "boolean", + "description": "Did the participant attend the event?", + "x-ms-summary": "Attended?" + }, + "invitation_status": { + "type": "string", + "description": "The status of the invitation to the participant.", + "x-ms-summary": "Invitation status", + "enum": [ + "NotApplicable", + "NotInvited", + "Invited" + ] + }, + "rsvp_date": { + "type": "object", + "description": "The date of the RSVP.", + "x-ms-summary": "RSVP date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "invitation_date": { + "type": "object", + "description": "The date of the invitation.", + "x-ms-summary": "Invitation date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "participation_level": { + "type": "object", + "description": "The participation level", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the participation level.", + "x-ms-summary": "Participation level", + "x-ms-dynamic-values": { + "operationId": "ListParticipationLevels", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListParticipationLevels", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + } + } + }, + "summary_note": { + "type": "string", + "description": "Quick reference information pinned to the participant's record.", + "x-ms-summary": "Summary note" + } + } + }, + "EventApi.CreateParticipantDonation": { + "type": "object", + "description": "Participant donations are donations made toward the event.", + "required": [ + "gift_id" + ], + "properties": { + "gift_id": { + "type": "string", + "description": "The systetm record ID of the gift to which the participant donation is linked.", + "x-ms-summary": "Gift ID" + } + } + }, + "EventApi.CreateParticipantFee": { + "type": "object", + "description": "Participant fees are how much an individual or organization pays to participate in or attend the event.", + "required": [ + "event_id", + "event_fee_id", + "quantity", + "fee_amount", + "contribution_amount" + ], + "properties": { + "event_id": { + "type": "string", + "description": "The system record ID of the event.", + "x-ms-summary": "Event ID" + }, + "event_fee_id": { + "type": "string", + "description": "The event fee.", + "x-ms-summary": "Fee", + "x-ms-dynamic-values": { + "operationId": "ListEventFees", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "event_id": { + "parameter": "event_id" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "ListEventFees", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "event_id": { + "parameterReference": "body/event_id" + } + } + } + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity purchased.", + "x-ms-summary": "Quantity" + }, + "fee_amount": { + "type": "number", + "format": "double", + "description": "The amount of money associated with the fee.", + "x-ms-summary": "Fee amount" + }, + "contribution_amount": { + "type": "number", + "format": "double", + "description": "The amount of the fee that's a donation above the costs of the event. This is the amount that typically appears on receipts.", + "x-ms-summary": "Contribution amount" + }, + "date": { + "type": "object", + "description": "The date of the participant fee.", + "x-ms-summary": "Date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + } + } + }, + "EventApi.CreateParticipantFeePayment": { + "type": "object", + "description": "Participant fee payments are payments toward the participant's fees.", + "required": [ + "gift_id", + "applied_amount" + ], + "properties": { + "gift_id": { + "type": "string", + "description": "The systetm record ID of the gift to which the participant fee is linked.", + "x-ms-summary": "Gift ID" + }, + "applied_amount": { + "type": "number", + "format": "double", + "description": "The amount of the payment that applies toward the participant fees.", + "x-ms-summary": "Applied amount" + } + } + }, + "EventApi.CreateParticipantOption": { + "type": "object", + "description": "Participant options are the responses to an event participant option.", + "required": [ + "event_id", + "event_participant_option_id", + "option_value" + ], + "properties": { + "event_id": { + "type": "string", + "description": "The system record ID of the event.", + "x-ms-summary": "Event ID" + }, + "event_participant_option_id": { + "type": "string", + "description": "The event participant option.", + "x-ms-summary": "Option", + "x-ms-dynamic-values": { + "operationId": "ListEventParticipantOptions", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "event_id": { + "parameter": "event_id" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "ListEventParticipantOptions", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "event_id": { + "parameterReference": "body/event_id" + } + } + } + }, + "option_value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetParticipantOptionDynamicProperties", + "parameters": { + "event_id": { + "parameter": "event_id" + }, + "event_participant_option_id": { + "parameter": "event_participant_option_id" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetParticipantOptionDynamicProperties", + "parameters": { + "event_id": { + "parameterReference": "body/event_id" + }, + "event_participant_option_id": { + "parameterReference": "body/event_participant_option_id" + } + }, + "itemValuePath": "items" + } + } + } + }, + "EventApi.CreateParticipantOptionListOption": { + "type": "object", + "description": "List options for event participant options are the values participants can select when they provide responses.", + "x-ms-summary": "List options", + "properties": { + "name": { + "type": "string", + "description": "The name of the list option.", + "x-ms-summary": "name" + }, + "sequence": { + "type": "integer", + "format": "int32", + "description": "The 0-based sequence used for ordering.", + "x-ms-summary": "sequence" + } + } + }, + "EventApi.EditEvent": { + "type": "object", + "description": "Events are planned occasions that help organizations raise awareness for their missions, engage constituents, and encourage donations.", + "properties": { + "name": { + "type": "string", + "description": "The name of the event.", + "x-ms-summary": "Event name" + }, + "description": { + "type": "string", + "description": "The description of the event.", + "x-ms-summary": "Description" + }, + "category": { + "type": "object", + "description": "The event category", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The category name.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListEventCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListEventCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + } + } + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the event (ex: '2020-09-18').", + "x-ms-summary": "Start date" + }, + "start_time": { + "type": "string", + "description": "The start time of the event (ex: '07:30').", + "x-ms-summary": "Start time" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the event (ex: '2020-09-18').", + "x-ms-summary": "End date" + }, + "end_time": { + "type": "string", + "description": "The end time of the event (ex: '07:30').", + "x-ms-summary": "End time" + }, + "lookup_id": { + "type": "string", + "description": "The lookup ID of the event.", + "x-ms-summary": "Lookup ID", + "x-ms-visibility": "advanced" + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "The number of people that can attend the event.", + "x-ms-summary": "Capacity", + "x-ms-visibility": "advanced" + }, + "goal": { + "type": "number", + "format": "double", + "description": "The monetary goal of the event.", + "x-ms-summary": "Goal", + "x-ms-visibility": "advanced" + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the event.", + "x-ms-summary": "Campaign ID", + "x-ms-visibility": "advanced" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the event.", + "x-ms-summary": "Fund ID", + "x-ms-visibility": "advanced" + }, + "inactive": { + "type": "boolean", + "description": "Is the event active?", + "x-ms-summary": "Inactive?", + "x-ms-visibility": "advanced" + } + } + }, + "EventApi.EditParticipant": { + "type": "object", + "description": "Participants are individuals or organizations who engage with the organization through an event. \r\nThey can include constituents who receive invitations or register for the event.", + "properties": { + "constituent_id": { + "type": "string", + "description": "The constituent ID of the participant.", + "x-ms-summary": "Constituent ID" + }, + "host_id": { + "type": "string", + "description": "The ID of the host's participant record.", + "x-ms-summary": "Host ID" + }, + "rsvp_status": { + "type": "string", + "description": "The status of the participant's engagement with the event.", + "x-ms-summary": "RSVP status", + "enum": [ + "NoResponse", + "Attending", + "Declined", + "Interested", + "Canceled", + "Waitlisted", + "NotApplicable" + ] + }, + "attended": { + "type": "boolean", + "description": "Did the participant attend the event?", + "x-ms-summary": "Attended?" + }, + "invitation_status": { + "type": "string", + "description": "The status of the invitation to the participant.", + "x-ms-summary": "Invitation status", + "enum": [ + "NotApplicable", + "NotInvited", + "Invited" + ] + }, + "rsvp_date": { + "type": "object", + "description": "The date of the RSVP.", + "x-ms-summary": "RSVP date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "invitation_date": { + "type": "object", + "description": "The date of the invitation.", + "x-ms-summary": "Invitation date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "participation_level": { + "type": "object", + "description": "The participation level", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "The name of the participation level.", + "x-ms-summary": "Participation level", + "x-ms-dynamic-values": { + "operationId": "ListParticipationLevels", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListParticipationLevels", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + } + } + }, + "summary_note": { + "type": "string", + "description": "Quick reference information pinned to the participant's record.", + "x-ms-summary": "Summary note" + } + } + }, + "EventApi.EditParticipantOption": { + "type": "object", + "description": "A participant option", + "required": [ + "option_value" + ], + "properties": { + "option_value": { + "type": "string", + "description": "The participant's response to the option.", + "x-ms-summary": "Value" + } + } + }, + "EventApi.Event": { + "type": "object", + "description": "Event", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the event. This is not the same as the user-definable event identifier, which is stored in the lookup_id.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the event.", + "x-ms-summary": "Name" + }, + "description": { + "type": "string", + "description": "The description of the event.", + "x-ms-summary": "Description" + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the event.", + "x-ms-summary": "Start date" + }, + "start_time": { + "type": "string", + "description": "The start time of the event.", + "x-ms-summary": "Start time" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the event.", + "x-ms-summary": "End date" + }, + "end_time": { + "type": "string", + "description": "The end time of the event.", + "x-ms-summary": "End time" + }, + "category": { + "$ref": "#/definitions/EventApi.EventCategory" + }, + "lookup_id": { + "type": "string", + "description": "The lookup ID of the event.", + "x-ms-summary": "Lookup ID" + }, + "location": { + "$ref": "#/definitions/EventApi.Location" + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "The number of people that can attend the event.", + "x-ms-summary": "Capacity" + }, + "goal": { + "type": "number", + "format": "double", + "description": "The monetary goal of the event.", + "x-ms-summary": "Goal" + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the event.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the event.", + "x-ms-summary": "Fund ID" + }, + "inactive": { + "type": "boolean", + "description": "Is the event inactive?", + "x-ms-summary": "Inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the event was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the event was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "EventApi.EventCategory": { + "type": "object", + "description": "Event category is the custom categorization for the event.", + "x-ms-summary": "Category", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the event category.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the event category.", + "x-ms-summary": "name" + }, + "inactive": { + "type": "boolean", + "description": "Is this category inactive?", + "x-ms-summary": "inactive?" + } + } + }, + "EventApi.EventFee": { + "type": "object", + "description": "Event fees are how much an organization charges for individuals or organizations to participate in or attend the event.", + "x-ms-summary": "Event fee", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the event fee.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the event fee.", + "x-ms-summary": "name" + }, + "cost": { + "type": "number", + "format": "double", + "description": "The fee's cost.", + "x-ms-summary": "amount" + }, + "contribution_amount": { + "type": "number", + "format": "double", + "description": "The tax deductible amount for this fee.", + "x-ms-summary": "contribution amount" + }, + "number_sold": { + "type": "integer", + "format": "int32", + "description": "The number of fees sold.", + "x-ms-summary": "number sold" + } + } + }, + "EventApi.EventListEntry": { + "type": "object", + "description": "Event", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the event.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the event.", + "x-ms-summary": "Name" + }, + "start_date": { + "type": "string", + "format": "date", + "description": "The start date of the event.", + "x-ms-summary": "Start date" + }, + "start_time": { + "type": "string", + "description": "The start time of the event.", + "x-ms-summary": "Start time" + }, + "end_date": { + "type": "string", + "format": "date", + "description": "The end date of the event.", + "x-ms-summary": "End date" + }, + "end_time": { + "type": "string", + "description": "The end time of the event.", + "x-ms-summary": "End time" + }, + "category": { + "$ref": "#/definitions/EventApi.EventCategory" + }, + "lookup_id": { + "type": "string", + "description": "The lookup ID of the event.", + "x-ms-summary": "Lookup ID" + }, + "capacity": { + "type": "integer", + "format": "int32", + "description": "The number of people that can attend the event.", + "x-ms-summary": "Capacity" + }, + "attending_count": { + "type": "integer", + "format": "int32", + "description": "The number of event participants who plan to attend.", + "x-ms-summary": "Attending" + }, + "attended_count": { + "type": "integer", + "format": "int32", + "description": "The number of event attendees.", + "x-ms-summary": "Attended" + }, + "invited_count": { + "type": "integer", + "format": "int32", + "description": "The number of event invitees.", + "x-ms-summary": "Invited" + }, + "revenue": { + "type": "number", + "format": "double", + "description": "The realized revenue of the event.", + "x-ms-summary": "Revenue" + }, + "goal": { + "type": "number", + "format": "double", + "description": "The monetary goal of the event.", + "x-ms-summary": "Goal" + }, + "percent_of_goal": { + "type": "integer", + "format": "int32", + "description": "The realized revenue as a percentage of the goal revenue.", + "x-ms-summary": "Percent of goal" + }, + "inactive": { + "type": "boolean", + "description": "Is the event inactive?", + "x-ms-summary": "Inactive?" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the event was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the event was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "EventApi.EventParticipantOption": { + "type": "object", + "description": "Event participant options are fields that collects details about participants, such as t-shirt sizes, meal preferences, or seating requests. \r\nSet options and their values for an event and then add responses for each participant.", + "x-ms-summary": "Event participant option", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the event participant option.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the event participant option.", + "x-ms-summary": "name" + }, + "input_type": { + "type": "string", + "description": "The type of the event participant option.", + "x-ms-summary": "input type", + "enum": [ + "Boolean", + "String", + "List" + ] + }, + "multi_select": { + "type": "boolean", + "description": "Allow more than one value for lists?", + "x-ms-summary": "allow multi-select?" + }, + "list_options": { + "type": "array", + "description": "The available list options.", + "items": { + "$ref": "#/definitions/EventApi.EventParticipantOptionListOption" + } + }, + "added_by_user": { + "type": "string", + "description": "The ID of the user that added the option.", + "x-ms-summary": "added by user" + }, + "updated_by_user": { + "type": "string", + "description": "The ID of the user who modified the option.", + "x-ms-summary": "modified by user" + }, + "added_by_service": { + "type": "string", + "description": "The name of the service that added this option.", + "x-ms-summary": "added by service" + }, + "updated_by_service": { + "type": "string", + "description": "The name of the service that modified this option.", + "x-ms-summary": "modified by service" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the option was created.", + "x-ms-summary": "date added" + }, + "date_updated": { + "type": "string", + "format": "date-time", + "description": "The date when the option was last modified.", + "x-ms-summary": "date modified" + }, + "version": { + "type": "integer", + "format": "int32", + "description": "The version number of the option.", + "x-ms-summary": "version" + } + } + }, + "EventApi.EventParticipantOptionListOption": { + "type": "object", + "description": "A event participant option list option", + "properties": { + "id": { + "type": "string", + "description": "The ID of the list option", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the list option", + "x-ms-summary": "name" + }, + "sequence": { + "format": "int32", + "type": "integer", + "description": "The sequence used to order the list options", + "x-ms-summary": "sequence" + } + } + }, + "EventApi.Locality": { + "type": "object", + "description": "Defines the data model used for an address' locality.", + "x-ms-summary": "locality", + "properties": { + "id": { + "type": "string", + "description": "The record ID of the locality record.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the locality.", + "x-ms-summary": "name" + } + } + }, + "EventApi.Location": { + "type": "object", + "description": "Defines the data model used for a location.", + "x-ms-summary": "Location", + "properties": { + "name": { + "type": "string", + "description": "The name of the location.", + "x-ms-summary": "name" + }, + "address_lines": { + "type": "string", + "description": "The location's address lines.", + "x-ms-summary": "address lines" + }, + "postal_code": { + "type": "string", + "description": "The location's postal code.", + "x-ms-summary": "postal code" + }, + "locality": { + "$ref": "#/definitions/EventApi.Locality" + }, + "administrative_area": { + "$ref": "#/definitions/EventApi.AdministrativeArea" + }, + "sub_administrative_area": { + "$ref": "#/definitions/EventApi.SubAdministrativeArea" + }, + "country": { + "$ref": "#/definitions/EventApi.Country" + }, + "formatted_address": { + "type": "string", + "description": "The location's formatted address", + "x-ms-summary": "formatted address" + } + } + }, + "EventApi.Membership": { + "type": "object", + "description": "Membership information for the participant.", + "properties": { + "category": { + "$ref": "#/definitions/EventApi.MembershipCategory" + } + } + }, + "EventApi.MembershipCategory": { + "type": "object", + "description": "The individual's membership category.", + "x-ms-summary": "Membership category", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the membership category.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the membership category.", + "x-ms-summary": "name" + } + } + }, + "EventApi.Participant": { + "type": "object", + "description": "Participant", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participant.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The constituent ID of the participant.", + "x-ms-summary": "Constituent ID" + }, + "event_id": { + "type": "string", + "description": "The system record ID of the event being attended.", + "x-ms-summary": "Event ID" + }, + "host_id": { + "type": "string", + "description": "The ID of the host's participant record.", + "x-ms-summary": "Host ID" + }, + "rsvp_status": { + "type": "string", + "description": "The status of the participant's engagement with the event.", + "x-ms-summary": "RSVP status", + "enum": [ + "NoResponse", + "Attending", + "Declined", + "Interested", + "Canceled", + "Waitlisted", + "NotApplicable" + ] + }, + "attended": { + "type": "boolean", + "description": "Did the participant attend the event?", + "x-ms-summary": "Attended?" + }, + "invitation_status": { + "type": "string", + "description": "The status of the invitation to the participant.", + "x-ms-summary": "Invitation status", + "enum": [ + "NotApplicable", + "NotInvited", + "Invited" + ] + }, + "rsvp_date": { + "type": "object", + "description": "The date of the RSVP.", + "x-ms-summary": "RSVP date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "invitation_date": { + "type": "object", + "description": "The date of the invitation.", + "x-ms-summary": "Invitation date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "summary_note": { + "type": "string", + "description": "Quick reference information pinned to the participant's record.", + "x-ms-summary": "Summary note" + }, + "participation_level": { + "$ref": "#/definitions/EventApi.ParticipationLevel" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the participant was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the participant was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "EventApi.ParticipantDonation": { + "type": "object", + "description": "Defines a data model for a participant donation", + "x-ms-summary": "Participant donation", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participant donation.", + "x-ms-summary": "ID" + }, + "gift_id": { + "type": "string", + "description": "The system record ID of the gift to which the participant donation is linked.", + "x-ms-summary": "gift ID" + } + } + }, + "EventApi.ParticipantFee": { + "type": "object", + "description": "Defines a data model for a participant fee", + "x-ms-summary": "Participant fee", + "properties": { + "id": { + "type": "string", + "description": "The ID of the participant fee.", + "x-ms-summary": "ID" + }, + "participant_id": { + "type": "string", + "description": "The ID of the record that the participant fee is linked to.", + "x-ms-summary": "participant ID" + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "The quantity purchased.", + "x-ms-summary": "quantity" + }, + "fee_amount": { + "type": "number", + "format": "double", + "description": "The amount of the participant fee.", + "x-ms-summary": "fee amount" + }, + "tax_receiptable_amount": { + "type": "number", + "format": "double", + "description": "The tax deductible amount for this fee.", + "x-ms-summary": "contribution amount" + }, + "date": { + "type": "object", + "description": "The date of the participant fee.", + "x-ms-summary": "Date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "event_fee": { + "$ref": "#/definitions/EventApi.EventFee" + } + } + }, + "EventApi.ParticipantFeePayment": { + "type": "object", + "description": "Defines a data model for a participant fee payment", + "x-ms-summary": "Participant fee payment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participant fee payment.", + "x-ms-summary": "ID" + }, + "participant_id": { + "type": "string", + "description": "The system record ID of the participant to which the participant fee payment is linked.", + "x-ms-summary": "participant ID" + }, + "gift_id": { + "type": "string", + "description": "The system record ID of the gift to which the participant fee payment is linked.", + "x-ms-summary": "gift ID" + }, + "applied_amount": { + "type": "number", + "format": "double", + "description": "The applied amount of the participant fee payment.", + "x-ms-summary": "applied amount" + } + } + }, + "EventApi.ParticipantListEntry": { + "type": "object", + "description": "Participant", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participant.", + "x-ms-summary": "ID" + }, + "contact_id": { + "type": "string", + "description": "The ID of the contact attending the event.", + "x-ms-summary": "Contact ID" + }, + "rsvp_status": { + "type": "string", + "description": "The status of the participant's engagement with the event.", + "x-ms-summary": "RSVP status", + "enum": [ + "NoResponse", + "Attending", + "Declined", + "Interested", + "Canceled", + "Waitlisted", + "NotApplicable" + ] + }, + "attended": { + "type": "boolean", + "description": "Did the participant attend the event?", + "x-ms-summary": "Attended?" + }, + "invitation_status": { + "type": "string", + "description": "The status of the invitation to the participant.", + "x-ms-summary": "Invitation status", + "enum": [ + "NotApplicable", + "NotInvited", + "Invited" + ] + }, + "rsvp_date": { + "type": "object", + "description": "The date of the RSVP.", + "x-ms-summary": "RSVP date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "participation_level": { + "$ref": "#/definitions/EventApi.ParticipationLevel" + }, + "title": { + "type": "string", + "description": "The participant's title.", + "x-ms-summary": "Title" + }, + "first_name": { + "type": "string", + "description": "The participant's first name.", + "x-ms-summary": "First name" + }, + "last_name": { + "type": "string", + "description": "The participant's last name.", + "x-ms-summary": "Last name" + }, + "name": { + "type": "string", + "description": "The participant's full name.", + "x-ms-summary": "Name" + }, + "preferred_name": { + "type": "string", + "description": "The participant's preferred name.", + "x-ms-summary": "Preferred name" + }, + "suffix": { + "type": "string", + "description": "The participant's suffix.", + "x-ms-summary": "Suffix" + }, + "lookup_id": { + "type": "string", + "description": "The LookupId of the participant.", + "x-ms-summary": "Lookup ID" + }, + "email": { + "type": "string", + "description": "The participant's email address.", + "x-ms-summary": "Email" + }, + "do_not_email": { + "type": "boolean", + "description": "Can the participant be contacted at this email address?", + "x-ms-summary": "Do not email?" + }, + "phone": { + "type": "string", + "description": "The participant's phone number.", + "x-ms-summary": "Phone" + }, + "do_not_call": { + "type": "boolean", + "description": "Can the participant be contacted at this number?", + "x-ms-summary": "Do not call?" + }, + "middle_name": { + "type": "string", + "description": "The participant's middle name.", + "x-ms-summary": "Middle name" + }, + "former_name": { + "type": "string", + "description": "The participant's former name.", + "x-ms-summary": "Former name" + }, + "is_constituent": { + "type": "boolean", + "description": "Is the participant a constituent?", + "x-ms-summary": "Is a constituent?" + }, + "class_of": { + "type": "string", + "description": "The participant's graduating class.", + "x-ms-summary": "Class of" + }, + "total_registration_fees": { + "type": "number", + "format": "double", + "description": "The sum of the participant's fee amounts.", + "x-ms-summary": "Total registration fees" + }, + "total_paid": { + "type": "number", + "format": "double", + "description": "The sum of the participant's paid gifts with a type of Registration Fees.", + "x-ms-summary": "Total paid" + }, + "seat": { + "type": "string", + "description": "The seat assignment for the participant.", + "x-ms-summary": "Seat" + }, + "name_tag": { + "type": "string", + "description": "The name tag for the participant", + "x-ms-summary": "Name tag" + }, + "summary_note": { + "type": "string", + "description": "Quick reference information pinned to the participant's record.", + "x-ms-summary": "Summary note" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the participant was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the participant was last modified.", + "x-ms-summary": "Date modified" + }, + "host": { + "type": "object", + "description": "The participant's basic summary information.", + "x-ms-summary": "Host", + "properties": { + "contact_id": { + "type": "string", + "description": "The ID of the contact attending the event.", + "x-ms-summary": "contact ID" + }, + "participant_id": { + "type": "string", + "description": "The ID of the participant.", + "x-ms-summary": "participant ID" + }, + "name": { + "type": "string", + "description": "The participant's full name.", + "x-ms-summary": "name" + } + } + }, + "guests": { + "type": "array", + "description": "The guests of the participant.", + "items": { + "$ref": "#/definitions/EventApi.ParticipantListParticipantSummary" + } + }, + "memberships": { + "type": "array", + "description": "The membership information for the participant.", + "items": { + "$ref": "#/definitions/EventApi.Membership" + } + } + } + }, + "EventApi.ParticipantListParticipantSummary": { + "type": "object", + "description": "The participant's basic summary information.", + "properties": { + "contact_id": { + "type": "string", + "description": "The ID of the contact attending the event.", + "x-ms-summary": "contact ID" + }, + "participant_id": { + "type": "string", + "description": "The ID of the participant.", + "x-ms-summary": "participant ID" + }, + "name": { + "type": "string", + "description": "The participant's full name.", + "x-ms-summary": "name" + } + } + }, + "EventApi.ParticipantOption": { + "type": "object", + "description": "The participant option associated with a given participant", + "x-ms-summary": "Participant option", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participant option.", + "x-ms-summary": "ID" + }, + "participant_id": { + "type": "string", + "description": "The system record ID of the participant.", + "x-ms-summary": "participant ID" + }, + "event_id": { + "type": "string", + "description": "The system record ID of the event.", + "x-ms-summary": "event ID" + }, + "event_participant_option_id": { + "type": "string", + "description": "The system record ID of the event participant option.", + "x-ms-summary": "event participant option ID" + }, + "option_value": { + "type": "string", + "description": "The participant's response to the option.", + "x-ms-summary": "value" + }, + "added_by_user": { + "type": "string", + "description": "The ID of the user that added the participant option.", + "x-ms-summary": "added by user" + }, + "updated_by_user": { + "type": "string", + "description": "The ID of the user who modified the participant option.", + "x-ms-summary": "modified by user" + }, + "added_by_service": { + "type": "string", + "description": "The name of the service that added this participant option.", + "x-ms-summary": "added by service" + }, + "updated_by_service": { + "type": "string", + "description": "The name of the service that modified this participant option.", + "x-ms-summary": "modified by service" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the participant option was created.", + "x-ms-summary": "date added" + }, + "date_updated": { + "type": "string", + "format": "date-time", + "description": "The date when the participant option was last modified.", + "x-ms-summary": "date modified" + } + } + }, + "EventApi.ParticipationLevel": { + "type": "object", + "description": "Participation levels are the level of involvement participants have in an event.", + "x-ms-summary": "Participation level", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the participation level.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the participation level.", + "x-ms-summary": "name" + }, + "is_inactive": { + "type": "boolean", + "description": "Is the participation level inactive?", + "x-ms-summary": "inactive?" + } + } + }, + "EventApi.SubAdministrativeArea": { + "type": "object", + "description": "Defines the data model used for an address' sub-administrative area (ex: city in the US).", + "x-ms-summary": "sub-administrative area", + "properties": { + "id": { + "type": "string", + "description": "The ID of the sub-administrative area.", + "x-ms-summary": "ID" + }, + "name": { + "type": "string", + "description": "The name of the sub-administrative area.", + "x-ms-summary": "name" + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiProperties.json new file mode 100644 index 0000000000..cfd4d6b107 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Events/apiProperties.json @@ -0,0 +1,46 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Events/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Events/readme.md new file mode 100644 index 0000000000..2cdbdb1ad1 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Events/readme.md @@ -0,0 +1,32 @@ +## Blackbaud Raiser's Edge NXT Events Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage events and related entities found within The Raiser's Edge NXT, including: +* Events +* Participants +* Fees and donations +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file From 449d7585c58c806d8eeb6bc2f5be16404542003a Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:58:10 -0500 Subject: [PATCH 199/219] adding RENXT Fundraising connector (#1293) * adding RENXT Fundraising connector * fix connector name --- .../apiDefinition.swagger.json | 3732 +++++++++++++++++ .../apiProperties.json | 51 + .../readme.md | 33 + .../script.csx | 57 + 4 files changed, 3873 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/readme.md create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/script.csx diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiDefinition.swagger.json new file mode 100644 index 0000000000..ba50603e80 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiDefinition.swagger.json @@ -0,0 +1,3732 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Fun", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Fundraising connector to manage campaigns, funds, appeals, and packages.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/constituent/v1/constituents/{constituent_id}/appeals": { + "get": { + "operationId": "ListConstituentAppeals", + "summary": "List constituent appeals", + "description": "Lists the appeals for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfConstituentAppealRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the constituent appeals." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/fundraising/v1/appeals": { + "get": { + "operationId": "ListAppeals", + "summary": "List appeals", + "description": "Returns a list of appeals.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive appeals?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to appeals created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to appeals modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfAppealRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the appeals." + } + } + } + }, + "/fundraising/v1/appeals/{appeal_id}": { + "get": { + "operationId": "GetAppeal", + "summary": "Get an appeal", + "description": "Returns information about an appeal.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "appeal_id", + "in": "path", + "description": "The system record ID of the appeal to get.", + "required": true, + "type": "string", + "x-ms-summary": "Appeal ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.AppealRead" + } + }, + "400": { + "description": "Returned when the specified appeal ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the appeal." + }, + "404": { + "description": "Returned when the specified appeal is not found." + } + } + } + }, + "/fundraising/v1/appeals/{appeal_id}/attachments": { + "get": { + "operationId": "ListAppealAttachments", + "summary": "List appeal attachments", + "description": "Lists the attachments for an appeal.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "appeal_id", + "in": "path", + "description": "The system record ID of the appeal.", + "required": true, + "type": "string", + "x-ms-summary": "Appeal ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfAppealAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified appeal ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified appeal is not found." + } + } + } + }, + "/fundraising/v1/appeals/{appeal_id}/customfields": { + "get": { + "operationId": "ListAppealCustomFields", + "summary": "List appeal custom fields", + "description": "Lists the custom fields for an appeal.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "appeal_id", + "in": "path", + "description": "The system record ID of the appeal.", + "required": true, + "type": "string", + "x-ms-summary": "Appeal ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfAppealCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified appeal ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified appeal is not found." + } + } + } + }, + "/fundraising/v1/appeals/attachments": { + "post": { + "operationId": "CreateAppealAttachment", + "summary": "Create an appeal attachment", + "description": "Creates a new appeal attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.AppealAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedAppealAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified appeal is not found." + } + } + } + }, + "/fundraising/v1/appeals/attachments/{attachment_id}": { + "patch": { + "operationId": "EditAppealAttachment", + "summary": "Update an appeal attachment", + "description": "Updates an appeal attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.AppealAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/fundraising/v1/appeals/customfields": { + "post": { + "operationId": "CreateAppealCustomField", + "summary": "Create an appeal custom field", + "description": "Creates a new appeal custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.AppealCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedAppealCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified appeal is not found." + } + } + } + }, + "/fundraising/v1/appeals/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditAppealCustomField", + "summary": "Update an appeal custom field", + "description": "Updates an appeal custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.AppealCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/fundraising/v1/appeals/customfields/categories": { + "get": { + "operationId": "ListAppealCustomFieldCategories", + "summary": "List appeal custom field categories", + "description": "Lists the appeal custom field categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/fundraising/v1/campaigns": { + "get": { + "operationId": "ListCampaigns", + "summary": "List campaigns", + "description": "Returns a list of campaigns.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive campaigns?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to campaigns created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to campaigns modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCampaignRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the campaigns." + } + } + } + }, + "/fundraising/v1/campaigns/{campaign_id}": { + "get": { + "operationId": "GetCampaign", + "summary": "Get a campaign", + "description": "Returns information about a campaign.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "campaign_id", + "in": "path", + "description": "The system record ID of the campaign to get.", + "required": true, + "type": "string", + "x-ms-summary": "Campaign ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CampaignRead" + } + }, + "400": { + "description": "Returned when the specified campaign ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the campaign." + }, + "404": { + "description": "Returned when the specified campaign is not found." + } + } + } + }, + "/fundraising/v1/campaigns/{campaign_id}/attachments": { + "get": { + "operationId": "ListCampaignAttachments", + "summary": "List campaign attachments", + "description": "Lists the attachments for an campaign.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "campaign_id", + "in": "path", + "description": "The system record ID of the campaign.", + "required": true, + "type": "string", + "x-ms-summary": "Campaign ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCampaignAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified campaign ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified campaign is not found." + } + } + } + }, + "/fundraising/v1/campaigns/{campaign_id}/customfields": { + "get": { + "operationId": "ListCampaignCustomFields", + "summary": "List campaign custom fields", + "description": "Lists the custom fields for a campaign.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "campaign_id", + "in": "path", + "description": "The system record ID of the campaign.", + "required": true, + "type": "string", + "x-ms-summary": "Campaign ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCampaignCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified campaign ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified campaign is not found." + } + } + } + }, + "/fundraising/v1/campaigns/attachments": { + "post": { + "operationId": "CreateCampaignAttachment", + "summary": "Create a campaign attachment", + "description": "Creates a new campaign attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.CampaignAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedCampaignAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified campaign is not found." + } + } + } + }, + "/fundraising/v1/campaigns/attachments/{attachment_id}": { + "patch": { + "operationId": "EditCampaignAttachment", + "summary": "Update a campaign attachment", + "description": "Updates a campaign attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.CampaignAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/fundraising/v1/campaigns/customfields": { + "post": { + "operationId": "CreateCampaignCustomField", + "summary": "Create a campaign custom field", + "description": "Creates a new campaign custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.CampaignCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedCampaignCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified campaign is not found." + } + } + } + }, + "/fundraising/v1/campaigns/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditCampaignCustomField", + "summary": "Update a campaign custom field", + "description": "Updates a campaign custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.CampaignCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/fundraising/v1/campaigns/customfields/categories": { + "get": { + "operationId": "ListCampaignCustomFieldCategories", + "summary": "List campaign custom field categories", + "description": "Lists the campaign custom field categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/fundraising/v1/funds": { + "get": { + "operationId": "ListFunds", + "summary": "List funds", + "description": "Returns a list of funds.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive funds?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to funds created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to funds modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfFundRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the funds." + } + } + } + }, + "/fundraising/v1/funds/{fund_id}": { + "get": { + "operationId": "GetFund", + "summary": "Get a fund", + "description": "Returns information about a fund.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "fund_id", + "in": "path", + "description": "The system record ID of the fund to get.", + "required": true, + "type": "string", + "x-ms-summary": "Fund ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundRead" + } + }, + "400": { + "description": "Returned when the specified fund ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the fund." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/fundraising/v1/funds/{fund_id}/attachments": { + "get": { + "operationId": "ListFundAttachments", + "summary": "List fund attachments", + "description": "Lists the attachments for a fund.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "fund_id", + "in": "path", + "description": "The system record ID of the fund.", + "required": true, + "type": "string", + "x-ms-summary": "Fund ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfFundAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified fund ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/fundraising/v1/funds/{fund_id}/customfields": { + "get": { + "operationId": "ListFundCustomFields", + "summary": "List fund custom fields", + "description": "Lists the custom fields for a fund.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "fund_id", + "in": "path", + "description": "The system record ID of the fund.", + "required": true, + "type": "string", + "x-ms-summary": "Fund ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfFundCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified fund ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/fundraising/v1/funds/attachments": { + "post": { + "operationId": "CreateFundAttachment", + "summary": "Create a fund attachment", + "description": "Creates a new fund attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedFundAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/fundraising/v1/funds/attachments/{attachment_id}": { + "patch": { + "operationId": "EditFundAttachment", + "summary": "Update a fund attachment", + "description": "Updates a fund attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/fundraising/v1/funds/customfields": { + "post": { + "operationId": "CreateFundCustomField", + "summary": "Create a fund custom field", + "description": "Creates a new fund custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/FundraisingApi.CreatedFundCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/fundraising/v1/funds/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditFundCustomField", + "summary": "Update a fund custom field", + "description": "Updates a fund custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/FundraisingApi.FundCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/fundraising/v1/funds/customfields/categories": { + "get": { + "operationId": "ListFundCustomFieldCategories", + "summary": "List fund custom field categories", + "description": "Lists the fund custom field categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/fundraising/v1/packages": { + "get": { + "operationId": "ListPackages", + "summary": "List packages", + "description": "Returns a list of packages.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "appeal_id", + "in": "query", + "description": "Represents a comma-separated list of appeal identifiers to filter the results. For example, \"506,918\" returns only packages for appeal 506 or appeal 918.", + "type": "string", + "x-ms-summary": "Appeal ID" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive packages?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to packages created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to packages modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.ApiCollectionOfPackageRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the packages." + } + } + } + }, + "/fundraising/v1/packages/{package_id}": { + "get": { + "operationId": "GetPackage", + "summary": "Get a package", + "description": "Returns information about a package.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "package_id", + "in": "path", + "description": "The system record ID of the package to get.", + "required": true, + "type": "string", + "x-ms-summary": "Package ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/FundraisingApi.PackageRead" + } + }, + "400": { + "description": "Returned when the specified package ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the package." + }, + "404": { + "description": "Returned when the specified package is not found." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues": { + "get": { + "operationId": "GetDynamicValues", + "summary": "Get dynamic values", + "description": "List dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "route", + "in": "query", + "description": "The route within the specified SKY API to call to produce the values for the dynamic list.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/customfields": { + "get": { + "operationId": "GetCustomFieldCodeTableDynamicValues", + "summary": "Get custom field code table dynamic values", + "description": "List custom field code table dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category_name", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/customfields": { + "get": { + "operationId": "GetCustomFieldDynamicProperties", + "summary": "Get custom field dynamic properties", + "description": "List custom field dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the endpoint that will be used to fetch the custom field category definition.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "ConstituentApi.ApiCollectionOfConstituentAppealRead": { + "type": "object", + "description": "Constituent appeals", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ConstituentAppealRead" + } + } + } + }, + "ConstituentApi.ConstituentAppealRead": { + "type": "object", + "description": "Constituent appeal", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the constituent appeal.", + "x-ms-summary": "ID" + }, + "appeal": { + "type": "object", + "description": "Appeal", + "x-ms-summary": "Appeal", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the appeal.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The appeal description.", + "x-ms-summary": "description" + } + } + }, + "package": { + "type": "object", + "description": "Package", + "x-ms-summary": "Package", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the package.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The package description.", + "x-ms-summary": "description" + } + } + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The constituent appeal date.", + "x-ms-summary": "Date" + }, + "response": { + "type": "string", + "description": "The response for the constituent appeal.", + "x-ms-summary": "Response" + }, + "marketing_segment": { + "type": "string", + "description": "The marketing segment for the constituent appeal.", + "x-ms-summary": "Marketing segment" + }, + "marketing_source_code": { + "type": "string", + "description": "The marketing source code for the constituent appeal.", + "x-ms-summary": "Marketing source code" + }, + "mailing_id": { + "type": "string", + "description": "The user-defined mailing identifier for the constituent appeal.", + "x-ms-summary": "Mailing ID" + }, + "finder_number": { + "type": "string", + "description": "The marketing finder number for the constituent appeal.", + "x-ms-summary": "Finder number" + }, + "comments": { + "type": "string", + "description": "User comments for the constituent appeal.", + "x-ms-summary": "Comments" + } + } + }, + "FundraisingApi.ApiCollectionOfAppealAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.AppealAttachmentRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfAppealCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.AppealCustomFieldRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfAppealRead": { + "type": "object", + "description": "Appeals", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.AppealRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfCampaignAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.CampaignAttachmentRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfCampaignCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.CampaignCustomFieldRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfCampaignRead": { + "type": "object", + "description": "Campaigns", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.CampaignRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfCustomFieldCategoryRead": { + "type": "object", + "description": "Custom field categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.CustomFieldCategoryRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfFundAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.FundAttachmentRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfFundCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.FundCustomFieldRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfFundRead": { + "type": "object", + "description": "Funds", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.FundRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfFundraiserAssignmentRead": { + "type": "object", + "description": "Assignments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.FundraiserAssignmentRead" + } + } + } + }, + "FundraisingApi.ApiCollectionOfPackageRead": { + "type": "object", + "description": "Packages", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/FundraisingApi.PackageRead" + } + } + } + }, + "FundraisingApi.AppealAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the attachment.", + "x-ms-summary": "Appeal ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "FundraisingApi.AppealAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "FundraisingApi.AppealAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the attachment.", + "x-ms-summary": "Appeal ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "FundraisingApi.AppealCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the custom field.", + "x-ms-summary": "Appeal ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListAppealCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListAppealCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "appeals", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "appeals" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.AppealCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListAppealCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListAppealCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "appeals", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "appeals" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.AppealCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the custom field.", + "x-ms-summary": "Appeal ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "FundraisingApi.AppealRead": { + "type": "object", + "description": "Appeal", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the appeal.", + "x-ms-summary": "ID" + }, + "category": { + "type": "string", + "description": "The category of the appeal.", + "x-ms-summary": "Category" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the appeal was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the appeal was last modified.", + "x-ms-summary": "Date modified" + }, + "description": { + "type": "string", + "description": "The display name of the appeal.", + "x-ms-summary": "Description" + }, + "end_date": { + "type": "string", + "format": "date-time", + "description": "The end date of the appeal.", + "x-ms-summary": "End date" + }, + "goal": { + "type": "object", + "description": "The monetary goal associated with the appeal.", + "x-ms-summary": "Goal", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "inactive": { + "type": "boolean", + "description": "Is the appeal active (meaning, the current date is after any start date and before any end date)?", + "x-ms-summary": "Inactive?" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the appeal.", + "x-ms-summary": "Lookup ID" + }, + "start_date": { + "type": "string", + "format": "date-time", + "description": "The start date of the appeal.", + "x-ms-summary": "Start date" + } + } + }, + "FundraisingApi.CampaignAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the attachment.", + "x-ms-summary": "Campaign ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "FundraisingApi.CampaignAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "FundraisingApi.CampaignAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the attachment.", + "x-ms-summary": "Campaign ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "FundraisingApi.CampaignCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the custom field.", + "x-ms-summary": "Campaign ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListCampaignCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCampaignCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "campaigns", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "campaigns" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.CampaignCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListCampaignCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListCampaignCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "campaigns", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "campaigns" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.CampaignCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the custom field.", + "x-ms-summary": "Campaign ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "FundraisingApi.CampaignRead": { + "type": "object", + "description": "Campaign", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the campaign.", + "x-ms-summary": "ID" + }, + "category": { + "type": "string", + "description": "The category of the campaign.", + "x-ms-summary": "Category" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the campaign was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the campaign was last modified.", + "x-ms-summary": "Date modified" + }, + "description": { + "type": "string", + "description": "The display name of the campaign.", + "x-ms-summary": "Description" + }, + "end_date": { + "type": "string", + "format": "date-time", + "description": "The end date of the campaign.", + "x-ms-summary": "End date" + }, + "goal": { + "type": "object", + "description": "The monetary goal associated with the campaign.", + "x-ms-summary": "Goal", + "properties": { + "value": { + "format": "double", + "description": "The monetary value.", + "type": "number" + } + } + }, + "inactive": { + "type": "boolean", + "description": "Is the campaign inactive (meaning, the current date is after any start date and before any end date)?", + "x-ms-summary": "Inactive?" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the campaign.", + "x-ms-summary": "Lookup ID" + }, + "start_date": { + "type": "string", + "format": "date-time", + "description": "The start date of the campaign.", + "x-ms-summary": "Start date" + } + } + }, + "FundraisingApi.CreatedAppealAttachment": { + "type": "object", + "description": "Created appeal attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created appeal attachment.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedAppealCustomField": { + "type": "object", + "description": "Created appeal custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created appeal custom field.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedCampaignAttachment": { + "type": "object", + "description": "Created campaign attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created campaign attachment.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedCampaignCustomField": { + "type": "object", + "description": "Created campaign custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created campaign custom field.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedFundraiserAssignment": { + "type": "object", + "description": "Created fundraiser assignment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created fundraiser assignment.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedFundAttachment": { + "type": "object", + "description": "Created fund attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created fund attachment.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CreatedFundCustomField": { + "type": "object", + "description": "Created fund custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created fund custom field.", + "x-ms-summary": "ID" + } + } + }, + "FundraisingApi.CustomFieldCategoryRead": { + "type": "object", + "description": "The system includes many different types of custom fields. Custom field categories store the metadata to appropriately match how you use a given custom field with an available type.", + "properties": { + "name": { + "type": "string", + "description": "The name of the custom field category.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of data that custom fields with this category represent.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + } + } + }, + "FundraisingApi.FundraiserAssignmentAdd": { + "type": "object", + "description": "Fundraiser constituents interact with other constituents on behalf of your organization to cultivate relationships and request donations. Fundraiser assignments allow you to assign specific constituents to fundraisers for solicitation purposes.", + "required": [ + "constituent_id", + "fundraiser_id" + ], + "properties": { + "fundraiser_id": { + "type": "string", + "description": "The system record ID of the fundraiser.", + "x-ms-summary": "Fundraiser ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the assigned constituent.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The type of fundraiser.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "fundraising", + "route": "fundraisers/types" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "fundraising" + }, + "route": { + "value": "fundraisers/types" + } + } + } + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the assignment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Assignment starts" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The end date of the assignment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Assignment ends" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The goal amount for the fundraiser to solicit from the assigned constituent.", + "x-ms-summary": "Amount" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign to which which resulting gifts will be applied.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund to which which resulting gifts will be applied.", + "x-ms-summary": "Fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal to which which resulting gifts will be applied.", + "x-ms-summary": "Appeal ID" + } + } + }, + "FundraisingApi.FundraiserAssignmentRead": { + "type": "object", + "description": "Assignment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the fundraiser assignment.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the assigned constituent.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The fundraiser type.", + "x-ms-summary": "Type" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the assignment.", + "x-ms-summary": "Assignment starts" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The end date of the assignment.", + "x-ms-summary": "Assignment ends" + }, + "amount": { + "type": "object", + "description": "The goal amount for the fundraiser to solicit from the assigned constituent.", + "x-ms-summary": "Amount", + "properties": { + "value": { + "format": "double", + "description": "The monetary value.", + "type": "number" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign to which which resulting gifts will be applied.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund to which which resulting gifts will be applied.", + "x-ms-summary": "Fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal to which which resulting gifts will be applied.", + "x-ms-summary": "Appeal ID" + } + } + }, + "FundraisingApi.FundAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the fund associated with the attachment.", + "x-ms-summary": "Fund ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "FundraisingApi.FundAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "FundraisingApi.FundAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the fund associated with the attachment.", + "x-ms-summary": "Fund ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "FundraisingApi.FundCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the fund associated with the custom field.", + "x-ms-summary": "Fund ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListFundCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListFundCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "funds", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "funds" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.FundCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListFundCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListFundCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "fundraising", + "custom_field_type": "funds", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "fundraising" + }, + "custom_field_type": { + "value": "funds" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "FundraisingApi.FundCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the fund associated with the custom field.", + "x-ms-summary": "Fund ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "FundraisingApi.FundRead": { + "type": "object", + "description": "Fund", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the fund.", + "x-ms-summary": "ID" + }, + "category": { + "type": "string", + "description": "The category of the fund.", + "x-ms-summary": "Category" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the fund was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the fund was last modified.", + "x-ms-summary": "Date modified" + }, + "description": { + "type": "string", + "description": "The display name of the fund.", + "x-ms-summary": "Description" + }, + "end_date": { + "type": "string", + "format": "date-time", + "description": "The end date of the fund.", + "x-ms-summary": "End date" + }, + "goal": { + "type": "object", + "description": "The monetary goal associated with the fund.", + "x-ms-summary": "Goal", + "properties": { + "value": { + "format": "double", + "description": "The monetary value.", + "type": "number" + } + } + }, + "inactive": { + "type": "boolean", + "description": "Is the fund inactive (meaning, the current date is after any start date and before any end date)?", + "x-ms-summary": "Inactive?" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the fund.", + "x-ms-summary": "Lookup ID" + }, + "start_date": { + "type": "string", + "format": "date-time", + "description": "The start date of the fund.", + "x-ms-summary": "Start date" + }, + "type": { + "type": "string", + "description": "The type of the fund.", + "x-ms-summary": "Type" + } + } + }, + "FundraisingApi.PackageRead": { + "type": "object", + "description": "Package", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the package.", + "x-ms-summary": "ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal associated with this package.", + "x-ms-summary": "Appeal ID" + }, + "category": { + "type": "string", + "description": "The category of the package.", + "x-ms-summary": "Category" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the package was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the package was last modified.", + "x-ms-summary": "Date modified" + }, + "default_gift_amount": { + "type": "object", + "description": "The default amount for gifts associated with this package.", + "x-ms-summary": "Default gift amount", + "properties": { + "value": { + "format": "double", + "description": "The monetary value.", + "type": "number" + } + } + }, + "description": { + "type": "string", + "description": "The display name of the package.", + "x-ms-summary": "Description" + }, + "end": { + "type": "string", + "format": "date-time", + "description": "The end date of the package.", + "x-ms-summary": "End date" + }, + "goal": { + "type": "object", + "description": "The monetary goal associated with the package.", + "x-ms-summary": "Goal", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "inactive": { + "type": "boolean", + "description": "Is the package inactive (meaning, the current date is after any start date and before any end date)?", + "x-ms-summary": "Inactive?" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the package.", + "x-ms-summary": "Lookup ID" + }, + "notes": { + "type": "string", + "description": "The notes on the package.", + "x-ms-summary": "Notes" + }, + "recipient_count": { + "type": "integer", + "format": "int32", + "description": "The number of recipients of the package.", + "x-ms-summary": "Recipient count" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the package.", + "x-ms-summary": "Start date" + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiProperties.json new file mode 100644 index 0000000000..b769f3a5d6 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/apiProperties.json @@ -0,0 +1,51 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "scriptOperations": [ + "ListAppealCustomFields", + "ListCampaignCustomFields", + "ListFundCustomFields" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/readme.md new file mode 100644 index 0000000000..49dce0f547 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/readme.md @@ -0,0 +1,33 @@ +## Blackbaud Raiser's Edge NXT Fundraising Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage fundraising entities found within The Raiser's Edge NXT, including: +* Campaigns +* Funds +* Appeals +* Packages +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/script.csx b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/script.csx new file mode 100644 index 0000000000..dc96a2a2e3 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Fundraising/script.csx @@ -0,0 +1,57 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + switch (this.Context.OperationId) + { + case "ListAppealCustomFields": + case "ListCampaignCustomFields": + case "ListFundCustomFields": + return await this.HandleListCustomFieldOperation().ConfigureAwait(false); + } + + var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unhandled operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleListCustomFieldOperation() + { + // make the API request to the SKY API backend + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // if the call to the backend is successful, transform the response items + if (response.IsSuccessStatusCode) + { + // get the response string, convert it to a JObject, and then look at the "value" property (which will be the array of custom fields) + var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + var result = JObject.Parse(responseString); + var value = result["value"] as JArray; + + // if the array contains any items, append a new bespoke xxx_value property to each item + if (value?.Count() > 0) + { + foreach (var cf in value) + { + // only append the bespoke xxx_value property if a value property is present + if (cf.SelectToken("value") != null) { + var valueField = $"{cf["type"]}_value"; + valueField = valueField.ToLowerInvariant(); + cf[valueField] = cf["value"]; + } + } + } + + // assemble the new response + var responseJson = new JObject() { + ["count"] = result["count"], + ["value"] = value + }; + + // set the new response content + response.Content = CreateJsonContent(responseJson.ToString()); + } + + return response; + } +} \ No newline at end of file From 8293462a4c13a012a08fb585fdc45d58cf3b02aa Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:58:24 -0500 Subject: [PATCH 200/219] adding RENXT Gifts connector (#1294) * adding RENXT Gifts connector * fix connector name --- .../apiDefinition.swagger.json | 3843 +++++++++++++++++ .../apiProperties.json | 125 + .../readme.md | 33 + .../script.csx | 55 + 4 files changed, 4056 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Gifts/readme.md create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Gifts/script.csx diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiDefinition.swagger.json new file mode 100644 index 0000000000..ffcef8ff7a --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiDefinition.swagger.json @@ -0,0 +1,3843 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Gif", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Gifts connector to manage gifts.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/constituent/v1/constituents/{constituent_id}/givingsummary/first": { + "get": { + "operationId": "GetConstituentFirstGift", + "summary": "Get constituent first gift", + "description": "Returns the first gift for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.GivingSummaryRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the gift information." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/givingsummary/greatest": { + "get": { + "operationId": "GetConstituentGreatestGift", + "summary": "Get constituent greatest gift", + "description": "Returns the greatest gift for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.GivingSummaryRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the gift information." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/givingsummary/latest": { + "get": { + "operationId": "GetConstituentLatestGift", + "summary": "Get constituent latest gift", + "description": "Returns the latest gift for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.GivingSummaryRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the gift information." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/givingsummary/lifetimegiving": { + "get": { + "operationId": "GetConstituentLifetimeGiving", + "summary": "Get constituent lifetime giving", + "description": "Returns the lifetime giving summary for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.LifetimeGivingRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the lifetime giving information." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/gift/v1/giftacknowledgements/{acknowledgement_id}": { + "patch": { + "operationId": "EditGiftAcknowledgement", + "summary": "Update gift acknowledgement details", + "description": "Updates the acknowledgement details for a gift.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "acknowledgement_id", + "in": "path", + "description": "The system record ID of the gift acknowledgement to update. It uses the parent gift's ID as its value.", + "required": true, + "type": "string", + "x-ms-summary": "Acknowledgement ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.AcknowledgementEdit" + }, + "description": "An object that represents the properties of the gift acknowledgement to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Returned when the specified acknowledgement ID in the URL or the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the gift acknowledgement." + }, + "404": { + "description": "Returned when the specified gift acknowledgement is not found." + } + } + } + }, + "/gift/v1/giftreceipts/{receipt_id}": { + "patch": { + "operationId": "EditGiftReceipt", + "summary": "Update gift receipt details", + "description": "Updates the receipt details for a gift.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "receipt_id", + "in": "path", + "description": "The system record ID of the gift receipt to update. It uses the parent gift's ID as its value.", + "required": true, + "type": "string", + "x-ms-summary": "Receipt ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.ReceiptEdit" + }, + "description": "An object that represents the properties of the gift receipt to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "OK" + }, + "400": { + "description": "Returned when the specified receipt ID in the URL or the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the gift receipt." + }, + "404": { + "description": "Returned when the specified gift receipt is not found." + } + } + } + }, + "/gift/v1/gifts": { + "get": { + "operationId": "ListGifts", + "summary": "List gifts", + "description": "Returns a list of gifts.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_id", + "in": "query", + "description": "Defines a list identifier used to filter the set of gifts to those included in the specified list. If this value is set, other specified filters will be ignored.", + "type": "string", + "x-ms-summary": "List", + "x-ms-dynamic-values": { + "operationId": "ListLists", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "list_type": "Gift" + } + }, + "x-ms-dynamic-list": { + "operationId": "ListLists", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "list_type": { + "value": "Gift" + } + } + } + }, + { + "name": "gift_type", + "in": "query", + "description": "Represents a comma-separated list of gift types to filter the results. For example, \"MatchingGiftPledge,RecurringGift\" returns only gifts of type MatchingGiftPledge or RecurringGift.", + "type": "string", + "x-ms-summary": "Type" + }, + { + "name": "constituent_id", + "in": "query", + "description": "Represents a comma-separated list of constituent identifiers to filter the results. For example, \"280,1232\" returns only gifts from constituent 280 or constituent 1232.", + "type": "string", + "x-ms-summary": "Constituent ID" + }, + { + "name": "campaign_id", + "in": "query", + "description": "Represents a comma-separated list of campaign identifiers to filter the results. For example, \"506,918\" returns only gifts to campaign 506 or campaign 918.", + "type": "string", + "x-ms-summary": "Campaign ID" + }, + { + "name": "fund_id", + "in": "query", + "description": "Represents a comma-separated list of fund identifiers to filter the results. For example, \"506,918\" returns only gifts to fund 506 or fund 918.", + "type": "string", + "x-ms-summary": "Fund ID" + }, + { + "name": "appeal_id", + "in": "query", + "description": "Represents a comma-separated list of appeal identifiers to filter the results. For example, \"506,918\" returns only gifts to appeal 506 or appeal 918.", + "type": "string", + "x-ms-summary": "Appeal ID" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "start_gift_date", + "in": "query", + "description": "Represents a filter for gifts with a gift date on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Start gift date", + "x-ms-visibility": "advanced" + }, + { + "name": "end_gift_date", + "in": "query", + "description": "Represents a filter for gifts with a gift date on or before the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "End gift date", + "x-ms-visibility": "advanced" + }, + { + "name": "start_gift_amount", + "in": "query", + "description": "Represents a filter for gifts with an amount greater than or equal to the specified amount.", + "type": "number", + "format": "double", + "x-ms-summary": "Start gift amount", + "x-ms-visibility": "advanced" + }, + { + "name": "end_gift_amount", + "in": "query", + "description": "Represents a filter for gifts with an amount less than or equal to the specified amount.", + "type": "number", + "format": "double", + "x-ms-summary": "End gift amount", + "x-ms-visibility": "advanced" + }, + { + "name": "post_status", + "in": "query", + "description": "Represents a comma-separated list of gift post statuses to filter the results. For example, \"DoNotPost,Posted\" returns only gifts that are marked as DoNotPost or Posted.", + "type": "string", + "x-ms-summary": "Post status", + "x-ms-visibility": "advanced" + }, + { + "name": "receipt_status", + "in": "query", + "description": "Represents a comma-separated list of gift receipt statuses to filter the results. For example, \"DoNotReceipt,Receipted\" returns only gifts that are marked as DoNotReceipt or Receipted.", + "type": "string", + "x-ms-summary": "Receipt status", + "x-ms-visibility": "advanced" + }, + { + "name": "acknowledgement_status", + "in": "query", + "description": "Represents a comma-separated list of gift acknowledgement statuses to filter the results. For example, \"DoNotAcknowledge,Acknowledged\" returns only gifts that are marked as DoNotAcknowledge or Acknowledged.", + "type": "string", + "x-ms-summary": "Acknowledgement status", + "x-ms-visibility": "advanced" + }, + { + "name": "sort", + "in": "query", + "description": "Represents a list of fields to sort the results by. Results are in ascending order by default, and a '-' sign denotes descending order. For example, \"date_added,-date\" sorts gifts by the \"date_added\" field in ascending order and then by the \"gift date\" field in descending order. If only the date_modified field or only the date_added field is provided, then this adds the sort_token parameter to the next_link URL to ensure that gifts are stably sorted.", + "type": "string", + "x-ms-summary": "Sorted by", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to gifts created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to gifts modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftApi.ApiCollectionOfGiftRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the gifts." + } + } + }, + "post": { + "operationId": "CreateGift", + "summary": "Create a gift", + "description": "Creates a new gift.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.GiftAdd" + }, + "description": "An object that represents the gift to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a gift. The response body contains the ID of the new gift.", + "schema": { + "$ref": "#/definitions/GiftApi.CreatedGift" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create a gift." + } + } + } + }, + "/gift/v1/gifts/{gift_id}": { + "get": { + "operationId": "GetGift", + "summary": "Get a gift", + "description": "Returns information about a gift.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "gift_id", + "in": "path", + "description": "The system record ID of the gift to get.", + "required": true, + "type": "string", + "x-ms-summary": "Gift ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftApi.GiftRead" + } + }, + "400": { + "description": "Returned when the specified gift ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the gift." + }, + "404": { + "description": "Returned when the specified gift is not found." + } + } + } + }, + "/gift/v1/gifts/{gift_id}/attachments": { + "get": { + "operationId": "ListGiftAttachments", + "summary": "List gift attachments", + "description": "Lists the attachments for a gift.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "gift_id", + "in": "path", + "description": "The system record ID of the gift.", + "required": true, + "type": "string", + "x-ms-summary": "Gift ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftApi.ApiCollectionOfGiftAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified gift ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified gift is not found." + } + } + } + }, + "/gift/v1/gifts/{gift_id}/customfields": { + "get": { + "operationId": "ListGiftCustomFields", + "summary": "List gift custom fields", + "description": "Lists the custom fields for a gift.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "gift_id", + "in": "path", + "description": "The system record ID of the gift.", + "required": true, + "type": "string", + "x-ms-summary": "Gift ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftApi.ApiCollectionOfGiftCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified gift ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified gift is not found." + } + } + } + }, + "/gift/v1/gifts/attachments": { + "post": { + "operationId": "CreateGiftAttachment", + "summary": "Create a gift attachment", + "description": "Creates a new gift attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.GiftAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/GiftApi.CreatedGiftAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified fund is not found." + } + } + } + }, + "/gift/v1/gifts/attachments/{attachment_id}": { + "patch": { + "operationId": "EditGiftAttachment", + "summary": "Update a gift attachment", + "description": "Updates a gift attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.GiftAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/gift/v1/gifts/customfields": { + "post": { + "operationId": "CreateGiftCustomField", + "summary": "Create a gift custom field", + "description": "Creates a new gift custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.GiftCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/GiftApi.CreatedGiftCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified gift is not found." + } + } + } + }, + "/gift/v1/gifts/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditGiftCustomField", + "summary": "Update a gift custom field", + "description": "Updates a gift custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.GiftCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/gift/v1/gifts/customfields/categories": { + "get": { + "operationId": "ListGiftCustomFieldCategories", + "summary": "List custom field categories", + "description": "Lists the gift custom field categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/gift/v1/virtual/giftbatches/{batch_id}/gifts": { + "post": { + "operationId": "AddGiftToBatch", + "summary": "Add a gift to batch", + "description": "Add a gift to the specified gift batch.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "batch_id", + "in": "path", + "description": "The batch to which the gift will be added.", + "required": true, + "type": "string", + "x-ms-summary": "Batch", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "ListGiftBatches", + "value-collection": "value", + "value-path": "id", + "value-title": "batch_number", + "parameters": { + "approved": false + } + }, + "x-ms-dynamic-list": { + "operationId": "ListGiftBatches", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "batch_number", + "parameters": { + "approved": { + "value": false + } + } + } + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftApi.Virtual.BatchGiftAdd" + }, + "description": "An object that represents the gift to add to the batch.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully adds the gifts to the batch. The response body contains a list of IDs and any exceptions that occured when adding the gifts.", + "schema": { + "$ref": "#/definitions/GiftApi.BatchGiftAddResults" + } + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to add gifts to the batch." + } + } + } + }, + "/gift-batch/v1/giftbatches": { + "get": { + "operationId": "ListGiftBatches", + "summary": "List gift batches", + "description": "List the gift batches.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "batch_number", + "in": "query", + "description": "Represents a filter for results that match the specified number.", + "type": "string", + "x-ms-summary": "Batch number" + }, + { + "name": "approved", + "in": "query", + "description": "Represents a filter for the status of the gift batch.", + "type": "boolean", + "x-ms-summary": "Approved?" + }, + { + "name": "has_exceptions", + "in": "query", + "description": "Represents a filter for whether the gift batch contains exceptions.", + "type": "boolean", + "x-ms-summary": "Has exceptions?" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "search_text", + "in": "query", + "description": "Represents a filter for text included in the batch description or batch number fields.", + "type": "string", + "x-ms-summary": "Search text", + "x-ms-visibility": "advanced" + }, + { + "name": "created_by", + "in": "query", + "description": "Represents a filter for gift batches created by the specified user.", + "type": "string", + "x-ms-summary": "Created by", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/GiftBatchApi.ApiCollectionOfGiftBatch" + } + }, + "403": { + "description": "Returned when the user does not have rights to view the set of gift batches." + } + } + }, + "post": { + "operationId": "CreateGiftBatch", + "summary": "Create a gift batch", + "description": "Creates a new gift batch.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/GiftBatchApi.CreateBatch" + }, + "description": "An object that represents the gift batch to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a gift batch. The response body contains the ID of the new batch.", + "schema": { + "$ref": "#/definitions/GiftBatchApi.CreatedBatch" + } + }, + "400": { + "description": "Returned when the specified request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the gift batch." + } + } + } + }, + "/list/v1/lists": { + "get": { + "operationId": "ListLists", + "summary": "List lists", + "description": "Get a list of lists.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_type", + "in": "query", + "description": "The type of list to return.", + "required": true, + "type": "string", + "x-ms-summary": "List type", + "default": "Constituent", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ListApi.ApiCollectionOfList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues": { + "get": { + "operationId": "GetDynamicValues", + "summary": "Get dynamic values", + "description": "List dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "route", + "in": "query", + "description": "The route within the specified SKY API to call to produce the values for the dynamic list.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/customfields": { + "get": { + "operationId": "GetCustomFieldCodeTableDynamicValues", + "summary": "Get custom field code table dynamic values", + "description": "List custom field code table dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category_name", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/customfields": { + "get": { + "operationId": "GetCustomFieldDynamicProperties", + "summary": "Get custom field dynamic properties", + "description": "List custom field dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the endpoint that will be used to fetch the custom field category definition.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "ConstituentApi.AppealRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the appeal.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The appeal description.", + "x-ms-summary": "description" + } + } + }, + "ConstituentApi.CampaignRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the campaign.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The campaign description.", + "x-ms-summary": "description" + } + } + }, + "ConstituentApi.FundRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the fund.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The fund description.", + "x-ms-summary": "description" + } + } + }, + "ConstituentApi.GivingSummaryRead": { + "type": "object", + "description": "Giving summary", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the gift.", + "x-ms-summary": "ID" + }, + "type": { + "type": "string", + "description": "The gift type.", + "x-ms-summary": "Type" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The gift date.", + "x-ms-summary": "Date" + }, + "amount": { + "type": "object", + "description": "The monetary amount of the gift.", + "x-ms-summary": "Amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "appeals": { + "type": "array", + "description": "The set of appeals associated with the gift.", + "x-ms-summary": "Appeal", + "items": { + "$ref": "#/definitions/ConstituentApi.AppealRead" + } + }, + "campaigns": { + "type": "array", + "description": "The set of campaigns associated with the gift.", + "x-ms-summary": "Campaign", + "items": { + "$ref": "#/definitions/ConstituentApi.CampaignRead" + } + }, + "funds": { + "type": "array", + "description": "The set of funds associated with the gift.", + "x-ms-summary": "Fund", + "items": { + "$ref": "#/definitions/ConstituentApi.FundRead" + } + } + } + }, + "ConstituentApi.LifetimeGivingRead": { + "type": "object", + "description": "Lifetime giving", + "properties": { + "consecutive_years_given": { + "type": "integer", + "format": "int32", + "description": "The number of consecutive years the constituent has given.", + "x-ms-summary": "Consecutive years given" + }, + "total_years_given": { + "type": "integer", + "format": "int32", + "description": "The total number of years the constituent has given.", + "x-ms-summary": "Total years given" + }, + "total_giving": { + "type": "object", + "description": "The total amount given by the constituent.", + "x-ms-summary": "Total giving", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "total_pledge_balance": { + "type": "object", + "description": "The total unpaid pledge balance for the constituent.", + "x-ms-summary": "Total pledge balance", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "total_received_giving": { + "type": "object", + "description": "The total received amount given by the constituent.", + "x-ms-summary": "Total received giving", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "total_committed_matching_gifts": { + "type": "object", + "description": "This computed field calculates the total amount of matching gift commitments attributed to the constituent.", + "x-ms-summary": "Total committed matching gifts", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "total_received_matching_gifts": { + "type": "object", + "description": "The total amount of payments toward matching gift pledges attributed to the constituent.", + "x-ms-summary": "Total received matching gifts", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "total_soft_credits": { + "type": "object", + "description": "The total amount of soft credits applied to the constituent.", + "x-ms-summary": "Total soft credits", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + } + } + }, + "ConstituentApi.PackageRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the package.", + "x-ms-summary": "ID" + }, + "description": { + "type": "string", + "description": "The package description.", + "x-ms-summary": "description" + } + } + }, + "GiftApi.AcknowledgementEdit": { + "type": "object", + "description": "Acknowledgement letters foster relationships with donors and show appreciation for their contributions. It is important to keep track of the acknowledgement status of gifts to ensure that each one gets a well-deserved thank you.", + "properties": { + "status": { + "description": "The status of the acknowledgement. When status is set to DoNotAcknowledge, letter and date should be null. When status is set to NeedsAcknowledgement, date should be null.", + "type": "string", + "x-ms-summary": "Status", + "enum": [ + "Acknowledged", + "NeedsAcknowledgement", + "DoNotAcknowledge" + ] + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date associated with the acknowledgement (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "letter": { + "type": "string", + "description": "The letter associated with the acknowledgement.", + "x-ms-summary": "Letter" + } + } + }, + "GiftApi.AcknowledgementRead": { + "type": "object", + "description": "Acknowledgement", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "The date associated with the acknowledgement.", + "x-ms-summary": "date" + }, + "letter": { + "type": "string", + "description": "The letter associated with the acknowledgement.", + "x-ms-summary": "letter" + }, + "status": { + "type": "string", + "description": "The status of the acknowledgement. Available values are: ACKNOWLEDGED, NEEDSACKNOWLEDGEMENT, and DONOTACKNOWLEDGE.", + "x-ms-summary": "status" + } + } + }, + "GiftApi.ApiCollectionOfCustomFieldCategoryRead": { + "type": "object", + "description": "Custom field categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/GiftApi.CustomFieldCategoryRead" + } + } + } + }, + "GiftApi.ApiCollectionOfGiftAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/GiftApi.GiftAttachmentRead" + } + } + } + }, + "GiftApi.ApiCollectionOfGiftCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/GiftApi.GiftCustomFieldRead" + } + } + } + }, + "GiftApi.ApiCollectionOfGiftRead": { + "type": "object", + "description": "Gifts", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/GiftApi.GiftRead" + } + } + } + }, + "GiftApi.BatchGiftAddResults": { + "type": "object", + "description": "Contains a collection of batch gift error records and the batch gifts that the operation added", + "x-ms-summary": "Results", + "properties": { + "errors": { + "type": "array", + "description": "The batch gift errors associated with the batch gift add operation", + "items": { + "$ref": "#/definitions/GiftApi.GiftBatchGiftError" + } + }, + "gifts": { + "type": "array", + "description": "The collection of batch gifts that were added by the batch gift add operation", + "items": { + "$ref": "#/definitions/GiftApi.BatchGiftRead" + } + } + } + }, + "GiftApi.GiftBatchGiftError": { + "type": "object", + "description": "Represents exceptions preventing items from being added to the batch.", + "properties": { + "affected_field": { + "type": "string", + "description": "The field affected by the error", + "x-ms-summary": "affected field" + }, + "batch_id": { + "type": "string", + "description": "The system record ID of the batch", + "x-ms-summary": "batch ID" + }, + "exception_error_code": { + "type": "integer", + "format": "int32", + "description": "The exception error code", + "x-ms-summary": "exception error code" + }, + "exception_error_message": { + "type": "string", + "description": "The exception error message", + "x-ms-summary": "exception error message" + }, + "exception_error_name": { + "type": "string", + "description": "The exception error name", + "x-ms-summary": "exception error name" + }, + "gift_id": { + "type": "string", + "description": "The system record ID of the gift", + "x-ms-summary": "gift ID" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the gift.", + "x-ms-summary": "lookup ID" + } + } + }, + "GiftApi.BatchGiftRead": { + "type": "object", + "description": "Batch gift", + "properties": { + "batch_id": { + "type": "string", + "description": "The ID of the batch to which the gift was added.", + "x-ms-summary": "batch ID" + }, + "errors": { + "description": "The errors associated with the batch gift.", + "type": "array", + "items": { + "$ref": "#/definitions/GiftApi.GiftBatchGiftError" + }, + "x-ms-summary": "errors" + }, + "id": { + "type": "string", + "description": "The system record ID of the batch gift.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the gift.", + "x-ms-summary": "constituent ID" + }, + "type": { + "type": "string", + "description": "The gift type.", + "x-ms-summary": "type" + }, + "subtype": { + "type": "string", + "description": "The subtype of the gift.", + "x-ms-summary": "subtype" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The gift date.", + "x-ms-summary": "date" + }, + "amount": { + "type": "object", + "description": "The monetary amount of the gift.", + "x-ms-summary": "amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "balance": { + "type": "object", + "description": "The balance remaining on the gift.", + "x-ms-summary": "balance", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "batch_number": { + "type": "string", + "description": "The batch number associated with this gift.", + "x-ms-summary": "batch number" + }, + "gift_status": { + "type": "string", + "description": "The status of the gift.", + "x-ms-summary": "status" + }, + "is_anonymous": { + "type": "boolean", + "description": "Is the gift anonymous?", + "x-ms-summary": "anonymous?" + }, + "constituency": { + "type": "string", + "description": "The constituency of the gift.", + "x-ms-summary": "constituency" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the gift.", + "x-ms-summary": "lookup ID" + }, + "origin": { + "type": "string", + "description": "The origin of the gift.", + "x-ms-summary": "origin" + }, + "post_status": { + "type": "string", + "description": "The general ledger post status of the gift. Available values are Posted, NotPosted, and DoNotPost. When post_status is set to DoNotPost>, post_date should be null. When it is set to NotPosted, post_date is required but remains editable. When it is set to Posted, post_date is required and is no longer editable.", + "x-ms-summary": "post status" + }, + "post_date": { + "type": "string", + "format": "date-time", + "x-ms-summary": "post date", + "description": "The date that the gift was posted to general ledger." + }, + "reference": { + "type": "string", + "description": "Notes to track special details about a gift such as the motivation behind it or a detailed description of a gift-in-kind.", + "x-ms-summary": "reference" + }, + "recurring_gift_status_date": { + "type": "object", + "description": "The date that the gift status was last modified.", + "x-ms-summary": "recurring gift date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "recurring_gift_schedule": { + "type": "object", + "description": "The recurring gift schedule.", + "x-ms-summary": "recurring gift schedule", + "properties": { + "frequency": { + "type": "string", + "description": "Installment frequency of the recurring gift to view. Available values are WEEKLY, EVERY_TWO_WEEKS, EVERY_FOUR_WEEKS, MONTHLY, QUARTERLY, ANNUALLY.", + "x-ms-summary": "frequency" + }, + "start_date": { + "type": "string", + "format": "date-time", + "description": "Date the recurring gift should start.", + "x-ms-summary": "start" + }, + "end_date": { + "type": "string", + "format": "date-time", + "description": "Date the recurring gift should end.", + "x-ms-summary": "end" + } + } + }, + "gift_aid_amount": { + "type": "object", + "description": "This computed field calculates the total qualified amount of tax reclaimed from Gift Aid across all gift_splits for this gift. For the UK only.", + "x-ms-summary": "gift aid amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "gift_aid_qualification_status": { + "type": "string", + "description": "This computed field determines the Gift Aid qualification status based on tax declaration information and the database format. Available values are: Qualified, NotQualified, and PartlyQualified. For the UK only.", + "x-ms-summary": "gift aid qualification status" + }, + "gift_code": { + "type": "string", + "description": "The gift code value associated with the gift.", + "x-ms-summary": "gift code" + }, + "gift_splits": { + "type": "array", + "description": "The set of gift splits associated with the gift.", + "x-ms-summary": "gift splits", + "items": { + "$ref": "#/definitions/GiftApi.GiftSplitRead" + } + }, + "fundraisers": { + "type": "array", + "description": "The set of fundraisers who receive credit for the gift.", + "x-ms-summary": "fundraisers", + "items": { + "$ref": "#/definitions/GiftApi.GiftFundraiserRead" + } + }, + "soft_credits": { + "type": "array", + "description": "The set of soft credits associated with the gift.", + "x-ms-summary": "Soft credits", + "items": { + "$ref": "#/definitions/GiftApi.SoftCreditRead" + } + }, + "receipts": { + "type": "array", + "description": "The set of receipts associated with the gift.", + "x-ms-summary": "Receipts", + "items": { + "$ref": "#/definitions/GiftApi.ReceiptRead" + } + }, + "acknowledgements": { + "type": "array", + "description": "The set of acknowledgements associated with the gift.", + "x-ms-summary": "Acknowledgements", + "items": { + "$ref": "#/definitions/GiftApi.AcknowledgementRead" + } + }, + "payments": { + "type": "array", + "description": "The payments on the gift.", + "x-ms-summary": "Payments", + "items": { + "$ref": "#/definitions/GiftApi.PaymentRead" + } + }, + "linked_gifts": { + "type": "array", + "description": "The identifiers of other gifts that are linked to this gift.", + "x-ms-summary": "Linked gifts", + "items": { + "type": "string" + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the gift was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the gift was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "GiftApi.CreatedGift": { + "type": "object", + "description": "Created gift", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created gift.", + "x-ms-summary": "ID" + } + } + }, + "GiftApi.CreatedGiftAttachment": { + "type": "object", + "description": "Created gift attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created gift attachment.", + "x-ms-summary": "ID" + } + } + }, + "GiftApi.CreatedGiftCustomField": { + "type": "object", + "description": "Created gift custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created gift custom field.", + "x-ms-summary": "ID" + } + } + }, + "GiftApi.CustomFieldCategoryRead": { + "type": "object", + "description": "Custom field category", + "properties": { + "name": { + "type": "string", + "description": "The name of the custom field category.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of data that custom fields with this category represent.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + } + } + }, + "GiftApi.GiftAdd": { + "type": "object", + "description": "Gifts are the primary goal of fundraising efforts. They come in many forms and have a lot of information associated with them to ensure that they are properly allocated and acknowledged.", + "required": [ + "constituent_id", + "amount", + "date", + "type", + "gift_splits", + "payments", + "origin" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the gift.", + "x-ms-summary": "Constituent ID" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the gift.", + "x-ms-summary": "Amount" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The gift date (ex: '2020-09-18').", + "x-ms-summary": "Date" + }, + "type": { + "type": "string", + "description": "The gift type.", + "x-ms-summary": "Type", + "enum": [ + "Donation", + "Other", + "GiftInKind" + ] + }, + "gift_splits": { + "type": "array", + "description": "The set of gift splits associated with the gift.", + "x-ms-summary": "Splits", + "items": { + "$ref": "#/definitions/GiftApi.GiftSplitAdd" + } + }, + "payments": { + "type": "object", + "description": "The payment details.", + "required": [ + "payment_method" + ], + "properties": { + "payment_method": { + "type": "string", + "description": "The payment method.", + "default": "Cash", + "x-ms-summary": "Payment method", + "x-ms-visibility": "advanced", + "enum": [ + "Cash", + "CreditCard", + "PersonalCheck", + "DirectDebit", + "Other", + "PayPal", + "Venmo" + ] + }, + "check_number": { + "type": "string", + "description": "The check number (only applicable when payment method is \"PersonalCheck\").", + "x-ms-summary": "Check number", + "x-ms-visibility": "advanced" + }, + "check_date": { + "type": "object", + "description": "The check date (only applicable when payment method is \"PersonalCheck\").", + "x-ms-summary": "Check date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "reference": { + "type": "string", + "description": "The payment reference (only applicable when payment method is \"Other\").", + "x-ms-summary": "Reference", + "x-ms-visibility": "advanced" + }, + "reference_date": { + "type": "object", + "description": "The payment reference date (only applicable when payment method is \"Other\").", + "x-ms-summary": "Reference date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "is_anonymous": { + "type": "boolean", + "description": "Is the gift anonymous? If no value is provided, the default anonymity of the donor will be used.", + "x-ms-summary": "Is anonymous?", + "x-ms-visibility": "advanced" + }, + "subtype": { + "type": "string", + "description": "The subtype of the gift.", + "x-ms-summary": "Subtype", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "gift", + "route": "giftsubtypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "gift" + }, + "route": { + "value": "giftsubtypes" + } + } + } + }, + "reference": { + "type": "string", + "description": "Notes to track special details about a gift such as the motivation behind it or a detailed description of a gift-in-kind.", + "minLength": 0, + "maxLength": 255, + "x-ms-summary": "Comment", + "x-ms-visibility": "advanced" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the gift.", + "minLength": 0, + "maxLength": 50, + "x-ms-summary": "Lookup ID", + "x-ms-visibility": "advanced" + }, + "default_fundraiser_credits": { + "type": "boolean", + "description": "Use the default fundraiser credits?", + "x-ms-summary": "Use fundraiser credits?", + "x-ms-visibility": "advanced" + }, + "default_soft_credits": { + "type": "boolean", + "description": "Use the default soft credits?", + "x-ms-summary": "Use soft credits?", + "x-ms-visibility": "advanced" + }, + "constituency": { + "type": "string", + "description": "The constituency of the gift.", + "x-ms-summary": "Constituency", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "constituentcodetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "constituentcodetypes" + } + } + } + }, + "batch_prefix": { + "type": "string", + "description": "The prefix to use for batch gifts. This must include at least one letter, and is required when 'Batch number' has a value.", + "x-ms-summary": "Batch prefix", + "x-ms-visibility": "advanced" + }, + "batch_number": { + "type": "string", + "description": "The batch number. Character limit: 50 (including the batch prefix).", + "minLength": 0, + "maxLength": 50, + "x-ms-summary": "Batch number", + "x-ms-visibility": "advanced" + }, + "post_status": { + "type": "string", + "description": "The post status of the gift.", + "x-ms-summary": "Post status", + "x-ms-visibility": "advanced", + "enum": [ + "Posted", + "NotPosted", + "DoNotPost" + ] + }, + "post_date": { + "type": "string", + "format": "date", + "description": "The date the gift was posted (ex: '2020-09-18').", + "x-ms-summary": "Post date", + "x-ms-visibility": "advanced" + }, + "origin": { + "type": "string", + "description": "The origin of the gift. When provided, it must parse to a valid JSON object with one string field called \"name\". Additional fields may be added as desired.", + "x-ms-summary": "Origin", + "x-ms-visibility": "internal", + "default": "{ \"name\": \"Power Platform\" }" + }, + "receipts": { + "type": "object", + "description": "The receipt details.", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "The receipt status of the gift.", + "default": "NeedsReceipt", + "x-ms-summary": "Receipt status", + "x-ms-visibility": "advanced", + "enum": [ + "Receipted", + "NeedsReceipt", + "DoNotReceipt" + ] + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the receipt for the gift.", + "x-ms-summary": "Receipt amount", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date that the gift was receipted (ex: '2020-09-18').", + "x-ms-summary": "Receipt date", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "GiftApi.GiftAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the gift associated with the attachment.", + "x-ms-summary": "Gift ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "GiftApi.GiftAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "GiftApi.GiftAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the gift associated with the attachment.", + "x-ms-summary": "Gift ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "GiftApi.GiftCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the gift associated with the custom field.", + "x-ms-summary": "Gift ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListGiftCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListGiftCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "gift", + "custom_field_type": "gifts", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "gift" + }, + "custom_field_type": { + "value": "gifts" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "GiftApi.GiftCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListGiftCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListGiftCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "gift", + "custom_field_type": "gifts", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "gift" + }, + "custom_field_type": { + "value": "gifts" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "GiftApi.GiftCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the gift associated with the custom field.", + "x-ms-summary": "Gift ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "GiftApi.GiftFundraiserRead": { + "type": "object", + "description": "Gift fundraiser", + "properties": { + "amount": { + "type": "object", + "description": "The amount credited to the fundraiser for the gift.", + "x-ms-summary": "amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "constituent_id": { + "type": "string", + "description": "The constituent system record ID for the fundraiser associated with the gift.", + "x-ms-summary": "fundraiser ID" + } + } + }, + "GiftApi.GiftRead": { + "type": "object", + "description": "Gift", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the gift.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the gift.", + "x-ms-summary": "Constituent ID" + }, + "type": { + "type": "string", + "description": "The gift type.", + "x-ms-summary": "Type" + }, + "subtype": { + "type": "string", + "description": "The subtype of the gift.", + "x-ms-summary": "Subtype" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The gift date.", + "x-ms-summary": "Date" + }, + "amount": { + "type": "object", + "description": "The monetary amount of the gift.", + "x-ms-summary": "Amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "balance": { + "type": "object", + "description": "The balance remaining on the gift.", + "x-ms-summary": "Balance", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "batch_number": { + "type": "string", + "description": "The batch number associated with this gift.", + "x-ms-summary": "Batch number" + }, + "gift_status": { + "type": "string", + "description": "The status of the gift.", + "x-ms-summary": "Status" + }, + "is_anonymous": { + "type": "boolean", + "description": "Is the gift anonymous?", + "x-ms-summary": "Anonymous?" + }, + "constituency": { + "type": "string", + "description": "The constituency of the gift.", + "x-ms-summary": "Constituency" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the gift.", + "x-ms-summary": "Lookup ID" + }, + "origin": { + "type": "string", + "description": "The origin of the gift.", + "x-ms-summary": "Origin" + }, + "post_status": { + "type": "string", + "description": "The general ledger post status of the gift. Available values are Posted, NotPosted, and DoNotPost. When post_status is set to DoNotPost>, post_date should be null. When it is set to NotPosted, post_date is required but remains editable. When it is set to Posted, post_date is required and is no longer editable.", + "x-ms-summary": "Post status" + }, + "post_date": { + "type": "string", + "format": "date-time", + "x-ms-summary": "Post date", + "description": "The date that the gift was posted to general ledger." + }, + "reference": { + "type": "string", + "description": "Notes to track special details about a gift such as the motivation behind it or a detailed description of a gift-in-kind.", + "x-ms-summary": "Reference" + }, + "recurring_gift_status_date": { + "type": "object", + "description": "The date that the gift status was last modified.", + "x-ms-summary": "Recurring gift date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "recurring_gift_schedule": { + "type": "object", + "description": "The recurring gift schedule.", + "x-ms-summary": "Recurring gift schedule", + "properties": { + "frequency": { + "type": "string", + "description": "Installment frequency of the recurring gift to view. Available values are WEEKLY, EVERY_TWO_WEEKS, EVERY_FOUR_WEEKS, MONTHLY, QUARTERLY, ANNUALLY.", + "x-ms-summary": "frequency" + }, + "start_date": { + "type": "string", + "format": "date-time", + "description": "Date the recurring gift should start.", + "x-ms-summary": "start" + }, + "end_date": { + "type": "string", + "format": "date-time", + "description": "Date the recurring gift should end.", + "x-ms-summary": "end" + } + } + }, + "gift_aid_amount": { + "type": "object", + "description": "This computed field calculates the total qualified amount of tax reclaimed from Gift Aid across all gift_splits for this gift. For the UK only.", + "x-ms-summary": "Gift aid amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "gift_aid_qualification_status": { + "type": "string", + "description": "This computed field determines the Gift Aid qualification status based on tax declaration information and the database format. Available values are: Qualified, NotQualified, and PartlyQualified. For the UK only.", + "x-ms-summary": "Gift aid qualification status" + }, + "gift_code": { + "type": "string", + "description": "The gift code value associated with the gift.", + "x-ms-summary": "Gift code" + }, + "gift_splits": { + "type": "array", + "description": "The set of gift splits associated with the gift.", + "x-ms-summary": "Gift splits", + "items": { + "$ref": "#/definitions/GiftApi.GiftSplitRead" + } + }, + "fundraisers": { + "type": "array", + "description": "The set of fundraisers who receive credit for the gift.", + "x-ms-summary": "Fundraisers", + "items": { + "$ref": "#/definitions/GiftApi.GiftFundraiserRead" + } + }, + "soft_credits": { + "type": "array", + "description": "The set of soft credits associated with the gift.", + "x-ms-summary": "Soft credits", + "items": { + "$ref": "#/definitions/GiftApi.SoftCreditRead" + } + }, + "receipts": { + "type": "array", + "description": "The set of receipts associated with the gift.", + "x-ms-summary": "Receipts", + "items": { + "$ref": "#/definitions/GiftApi.ReceiptRead" + } + }, + "acknowledgements": { + "type": "array", + "description": "The set of acknowledgements associated with the gift.", + "x-ms-summary": "Acknowledgements", + "items": { + "$ref": "#/definitions/GiftApi.AcknowledgementRead" + } + }, + "payments": { + "type": "array", + "description": "The payments on the gift.", + "x-ms-summary": "Payments", + "items": { + "$ref": "#/definitions/GiftApi.PaymentRead" + } + }, + "linked_gifts": { + "type": "array", + "description": "The identifiers of other gifts that are linked to this gift.", + "x-ms-summary": "Linked gifts", + "items": { + "type": "string" + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the gift was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the gift was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "GiftApi.GiftSplitAdd": { + "type": "object", + "description": "Split", + "required": [ + "fund_id", + "amount" + ], + "properties": { + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the gift split.", + "x-ms-summary": "campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the gift split.", + "x-ms-summary": "fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the gift split.", + "x-ms-summary": "appeal ID" + }, + "package_id": { + "type": "string", + "description": "The system record ID of the package associated with the gift split.", + "x-ms-summary": "package ID" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the gift split.", + "x-ms-summary": "amount" + } + } + } + } + }, + "GiftApi.GiftSplitRead": { + "type": "object", + "description": "Gift split", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the gift split.", + "x-ms-summary": "ID" + }, + "amount": { + "type": "object", + "description": "The amount of the gift split.", + "x-ms-summary": "amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the gift split.", + "x-ms-summary": "appeal ID" + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the gift split.", + "x-ms-summary": "campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the gift split.", + "x-ms-summary": "fund ID" + }, + "gift_aid_amount": { + "type": "object", + "description": "The amount of tax reclaimed from gift aid for this gift split. For the UK only.", + "x-ms-summary": "gift aid amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "gift_aid_qualification_status": { + "type": "string", + "description": "The gift aid qualification status of the gift split. Available values are: Qualified, and NotQualified. For the UK only.", + "x-ms-summary": "gift aid qualification status" + }, + "package_id": { + "type": "string", + "description": "The system record ID of the package associated with the gift split.", + "x-ms-summary": "package ID" + } + } + }, + "GiftApi.ReceiptEdit": { + "type": "object", + "description": "An object that represents the gift receipt to edit. To help donors track their giving for tax purposes, your organization should provide gift receipts.", + "properties": { + "status": { + "type": "string", + "description": "The receipt status of the gift. When status is set to NeedsReceipt or DoNotReceipt, receipt date should be null.", + "x-ms-summary": "Status", + "enum": [ + "Receipted", + "NeedsReceipt", + "DoNotReceipt" + ] + }, + "amount": { + "type": "object", + "description": "The amount of the receipt.", + "x-ms-summary": "Amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date on the receipt (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number of the receipt.", + "x-ms-summary": "Number" + } + } + }, + "GiftApi.ReceiptRead": { + "type": "object", + "description": "Receipt", + "properties": { + "amount": { + "type": "object", + "description": "The amount of the receipt.", + "x-ms-summary": "amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date on the receipt.", + "x-ms-summary": "date" + }, + "number": { + "type": "integer", + "format": "int32", + "description": "The number of the receipt.", + "x-ms-summary": "number" + }, + "status": { + "type": "string", + "description": "The status of the receipt. Available values are: RECEIPTED, NEEDSRECEIPT, and DONOTRECEIPT.", + "x-ms-summary": "status" + } + } + }, + "GiftApi.PaymentRead": { + "type": "object", + "description": "Payment", + "properties": { + "account_token": { + "type": "string", + "description": "The tokenized account information (ex: credit card) from the external payment provider. Only applies to payment methods of \"CreditCard\" and \"DirectDebit\".", + "x-ms-summary": "account token" + }, + "bbps_configuration_id": { + "type": "string", + "description": "The BBPS configuration ID. Only applies to payment methods of \"CreditCard\" and \"DirectDebit\".", + "x-ms-summary": "BBPS configuration ID" + }, + "bbps_transaction_id": { + "type": "string", + "description": "The BBPS transaction ID. Only applies to payment methods of \"CreditCard\" and \"DirectDebit\".", + "x-ms-summary": "BBPS transaction ID" + }, + "check_date": { + "type": "object", + "description": "The check date. Only applies to payment method of \"PersonalCheck\".", + "x-ms-summary": "check date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + }, + "check_number": { + "type": "string", + "description": "The check number. Only applies to payment method of \"PersonalCheck\".", + "x-ms-summary": "check number" + }, + "checkout_transaction_id": { + "type": "string", + "description": "The checkout transaction ID. Only applies to payment methods of \"CreditCard\" and \"DirectDebit\".", + "x-ms-summary": "checkout transaction ID" + }, + "payment_method": { + "type": "string", + "description": "The payment method. Available values are listed below.", + "x-ms-summary": "payment method" + }, + "reference": { + "type": "string", + "description": "The reference. Only applies to payment method of \"Other\".", + "x-ms-summary": "reference" + }, + "reference_date": { + "type": "object", + "description": "The reference date. Only applies to payment method of \"Other\".", + "x-ms-summary": "reference date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year" + } + } + } + } + }, + "GiftApi.SoftCreditRead": { + "type": "object", + "description": "Soft credit", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the soft credit.", + "x-ms-summary": "ID" + }, + "amount": { + "type": "object", + "description": "The amount of the soft credit.", + "x-ms-summary": "amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the soft credit.", + "x-ms-summary": "constituent ID" + }, + "gift_id": { + "type": "string", + "description": "The system record ID of the gift associated with the soft credit.", + "x-ms-summary": "gift ID" + } + } + }, + "GiftApi.Virtual.BatchGiftAdd": { + "type": "object", + "description": "Gifts are the primary goal of fundraising efforts. They come in many forms and have a lot of information associated with them to ensure that they are properly allocated and acknowledged.", + "required": [ + "gifts" + ], + "properties": { + "gifts": { + "type": "object", + "description": "Gifts are the primary goal of fundraising efforts. They come in many forms and have a lot of information associated with them to ensure that they are properly allocated and acknowledged.", + "required": [ + "constituent_id", + "amount", + "date", + "type", + "gift_splits", + "payments", + "origin" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the gift.", + "x-ms-summary": "Constituent ID" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the gift.", + "x-ms-summary": "Amount" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The gift date (ex: '2020-09-18').", + "x-ms-summary": "Date" + }, + "type": { + "type": "string", + "description": "The gift type.", + "x-ms-summary": "Type", + "enum": [ + "Donation", + "Other", + "GiftInKind" + ] + }, + "gift_splits": { + "type": "array", + "description": "The set of gift splits associated with the gift.", + "x-ms-summary": "Splits", + "items": { + "$ref": "#/definitions/GiftApi.Virtual.BatchGiftSplitAdd" + } + }, + "payments": { + "type": "object", + "description": "The payment details.", + "required": [ + "payment_method" + ], + "properties": { + "payment_method": { + "type": "string", + "description": "The payment method.", + "default": "Cash", + "x-ms-summary": "Payment method", + "x-ms-visibility": "advanced", + "enum": [ + "Cash", + "CreditCard", + "PersonalCheck", + "DirectDebit", + "Other", + "PayPal", + "Venmo" + ] + }, + "check_number": { + "type": "string", + "description": "The check number (only applicable when payment method is \"PersonalCheck\").", + "x-ms-summary": "Check number", + "x-ms-visibility": "advanced" + }, + "check_date": { + "type": "object", + "description": "The check date (only applicable when payment method is \"PersonalCheck\").", + "x-ms-summary": "Check date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "reference": { + "type": "string", + "description": "The payment reference (only applicable when payment method is \"Other\").", + "x-ms-summary": "Reference", + "x-ms-visibility": "advanced" + }, + "reference_date": { + "type": "object", + "description": "The payment reference date (only applicable when payment method is \"Other\").", + "x-ms-summary": "Reference date", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "is_anonymous": { + "type": "boolean", + "description": "Is the gift anonymous? If no value is provided, the default anonymity of the donor will be used.", + "x-ms-summary": "Is anonymous?", + "x-ms-visibility": "advanced" + }, + "subtype": { + "type": "string", + "description": "The subtype of the gift.", + "x-ms-summary": "Subtype", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "gift", + "route": "giftsubtypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "gift" + }, + "route": { + "value": "giftsubtypes" + } + } + } + }, + "reference": { + "type": "string", + "description": "Notes to track special details about a gift such as the motivation behind it or a detailed description of a gift-in-kind.", + "minLength": 0, + "maxLength": 255, + "x-ms-summary": "Comment", + "x-ms-visibility": "advanced" + }, + "lookup_id": { + "type": "string", + "description": "The user-defined identifier for the gift.", + "minLength": 0, + "maxLength": 50, + "x-ms-summary": "Lookup ID", + "x-ms-visibility": "advanced" + }, + "default_fundraiser_credits": { + "type": "boolean", + "description": "Use the default fundraiser credits?", + "x-ms-summary": "Use fundraiser credits?", + "x-ms-visibility": "advanced" + }, + "default_soft_credits": { + "type": "boolean", + "description": "Use the default soft credits?", + "x-ms-summary": "Use soft credits?", + "x-ms-visibility": "advanced" + }, + "constituency": { + "type": "string", + "description": "The constituency of the gift.", + "x-ms-summary": "Constituency", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "constituentcodetypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "constituentcodetypes" + } + } + } + }, + "post_status": { + "type": "string", + "description": "The post status of the gift.", + "x-ms-summary": "Post status", + "x-ms-visibility": "advanced", + "enum": [ + "Posted", + "NotPosted", + "DoNotPost" + ] + }, + "post_date": { + "type": "string", + "format": "date", + "description": "The date the gift was posted (ex: '2020-09-18').", + "x-ms-summary": "Post date", + "x-ms-visibility": "advanced" + }, + "origin": { + "type": "string", + "description": "The origin of the gift. When provided, it must parse to a valid JSON object with one string field called \"name\". Additional fields may be added as desired.", + "x-ms-summary": "Origin", + "x-ms-visibility": "internal", + "default": "{ \"name\": \"Power Platform\" }" + }, + "receipts": { + "type": "object", + "description": "The receipt details.", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "The receipt status of the gift.", + "default": "NeedsReceipt", + "x-ms-summary": "Receipt status", + "x-ms-visibility": "advanced", + "enum": [ + "Receipted", + "NeedsReceipt", + "DoNotReceipt" + ] + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the receipt for the gift.", + "x-ms-summary": "Receipt amount", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date that the gift was receipted (ex: '2020-09-18').", + "x-ms-summary": "Receipt date", + "x-ms-visibility": "advanced" + } + } + } + } + } + } + }, + "GiftApi.Virtual.BatchGiftSplitAdd": { + "type": "object", + "description": "Split", + "required": [ + "fund_id", + "amount" + ], + "properties": { + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the gift split.", + "x-ms-summary": "campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the gift split.", + "x-ms-summary": "fund ID" + }, + "appeal_id": { + "type": "string", + "description": "The system record ID of the appeal associated with the gift split.", + "x-ms-summary": "appeal ID" + }, + "package_id": { + "type": "string", + "description": "The system record ID of the package associated with the gift split.", + "x-ms-summary": "package ID" + }, + "amount": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary amount of the gift split.", + "x-ms-summary": "amount" + } + } + } + } + }, + "GiftBatchApi.ApiCollectionOfGiftBatch": { + "type": "object", + "description": "Gift batches", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of gift batches in the response.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/GiftBatchApi.GiftBatch" + } + } + } + }, + "GiftBatchApi.CreateBatch": { + "type": "object", + "description": "Defines a new gift batch.", + "properties": { + "batch_description": { + "type": "string", + "description": "The description of the batch.", + "x-ms-summary": "Description" + }, + "expected_number": { + "type": "integer", + "format": "int32", + "description": "The number of gifts expected in the batch.", + "x-ms-summary": "Expected number" + }, + "expected_batch_total": { + "type": "number", + "format": "double", + "description": "The total value of gifts in the batch.", + "x-ms-summary": "Expected total" + }, + "batch_number": { + "type": "string", + "description": "The unique identifier specific to the batch.", + "x-ms-summary": "Batch number" + } + } + }, + "GiftBatchApi.CreatedBatch": { + "type": "object", + "description": "Created gift batch", + "properties": { + "batch_id": { + "type": "string", + "description": "The system record ID of the newly created gift batch.", + "x-ms-summary": "ID" + } + } + }, + "GiftBatchApi.GiftBatch": { + "type": "object", + "description": "Represents the gift batch object", + "x-ms-summary": "Gift batch", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the batch.", + "x-ms-summary": "ID" + }, + "batch_description": { + "type": "string", + "description": "The batch description.", + "x-ms-summary": "description" + }, + "batch_number": { + "type": "string", + "description": "The batch number", + "x-ms-summary": "batch number" + }, + "projected_number_of_gifts": { + "type": "integer", + "format": "int32", + "description": "The projected number of gifts in the batch.", + "x-ms-summary": "projected number" + }, + "number_of_gifts": { + "type": "integer", + "format": "int32", + "description": "The actual number of gifts in the batch.", + "x-ms-summary": "actual number" + }, + "projected_amount": { + "type": "number", + "format": "double", + "description": "The projected value of gifts in the batch.", + "x-ms-summary": "projected amount" + }, + "actual_amount": { + "type": "number", + "format": "double", + "description": "The actual value of gifts in the batch.", + "x-ms-summary": "actual amount" + }, + "has_exceptions": { + "type": "boolean", + "description": "Does the batch have exceptions?", + "x-ms-summary": "has exceptions?" + }, + "is_approved": { + "type": "boolean", + "description": "Is the batch approved?", + "x-ms-summary": "approved?" + }, + "created_by": { + "type": "string", + "description": "The name of the user who created the batch.", + "x-ms-summary": "Created by" + }, + "created_on": { + "type": "string", + "format": "date-time", + "description": "The date when the batch was created.", + "x-ms-summary": "Created on" + } + } + }, + "ListApi.ApiCollectionOfList": { + "type": "object", + "description": "Lists", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of lists in the set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/ListApi.ApiList" + } + } + } + }, + "ListApi.ApiList": { + "type": "object", + "description": "List", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the list." + }, + "name": { + "type": "string", + "description": "The name of the list." + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiProperties.json new file mode 100644 index 0000000000..9cfd521296 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/apiProperties.json @@ -0,0 +1,125 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "scriptOperations": [ + "ListGiftCustomFields" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + }, + { + "templateId": "setproperty", + "title": "Set gift payments", + "parameters": { + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "payments", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "[{@body().payments}]", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "CreateGift" + ] + } + }, + { + "templateId": "setproperty", + "title": "Set gift receipts", + "parameters": { + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "receipts", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "[{@body().receipts}]", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "CreateGift" + ] + } + }, + { + "templateId": "setproperty", + "title": "Set batch gift payments", + "parameters": { + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().gifts", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "payments", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "[{@body().gifts.payments}]", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "AddGiftToBatch" + ] + } + }, + { + "templateId": "setproperty", + "title": "Set batch gift receipts", + "parameters": { + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "@body().gifts", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "receipts", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "[{@body().gifts.receipts}]", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "AddGiftToBatch" + ] + } + }, + { + "templateId": "setproperty", + "title": "Set batch gifts", + "parameters": { + "x-ms-apimTemplateParameter.newPropertyParentPathTemplate": "body()", + "x-ms-apimTemplateParameter.newPropertySubPathTemplate": "gifts", + "x-ms-apimTemplateParameter.propertyValuePathTemplate": "[{@body().gifts}]", + "x-ms-apimTemplate-policySection": "Request", + "x-ms-apimTemplate-operationName": [ + "AddGiftToBatch" + ] + } + }, + { + "templateId": "routerequesttoendpoint", + "title": "Add gift to batch endpoint routing", + "parameters": { + "x-ms-apimTemplateParameter.newPath": "/gift/v1/giftbatches/{batch_id}/gifts", + "x-ms-apimTemplateParameter.httpMethod": "@Request.OriginalHTTPMethod", + "x-ms-apimTemplate-operationName": [ + "AddGiftToBatch" + ] + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/readme.md new file mode 100644 index 0000000000..7c3f3913e6 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/readme.md @@ -0,0 +1,33 @@ +## Blackbaud Raiser's Edge NXT Gifts Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage gifts and related entities found within The Raiser's Edge NXT, including: +* Gifts and constituent giving summaries +* Gift batches +* Receipts +* Acknowledgements +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/script.csx b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/script.csx new file mode 100644 index 0000000000..7bf48802ec --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Gifts/script.csx @@ -0,0 +1,55 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + switch (this.Context.OperationId) + { + case "ListGiftCustomFields": + return await this.HandleListCustomFieldOperation().ConfigureAwait(false); + } + + var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unhandled operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleListCustomFieldOperation() + { + // make the API request to the SKY API backend + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // if the call to the backend is successful, transform the response items + if (response.IsSuccessStatusCode) + { + // get the response string, convert it to a JObject, and then look at the "value" property (which will be the array of custom fields) + var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + var result = JObject.Parse(responseString); + var value = result["value"] as JArray; + + // if the array contains any items, append a new bespoke xxx_value property to each item + if (value?.Count() > 0) + { + foreach (var cf in value) + { + // only append the bespoke xxx_value property if a value property is present + if (cf.SelectToken("value") != null) { + var valueField = $"{cf["type"]}_value"; + valueField = valueField.ToLowerInvariant(); + cf[valueField] = cf["value"]; + } + } + } + + // assemble the new response + var responseJson = new JObject() { + ["count"] = result["count"], + ["value"] = value + }; + + // set the new response content + response.Content = CreateJsonContent(responseJson.ToString()); + } + + return response; + } +} \ No newline at end of file From e613267287b3df6d27b6d9e67675a9d626db9cb3 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:58:37 -0500 Subject: [PATCH 201/219] adding RENXT Interactions connector (#1295) * adding RENXT Interactions connector * fix connector name --- .../apiDefinition.swagger.json | 1976 +++++++++++++++++ .../apiProperties.json | 49 + .../readme.md | 32 + .../script.csx | 55 + 4 files changed, 2112 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Interactions/readme.md create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Interactions/script.csx diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiDefinition.swagger.json new file mode 100644 index 0000000000..864066b4f5 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiDefinition.swagger.json @@ -0,0 +1,1976 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Int", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Interactions connector to manage constituent actions.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/constituent/v1/actions": { + "get": { + "operationId": "ListActions", + "summary": "List actions", + "description": "Returns a list of actions.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_id", + "in": "query", + "description": "Defines a list identifier used to filter the set of actions to those included in the specified list. If this value is set, other specified filters will be ignored.", + "type": "string", + "x-ms-summary": "List", + "x-ms-dynamic-values": { + "operationId": "ListLists", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "list_type": "Action" + } + }, + "x-ms-dynamic-list": { + "operationId": "ListLists", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "list_type": { + "value": "Action" + } + } + } + }, + { + "name": "computed_status", + "in": "query", + "description": "Represents a filter for results based on the computed action status. Available values are Open, Completed, or PastDue.", + "type": "string", + "x-ms-summary": "Computed status" + }, + { + "name": "status_code", + "in": "query", + "description": "Represents an action status code to filter the results (only applicable when the system is configured to use action status codes). For example, \"Pending\" returns actions with a status of \"Pending\".", + "type": "string", + "x-ms-summary": "Status" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to actions created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to actions modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfActionRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the actions." + } + } + }, + "post": { + "operationId": "CreateAction", + "summary": "Create a constituent action", + "description": "Creates a new constituent action.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionAdd" + }, + "description": "An object that represents the action to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an action. The response body contains the ID of the new action.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedAction" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the action." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/actions/{action_id}": { + "get": { + "operationId": "GetAction", + "summary": "Get a constituent action", + "description": "Returns information about a constituent action.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "action_id", + "in": "path", + "description": "The system record ID of the action to get.", + "required": true, + "type": "string", + "x-ms-summary": "Action ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the action." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + }, + "patch": { + "operationId": "EditAction", + "summary": "Update a constituent action", + "description": "Updates a constituent action.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "action_id", + "in": "path", + "description": "The system record ID of the action to update.", + "required": true, + "type": "string", + "x-ms-summary": "Action ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionEdit" + }, + "description": "An object that represents the properties of the action to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the action." + }, + "400": { + "description": "Returned when the specified action ID in the request URL body or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the action." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + } + }, + "/constituent/v1/actions/{action_id}/attachments": { + "get": { + "operationId": "ListActionAttachments", + "summary": "List action attachments", + "description": "Lists the attachments for an action.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "action_id", + "in": "path", + "description": "The system record ID of the action.", + "required": true, + "type": "string", + "x-ms-summary": "Action ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfActionAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified action ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + } + }, + "/constituent/v1/actions/{action_id}/customfields": { + "get": { + "operationId": "ListActionCustomFields", + "summary": "List action custom fields", + "description": "Lists the custom fields for an action.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "action_id", + "in": "path", + "description": "The system record ID of the action.", + "required": true, + "type": "string", + "x-ms-summary": "Action ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfActionCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified action ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + } + }, + "/constituent/v1/actions/attachments": { + "post": { + "operationId": "CreateActionAttachment", + "summary": "Create an action attachment", + "description": "Creates a new action attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedActionAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + } + }, + "/constituent/v1/actions/attachments/{attachment_id}": { + "patch": { + "operationId": "EditActionAttachment", + "summary": "Update an action attachment", + "description": "Updates an action attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/constituent/v1/actions/customfields": { + "post": { + "operationId": "CreateActionCustomField", + "summary": "Create an action custom field", + "description": "Creates a new action custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedActionCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified action is not found." + } + } + } + }, + "/constituent/v1/actions/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditActionCustomField", + "summary": "Update an action custom field", + "description": "Updates an action custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.ActionCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/constituent/v1/actions/customfields/categories/details": { + "get": { + "operationId": "ListActionCustomFieldCategoryDetails", + "summary": "List custom field categories", + "description": "Lists the action custom field category details.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/actions": { + "get": { + "operationId": "ListConstituentActions", + "summary": "List constituent actions", + "description": "Lists the actions for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfActionRead" + } + }, + "400": { + "description": "Returned when the specified ID is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the actions." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/list/v1/lists": { + "get": { + "operationId": "ListLists", + "summary": "List lists", + "description": "Get a list of lists.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_type", + "in": "query", + "description": "The type of list to return.", + "required": true, + "type": "string", + "x-ms-summary": "List type", + "default": "Constituent", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ListApi.ApiCollectionOfList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues": { + "get": { + "operationId": "GetDynamicValues", + "summary": "Get dynamic values", + "description": "List dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "route", + "in": "query", + "description": "The route within the specified SKY API to call to produce the values for the dynamic list.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/customfields": { + "get": { + "operationId": "GetCustomFieldCodeTableDynamicValues", + "summary": "Get custom field code table dynamic values", + "description": "List custom field code table dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category_name", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/customfields": { + "get": { + "operationId": "GetCustomFieldDynamicProperties", + "summary": "Get custom field dynamic properties", + "description": "List custom field dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the endpoint that will be used to fetch the custom field category definition.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "ConstituentApi.ActionAdd": { + "type": "object", + "description": "Actions track the interactions and tasks that are required to secure gifts and cultivate relationships with constituents.", + "required": [ + "constituent_id", + "category", + "date" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the action.", + "x-ms-summary": "Constituent ID" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The action date (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "category": { + "type": "string", + "description": "The channel or intent of the constituent interaction.", + "x-ms-summary": "Category", + "enum": [ + "Phone Call", + "Meeting", + "Mailing", + "Email", + "Task/Other" + ] + }, + "type": { + "type": "string", + "description": "Additional description of the action to complement the category.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actiontypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actiontypes" + } + } + } + }, + "summary": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "The short description of the action that appears at the top of the record. Character limit: 255.", + "x-ms-summary": "Summary" + }, + "description": { + "type": "string", + "description": "The detailed explanation that elaborates on the action summary.", + "x-ms-summary": "Note" + }, + "completed": { + "type": "boolean", + "description": "Is the action completed? If the system is configured to use custom action statuses, this value is based on the action status value.", + "x-ms-summary": "Completed?" + }, + "completed_date": { + "type": "string", + "format": "date-time", + "description": "The date when the action was completed (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Completed on" + }, + "status": { + "type": "string", + "description": "The action status.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actionstatustypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actionstatustypes" + } + } + } + }, + "direction": { + "type": "string", + "description": "The direction of the action.", + "x-ms-summary": "Direction", + "x-ms-visibility": "advanced", + "enum": [ + "Inbound", + "Outbound" + ] + }, + "location": { + "type": "string", + "description": "The location of the action.", + "x-ms-summary": "Location", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actionlocations" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actionlocations" + } + } + } + }, + "opportunity_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the action.", + "x-ms-summary": "Opportunity ID", + "x-ms-visibility": "advanced" + }, + "outcome": { + "type": "string", + "description": "The outcome of the action.", + "x-ms-summary": "Outcome", + "x-ms-visibility": "advanced", + "enum": [ + "Successful", + "Unsuccessful" + ] + }, + "priority": { + "type": "string", + "description": "The priority of the action.", + "x-ms-summary": "Priority", + "x-ms-visibility": "advanced", + "enum": [ + "Normal", + "High", + "Low" + ] + }, + "start_time": { + "type": "string", + "description": "The start time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "Start time", + "x-ms-visibility": "advanced" + }, + "end_time": { + "type": "string", + "description": "The end time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "End time", + "x-ms-visibility": "advanced" + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers associated with the action.", + "x-ms-summary": "Fundraiser(s)", + "x-ms-visibility": "advanced", + "items": { + "type": "string" + } + } + } + }, + "ConstituentApi.ActionAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the action associated with the attachment.", + "x-ms-summary": "Action ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "ConstituentApi.ActionAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "ConstituentApi.ActionAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the action associated with the attachment.", + "x-ms-summary": "Action ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "ConstituentApi.ActionCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the action associated with the custom field.", + "x-ms-summary": "Action ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListActionCustomFieldCategoryDetails", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListActionCustomFieldCategoryDetails", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "constituent", + "custom_field_type": "actions", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "constituent" + }, + "custom_field_type": { + "value": "actions" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "ConstituentApi.ActionCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListActionCustomFieldCategoryDetails", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListActionCustomFieldCategoryDetails", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "constituent", + "custom_field_type": "actions", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "constituent" + }, + "custom_field_type": { + "value": "actions" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "ConstituentApi.ActionCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the action associated with the custom field.", + "x-ms-summary": "Action ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.ActionEdit": { + "type": "object", + "description": "Actions track the interactions and tasks that are required to secure gifts and cultivate relationships with constituents.", + "properties": { + "date": { + "type": "string", + "format": "date-time", + "description": "The action date (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "category": { + "type": "string", + "description": "The channel or intent of the constituent interaction.", + "x-ms-summary": "Category", + "enum": [ + "Phone Call", + "Meeting", + "Mailing", + "Email", + "Task/Other" + ] + }, + "type": { + "type": "string", + "description": "Additional description of the action to complement the category.", + "x-ms-summary": "Type", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actiontypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actiontypes" + } + } + } + }, + "summary": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "The short description of the action that appears at the top of the record. Character limit: 255.", + "x-ms-summary": "Summary" + }, + "description": { + "type": "string", + "description": "The detailed explanation that elaborates on the action summary.", + "x-ms-summary": "Note" + }, + "completed": { + "type": "boolean", + "description": "Is the action completed? If the system is configured to use custom action statuses, this value is based on the action status value.", + "x-ms-summary": "Completed?" + }, + "completed_date": { + "type": "string", + "format": "date-time", + "description": "The date when the action was completed (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Completed on" + }, + "status": { + "type": "string", + "description": "The action status.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actionstatustypes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actionstatustypes" + } + } + } + }, + "direction": { + "type": "string", + "description": "The direction of the action.", + "x-ms-summary": "Direction", + "x-ms-visibility": "advanced", + "enum": [ + "Inbound", + "Outbound" + ] + }, + "location": { + "type": "string", + "description": "The location of the action.", + "x-ms-summary": "Location", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "constituent", + "route": "actionlocations" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "constituent" + }, + "route": { + "value": "actionlocations" + } + } + } + }, + "opportunity_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the action.", + "x-ms-summary": "Opportunity ID", + "x-ms-visibility": "advanced" + }, + "outcome": { + "type": "string", + "description": "The outcome of the action.", + "x-ms-summary": "Outcome", + "x-ms-visibility": "advanced", + "enum": [ + "Successful", + "Unsuccessful" + ] + }, + "priority": { + "type": "string", + "description": "The priority of the action.", + "x-ms-summary": "Priority", + "x-ms-visibility": "advanced", + "enum": [ + "Normal", + "High", + "Low" + ] + }, + "start_time": { + "type": "string", + "description": "The start time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "Start time", + "x-ms-visibility": "advanced" + }, + "end_time": { + "type": "string", + "description": "The end time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "End time", + "x-ms-visibility": "advanced" + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers associated with the action.", + "x-ms-summary": "Fundraiser(s)", + "x-ms-visibility": "advanced", + "items": { + "type": "string" + } + } + } + }, + "ConstituentApi.ActionRead": { + "type": "object", + "description": "Action", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the action.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the action.", + "x-ms-summary": "Constituent ID" + }, + "category": { + "type": "string", + "description": "The channel or intent of the constituent interaction.", + "x-ms-summary": "Category" + }, + "completed": { + "type": "boolean", + "description": "Is the action completed? If the system is configured to use custom action statuses, this value is based on the action status value.", + "x-ms-summary": "Completed?" + }, + "completed_date": { + "type": "string", + "format": "date-time", + "description": "The date when the action was completed.", + "x-ms-summary": "Completed on" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The action date.", + "x-ms-summary": "Date" + }, + "description": { + "type": "string", + "description": "The detailed explanation that elaborates on the action summary.", + "x-ms-summary": "Note" + }, + "direction": { + "type": "string", + "description": "The direction of the action.", + "x-ms-summary": "Direction", + "enum": [ + "Inbound", + "Outbound" + ] + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers associated with the action.", + "x-ms-summary": "Fundraiser(s)", + "items": { + "type": "string" + } + }, + "location": { + "type": "string", + "description": "The location of the action.", + "x-ms-summary": "Location" + }, + "opportunity_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the action.", + "x-ms-summary": "Opportunity ID" + }, + "outcome": { + "type": "string", + "description": "The outcome of the action.", + "x-ms-summary": "Outcome", + "enum": [ + "Successful", + "Unsuccessful" + ] + }, + "priority": { + "type": "string", + "description": "The priority of the action.", + "x-ms-summary": "Priority", + "enum": [ + "Normal", + "High", + "Low" + ] + }, + "start_time": { + "type": "string", + "description": "The start time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "Start time" + }, + "end_time": { + "type": "string", + "description": "The end time of the action. Uses 24-hour time in the HH:mm format.", + "x-ms-summary": "End time" + }, + "status": { + "type": "string", + "description": "The action status.", + "x-ms-summary": "Status" + }, + "status_code": { + "type": "string", + "description": "The action status code. This property is only returned when the system is configured to use custom action statuses.", + "x-ms-summary": "Status code" + }, + "computed_status": { + "type": "string", + "description": "The computed action status. If the system is not configured to use custom action statuses, this field computes the status based on the completed and date properties. If not, the field calculates the status based on the action's date property and whether action's Action Status property is configured as completed.", + "x-ms-summary": "Computed status", + "enum": [ + "Open", + "Completed", + "PastDue" + ] + }, + "summary": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "The short description of the action that appears at the top of the record. Character limit: 255.", + "x-ms-summary": "Summary" + }, + "type": { + "type": "string", + "description": "Additional description of the action to complement the category.", + "x-ms-summary": "Type" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the action was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the action was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "ConstituentApi.ApiCollectionOfActionAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ActionAttachmentRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfActionCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ActionCustomFieldRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfActionRead": { + "type": "object", + "description": "Actions", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.ActionRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfCustomFieldCategoryRead": { + "type": "object", + "description": "Custom field categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.CustomFieldCategoryRead" + } + } + } + }, + "ConstituentApi.CreatedAction": { + "type": "object", + "description": "Created action", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created action.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedActionAttachment": { + "type": "object", + "description": "Created action attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created action attachment.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CreatedActionCustomField": { + "type": "object", + "description": "Created action custom field", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created action custom field.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.CustomFieldCategoryRead": { + "type": "object", + "description": "Custom field category", + "properties": { + "name": { + "type": "string", + "description": "The name of the custom field category.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of data that custom fields with this category represent.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + } + } + }, + "ListApi.ApiCollectionOfList": { + "type": "object", + "description": "Lists", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of lists in the set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/ListApi.ApiList" + } + } + } + }, + "ListApi.ApiList": { + "type": "object", + "description": "List", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the list." + }, + "name": { + "type": "string", + "description": "The name of the list." + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiProperties.json new file mode 100644 index 0000000000..22f5527993 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/apiProperties.json @@ -0,0 +1,49 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "scriptOperations": [ + "ListActionCustomFields" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/readme.md new file mode 100644 index 0000000000..cedc9f9970 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/readme.md @@ -0,0 +1,32 @@ +## Blackbaud Raiser's Edge NXT Interactions Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage constituent interations and related entities within The Raiser's Edge NXT, including: +* Actions +* Action custom fields +* Action attachments +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/script.csx b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/script.csx new file mode 100644 index 0000000000..b6937e5007 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Interactions/script.csx @@ -0,0 +1,55 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + switch (this.Context.OperationId) + { + case "ListActionCustomFields": + return await this.HandleListCustomFieldOperation().ConfigureAwait(false); + } + + var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unhandled operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleListCustomFieldOperation() + { + // make the API request to the SKY API backend + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // if the call to the backend is successful, transform the response items + if (response.IsSuccessStatusCode) + { + // get the response string, convert it to a JObject, and then look at the "value" property (which will be the array of custom fields) + var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + var result = JObject.Parse(responseString); + var value = result["value"] as JArray; + + // if the array contains any items, append a new bespoke xxx_value property to each item + if (value?.Count() > 0) + { + foreach (var cf in value) + { + // only append the bespoke xxx_value property if a value property is present + if (cf.SelectToken("value") != null) { + var valueField = $"{cf["type"]}_value"; + valueField = valueField.ToLowerInvariant(); + cf[valueField] = cf["value"]; + } + } + } + + // assemble the new response + var responseJson = new JObject() { + ["count"] = result["count"], + ["value"] = value + }; + + // set the new response content + response.Content = CreateJsonContent(responseJson.ToString()); + } + + return response; + } +} \ No newline at end of file From 33e423616a959ca520c13800c63f31e8d171788a Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:58:50 -0500 Subject: [PATCH 202/219] adding RENXT Lists connector (#1296) * adding RENXT Lists connector * fix connector name --- .../apiDefinition.swagger.json | 319 ++++++++++++++++++ .../apiProperties.json | 46 +++ .../readme.md | 28 ++ 3 files changed, 393 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Lists/readme.md diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiDefinition.swagger.json new file mode 100644 index 0000000000..1cd8911e5a --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiDefinition.swagger.json @@ -0,0 +1,319 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Lis", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Lists connector to manage lists.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/list/v1/appendidstolist": { + "post": { + "operationId": "AppendIDsToList", + "summary": "Add records to a list", + "description": "Add a set of records to an existing list.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ListApi.AppendIDsToListRequest" + }, + "description": "An object that represents the set of records to append to the list." + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds." + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to modify lists." + } + } + } + }, + "/list/v1/createlistfromids": { + "post": { + "operationId": "CreateListFromIDs", + "summary": "Create a list from a set of records", + "description": "Creates a new list filtered to the specified set of records.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ListApi.CreateListFromIDsRequest" + }, + "description": "An object that represents the list to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a list. The response body contains the ID of the new list.", + "schema": { + "$ref": "#/definitions/ListApi.CreatedList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create lists." + } + } + } + }, + "/list/v1/lists": { + "get": { + "operationId": "ListLists", + "summary": "List lists", + "description": "Get a list of lists.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_type", + "in": "query", + "description": "The type of list to return.", + "required": true, + "type": "string", + "x-ms-summary": "List type", + "default": "Constituent", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ListApi.ApiCollectionOfList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + } + }, + "definitions": { + "ListApi.ApiCollectionOfList": { + "type": "object", + "description": "Lists", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of lists in the set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/ListApi.ApiList" + } + } + } + }, + "ListApi.ApiList": { + "type": "object", + "description": "List", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the list." + }, + "name": { + "type": "string", + "description": "The name of the list." + } + } + }, + "ListApi.AppendIDsToListRequest": { + "type": "object", + "description": "Describes the set of records to append to the list.", + "required": [ + "list_type", + "list_id", + "ids" + ], + "properties": { + "list_type": { + "type": "string", + "description": "The type of list.", + "x-ms-summary": "List type", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + }, + "list_id": { + "type": "string", + "description": "The system record ID of the list.", + "x-ms-summary": "List", + "x-ms-dynamic-values": { + "operationId": "ListLists", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "list_type": { + "parameter": "list_type" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "ListLists", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "list_type": { + "parameterReference": "body/list_type" + } + } + } + }, + "ids": { + "type": "array", + "description": "The unique identifiers for the records to be added to the list (maximumum of 100,000 values).", + "x-ms-summary": "ID(s)", + "items": { + "type": "string" + } + } + } + }, + "ListApi.CreateListFromIDsRequest": { + "type": "object", + "description": "Describes the list to create with the specified unique record identifiers.", + "required": [ + "name", + "description", + "list_type", + "list_permissions", + "ids" + ], + "properties": { + "name": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The name of the list. Character limit: 50.", + "x-ms-summary": "Name" + }, + "description": { + "type": "string", + "description": "The description of the list.", + "x-ms-summary": "Description" + }, + "list_type": { + "type": "string", + "description": "Determines the type of list to create.", + "x-ms-summary": "List type", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + }, + "list_permissions": { + "type": "string", + "description": "Determines whether other users can access the list.", + "x-ms-summary": "Permissions", + "enum": [ + "OnlyOwnerCanAccess", + "OthersCanView", + "OthersCanViewAndEdit" + ] + }, + "ids": { + "type": "array", + "description": "The unique identifiers for the records contained in the list (maximumum of 100,000 values).", + "x-ms-summary": "ID(s)", + "items": { + "type": "string" + } + } + } + }, + "ListApi.CreatedList": { + "type": "object", + "description": "Created list", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created list.", + "x-ms-summary": "ID" + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiProperties.json new file mode 100644 index 0000000000..cfd4d6b107 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/apiProperties.json @@ -0,0 +1,46 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Lists/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/readme.md new file mode 100644 index 0000000000..d4ab080770 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Lists/readme.md @@ -0,0 +1,28 @@ +## Blackbaud Raiser's Edge NXT Lists Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage lists within The Raiser's Edge NXT. + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file From 0fb98ad0742178656bf19c05c74400db904d3922 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:59:08 -0500 Subject: [PATCH 203/219] adding RENXT Prospects connector (#1297) * adding RENXT Prospects connector * Update apiDefinition.swagger.json --- .../apiDefinition.swagger.json | 2429 +++++++++++++++++ .../apiProperties.json | 49 + .../readme.md | 32 + .../script.csx | 55 + 4 files changed, 2565 insertions(+) create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiProperties.json create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Prospects/readme.md create mode 100644 certified-connectors/Blackbaud Raiser's Edge NXT Prospects/script.csx diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiDefinition.swagger.json b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiDefinition.swagger.json new file mode 100644 index 0000000000..59976b1221 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiDefinition.swagger.json @@ -0,0 +1,2429 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud Raisers Edge NXT Pro", + "description": "Blackbaud Raiser's Edge NXT is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. Use the Prospects connector to manage prospects, opportunities, and ratings.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/constituent/v1/constituents/{constituent_id}/prospectstatus": { + "get": { + "operationId": "GetConstituentProspectStatus", + "summary": "Get constituent prospect status", + "description": "Returns the current prospect status for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent for whom the prospect status is to be retrieved.", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ProspectStatusRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the prospect status." + }, + "404": { + "description": "Returned when the specified constituent is not found or has no prospect status." + } + } + } + }, + "/constituent/v1/constituents/{constituent_id}/ratings": { + "get": { + "operationId": "ListConstituentRatings", + "summary": "List constituent ratings", + "description": "Returns the list of ratings for a constituent.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "constituent_id", + "in": "path", + "description": "The system record ID of the constituent", + "required": true, + "type": "string", + "x-ms-summary": "Constituent ID", + "x-ms-url-encoding": "single" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive ratings?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "most_recent_only", + "in": "query", + "description": "Include only the most recent ratings?", + "type": "boolean", + "x-ms-summary": "Only most recent?", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfRatingRead" + } + }, + "400": { + "description": "Returned when the specified constituent ID in the request URL or the specified request parameter is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the ratings." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/ratings": { + "post": { + "operationId": "CreateConstituentRating", + "summary": "Create a constituent rating", + "description": "Creates a new constituent rating.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/ConstituentApi.RatingAdd" + }, + "description": "An object that represents the rating to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a rating. The response body contains the ID of the new rating.", + "schema": { + "$ref": "#/definitions/ConstituentApi.CreatedConstituentRating" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the rating." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/constituent/v1/ratings/categories": { + "get": { + "operationId": "ListRatingCategories", + "summary": "List rating categories", + "description": "Lists the rating categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive categories?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + }, + { + "name": "source_name", + "in": "query", + "description": "The source to filter the categories. To return all categories, do not include source_name. To return all categories that do not have a source, include source_name in the request URL with an empty value.", + "type": "string", + "x-ms-summary": "Source name" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfRatingCategoryRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + }, + "/constituent/v1/ratings/sources": { + "get": { + "operationId": "ListRatingSources", + "summary": "List rating sources", + "description": "Lists the country definitions.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive sources?", + "type": "boolean", + "x-ms-summary": "Include inactive?" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ConstituentApi.ApiCollectionOfRatingSourceRead" + } + }, + "400": { + "description": "Returned when the specified request parameter is not in the appropriate format." + } + } + } + }, + "/list/v1/lists": { + "get": { + "operationId": "ListLists", + "summary": "List lists", + "description": "Get a list of lists.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_type", + "in": "query", + "description": "The type of list to return.", + "required": true, + "type": "string", + "x-ms-summary": "List type", + "default": "Constituent", + "enum": [ + "Constituent", + "Gift", + "Action", + "Opportunity" + ] + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/ListApi.ApiCollectionOfList" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + } + } + } + }, + "/opportunity/v1/opportunities": { + "get": { + "operationId": "ListOpportunities", + "summary": "List opportunities", + "description": "Returns a list of opportunities.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "list_id", + "in": "query", + "description": "Defines a list identifier used to filter the set of opportunities to those included in the specified list. If this value is set, other specified filters will be ignored.", + "type": "string", + "x-ms-summary": "List", + "x-ms-dynamic-values": { + "operationId": "ListLists", + "value-collection": "value", + "value-path": "id", + "value-title": "name", + "parameters": { + "list_type": "Opportunity" + } + }, + "x-ms-dynamic-list": { + "operationId": "ListLists", + "itemsPath": "value", + "itemValuePath": "id", + "itemTitlePath": "name", + "parameters": { + "list_type": { + "value": "Opportunity" + } + } + } + }, + { + "name": "constituent_id", + "in": "query", + "description": "Represents a comma-separated list of constituent identifiers to filter the results. For example, \"280,1232\" returns only opportunities from constituent 280 or constituent 1232.", + "type": "string", + "x-ms-summary": "Constituent ID" + }, + { + "name": "limit", + "in": "query", + "description": "Represents the number of records to return. The default is 500. The maximum is 5000.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Limit" + }, + { + "name": "offset", + "in": "query", + "description": "Represents the number of records to skip. For use with pagination.", + "type": "integer", + "format": "int32", + "x-ms-summary": "Offset" + }, + { + "name": "include_inactive", + "in": "query", + "description": "Include inactive opportunities?", + "type": "boolean", + "x-ms-summary": "Include inactive?", + "x-ms-visibility": "advanced" + }, + { + "name": "date_added", + "in": "query", + "description": "Filter the results to opportunities created on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Added on or after", + "x-ms-visibility": "advanced" + }, + { + "name": "last_modified", + "in": "query", + "description": "Filter the results to opportunities modified on or after the specified date (ex: '2020-09-18T04:13:56Z').", + "type": "string", + "format": "date-time", + "x-ms-summary": "Modified on or after", + "x-ms-visibility": "advanced" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/OpportunityApi.ApiCollectionOfOpportunityRead" + } + }, + "400": { + "description": "Returned when the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the opportunities." + } + } + }, + "post": { + "operationId": "CreateOpportunity", + "summary": "Create an opportunity", + "description": "Creates a new opportunity.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityAdd" + }, + "description": "An object that represents the opportunity to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an opportunity. The response body contains the ID of the new opportunity.", + "schema": { + "$ref": "#/definitions/OpportunityApi.CreatedOpportunity" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the opportunity." + }, + "404": { + "description": "Returned when the specified constituent is not found." + } + } + } + }, + "/opportunity/v1/opportunities/{opportunity_id}": { + "get": { + "operationId": "GetOpportunity", + "summary": "Get an opportunity", + "description": "Returns information about an opportunity. Note: This endpoint returns the status property with a latency of about 10 minutes.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "opportunity_id", + "in": "path", + "description": "The system record ID of the opportunity to get.", + "required": true, + "type": "string", + "x-ms-summary": "Opportunity ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityRead" + } + }, + "400": { + "description": "Returned when the specified opportunity ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the opportunity." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + }, + "patch": { + "operationId": "EditOpportunity", + "summary": "Update an opportunity", + "description": "Updates an opportunity.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "opportunity_id", + "in": "path", + "description": "The system record ID of the opportunity to update.", + "required": true, + "type": "string", + "x-ms-summary": "Opportunity ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityEdit" + }, + "description": "An object that represents the properties of the opportunity to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the opportunity." + }, + "400": { + "description": "Returned when the specified opportunity ID in the request URL body or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to edit the opportunity." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + } + }, + "/opportunity/v1/opportunities/{opportunity_id}/attachments": { + "get": { + "operationId": "ListOpportunityAttachments", + "summary": "List opportunity attachments", + "description": "Lists the attachments for an opportunity.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "opportunity_id", + "in": "path", + "description": "The system record ID of the opportunity.", + "required": true, + "type": "string", + "x-ms-summary": "Opportunity ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/OpportunityApi.ApiCollectionOfOpportunityAttachmentRead" + } + }, + "400": { + "description": "Returned when the specified opportunity ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the attachments." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + } + }, + "/opportunity/v1/opportunities/{opportunity_id}/customfields": { + "get": { + "operationId": "ListOpportunityCustomFields", + "summary": "List opportunity custom fields", + "description": "Lists the custom fields for an opportunity.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "opportunity_id", + "in": "path", + "description": "The system record ID of the opportunity.", + "required": true, + "type": "string", + "x-ms-summary": "Opportunity ID", + "x-ms-url-encoding": "single" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/OpportunityApi.ApiCollectionOfOpportunityCustomFieldRead" + } + }, + "400": { + "description": "Returned when the specified opportunity ID in the request URL is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to view the custom fields." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + } + }, + "/opportunity/v1/opportunities/attachments": { + "post": { + "operationId": "CreateOpportunityAttachment", + "summary": "Create an opportunity attachment", + "description": "Creates a new opportunity attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityAttachmentAdd" + }, + "description": "An object that represents the attachment to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates an attachment. The response body contains the ID of the new attachment.", + "schema": { + "$ref": "#/definitions/OpportunityApi.CreatedOpportunityAttachment" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the attachment." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + } + }, + "/opportunity/v1/opportunities/attachments/{attachment_id}": { + "patch": { + "operationId": "EditOpportunityAttachment", + "summary": "Update an opportunity attachment", + "description": "Updates an opportunity attachment.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "attachment_id", + "in": "path", + "description": "The system record ID of the attachment to update.", + "required": true, + "type": "string", + "x-ms-summary": "Attachment ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityAttachmentEdit" + }, + "description": "An object that represents the properties of the attachment to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the attachment." + }, + "400": { + "description": "Returned when the specified attachment ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the attachment." + }, + "404": { + "description": "Returned when the specified attachment is not found." + } + } + } + }, + "/opportunity/v1/opportunities/customfields": { + "post": { + "operationId": "CreateOpportunityCustomField", + "summary": "Create an opportunity custom field", + "description": "Creates a new opportunity custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityCustomFieldAdd" + }, + "description": "An object that represents the custom field to create.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully creates a custom field. The response body contains the ID of the new custom field.", + "schema": { + "$ref": "#/definitions/OpportunityApi.CreatedOpportunityCustomField" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to create the custom field." + }, + "404": { + "description": "Returned when the specified opportunity is not found." + } + } + } + }, + "/opportunity/v1/opportunities/customfields/{custom_field_id}": { + "patch": { + "operationId": "EditOpportunityCustomField", + "summary": "Update an opportunity custom field", + "description": "Updates an opportunity custom field.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "custom_field_id", + "in": "path", + "description": "The system record ID of the custom field to update.", + "required": true, + "type": "string", + "x-ms-summary": "Custom field ID", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/OpportunityApi.OpportunityCustomFieldEdit" + }, + "description": "An object that represents the properties of the custom field to update.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully updates the custom field." + }, + "400": { + "description": "Returned when the specified custom field ID in the request URL or the specified request parameters are not in the appropriate format." + }, + "403": { + "description": "Returned when the user does not have permission to update the custom field." + }, + "404": { + "description": "Returned when the specified custom field is not found." + } + } + } + }, + "/opportunity/v1/opportunities/customfields/categories": { + "get": { + "operationId": "ListOpportunityCustomFieldCategories", + "summary": "List custom field categories", + "description": "Lists the opportunity custom field categories.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/OpportunityApi.ApiCollectionOfCustomFieldCategoryRead" + } + }, + "403": { + "description": "Returned when the user does not have permission to view custom field categories." + } + } + } + }, + "/powerautomateui/v1/dynamicvalues": { + "get": { + "operationId": "GetDynamicValues", + "summary": "Get dynamic values", + "description": "List dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "route", + "in": "query", + "description": "The route within the specified SKY API to call to produce the values for the dynamic list.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicvalues/customfields": { + "get": { + "operationId": "GetCustomFieldCodeTableDynamicValues", + "summary": "Get custom field code table dynamic values", + "description": "List custom field code table dynamic values.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the route that will be used to populate the dynamic values list.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category_name", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValuesCollection" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/customfields": { + "get": { + "operationId": "GetCustomFieldDynamicProperties", + "summary": "Get custom field dynamic properties", + "description": "List custom field dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "api", + "in": "query", + "description": "The underlying SKY API containing the endpoint that will be used to fetch the custom field category definition.", + "required": true, + "type": "string", + "enum": [ + "constituent", + "gift", + "fundraising", + "opportunity" + ] + }, + { + "name": "custom_field_type", + "in": "query", + "description": "The type of entity that owns the custom field.", + "required": true, + "type": "string", + "enum": [ + "actions", + "constituents", + "appeals", + "campaigns", + "funds", + "gifts", + "opportunities" + ] + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + }, + "/powerautomateui/v1/dynamicproperties/ratings": { + "get": { + "operationId": "GetRatingDynamicProperties", + "summary": "Get rating category dynamic properties", + "description": "List rating category dynamic properties.", + "x-ms-visibility": "internal", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "source_name", + "in": "query", + "description": "The rating source.", + "required": true, + "type": "string" + }, + { + "name": "category", + "in": "query", + "description": "The custom field category.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Returned when the operation succeeds.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicProperties" + } + } + } + } + } + }, + "definitions": { + "ConstituentApi.ApiCollectionOfRatingCategoryRead": { + "type": "object", + "description": "Rating categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.RatingCategoryRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfRatingRead": { + "type": "object", + "description": "Ratings", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.RatingRead" + } + } + } + }, + "ConstituentApi.ApiCollectionOfRatingSourceRead": { + "type": "object", + "description": "Rating sources", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/ConstituentApi.RatingSourceRead" + } + } + } + }, + "ConstituentApi.CreatedConstituentRating": { + "type": "object", + "description": "Created constituent rating", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created constituent rating.", + "x-ms-summary": "ID" + } + } + }, + "ConstituentApi.ProspectStatusRead": { + "type": "object", + "description": "Prospect status", + "properties": { + "status": { + "type": "string", + "description": "The constituent's current prospect status.", + "x-ms-summary": "Status" + }, + "days_elapsed": { + "type": "integer", + "format": "int32", + "description": "Total number of days in the current prospect status based on the start date.", + "x-ms-summary": "Days elapsed" + }, + "start": { + "type": "string", + "format": "date-time", + "description": "The start date of the prospect status.", + "x-ms-summary": "Start date" + }, + "comments": { + "type": "string", + "description": "The comments on the prospect status.", + "x-ms-summary": "Comments" + } + } + }, + "ConstituentApi.RatingAdd": { + "type": "object", + "description": "Ratings indicate the estimated wealth of constituents and their capacity to give. Ratings information such as overall wealth ratings, suggested ask amounts, and total identified assets can help to determine where to focus efforts, whether to pursue prospects or major gifts, and how much to ask from donors.", + "required": [ + "constituent_id", + "source", + "category", + "date" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the rating.", + "x-ms-summary": "Constituent ID" + }, + "source": { + "type": "string", + "description": "The source of the new rating.", + "x-ms-summary": "Source", + "x-ms-dynamic-values": { + "operationId": "ListRatingSources", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListRatingSources", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "category": { + "type": "string", + "description": "The category of the rating.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListRatingCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name", + "parameters": { + "source_name": { + "parameter": "source" + } + } + }, + "x-ms-dynamic-list": { + "operationId": "ListRatingCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name", + "parameters": { + "source_name": { + "parameterReference": "body/source" + } + } + } + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the rating (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetRatingDynamicProperties", + "parameters": { + "source_name": { + "parameter": "source" + }, + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetRatingDynamicProperties", + "parameters": { + "source_name": { + "parameterReference": "body/source" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "comment": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "A comment about the rating. Character limit: 255.", + "x-ms-summary": "Comments" + } + } + }, + "ConstituentApi.RatingCategoryRead": { + "type": "object", + "description": "Rating category", + "properties": { + "inactive": { + "type": "boolean", + "description": "Is the category inactive?", + "x-ms-summary": "Inactive?" + }, + "name": { + "type": "string", + "description": "The name of the rating category.", + "x-ms-summary": "Name" + }, + "source_name": { + "type": "string", + "description": "The source of the category.", + "x-ms-summary": "Source" + }, + "type": { + "type": "string", + "description": "Gets or sets the type of the rating category.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "DateTime", + "Currency", + "Boolean", + "CodeTable", + "Unknown" + ] + } + } + }, + "ConstituentApi.RatingRead": { + "type": "object", + "description": "Rating", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the rating.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the rating.", + "x-ms-summary": "Constituent ID" + }, + "source": { + "type": "string", + "description": "The source of the new rating.", + "x-ms-summary": "Source" + }, + "category": { + "type": "string", + "description": "The category of the rating.", + "x-ms-summary": "Category" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the rating.", + "x-ms-summary": "Date" + }, + "value": { + "description": "The value of the rating.", + "x-ms-summary": "Description" + }, + "comment": { + "type": "string", + "description": "A comment about the rating.", + "x-ms-summary": "Comments" + }, + "inactive": { + "type": "boolean", + "description": "Is the rating inactive?", + "x-ms-summary": "Inactive?" + }, + "type": { + "type": "string", + "description": "This computed field indicates the type of data that the rating represents based on the category property.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "DateTime", + "Currency", + "Boolean", + "CodeTable", + "Unknown" + ] + } + } + }, + "ConstituentApi.RatingSourceRead": { + "type": "object", + "description": "Rating source", + "properties": { + "inactive": { + "type": "boolean", + "description": "Is the rating source inactive?", + "x-ms-summary": "Inactive?" + }, + "name": { + "type": "string", + "description": "The name of the rating source.", + "x-ms-summary": "Name" + } + } + }, + "ListApi.ApiCollectionOfList": { + "type": "object", + "description": "Lists", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The total number of lists in the set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response.", + "items": { + "$ref": "#/definitions/ListApi.ApiList" + } + } + } + }, + "ListApi.ApiList": { + "type": "object", + "description": "List", + "properties": { + "id": { + "type": "string", + "description": "The system record ID for the list." + }, + "name": { + "type": "string", + "description": "The name of the list." + } + } + }, + "OpportunityApi.ApiCollectionOfCustomFieldCategoryRead": { + "type": "object", + "description": "Custom field categories", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/OpportunityApi.CustomFieldCategoryRead" + } + } + } + }, + "OpportunityApi.ApiCollectionOfOpportunityAttachmentRead": { + "type": "object", + "description": "Attachments", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/OpportunityApi.OpportunityAttachmentRead" + } + } + } + }, + "OpportunityApi.ApiCollectionOfOpportunityCustomFieldRead": { + "type": "object", + "description": "Custom fields", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/OpportunityApi.OpportunityCustomFieldRead" + } + } + } + }, + "OpportunityApi.ApiCollectionOfOpportunityRead": { + "type": "object", + "description": "Opportunities", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items available for retrieval into the collection after applying any request parameters. The limit and offset parameters do not affect the count, but to facilitate paging, they may affect the number of items in the value result set.", + "x-ms-summary": "Count" + }, + "value": { + "type": "array", + "description": "The set of items included in the response. This may be a subset of the items in the collection.", + "items": { + "$ref": "#/definitions/OpportunityApi.OpportunityRead" + } + } + } + }, + "OpportunityApi.CreatedOpportunity": { + "type": "object", + "description": "Created opportunity", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created opportunity.", + "x-ms-summary": "ID" + } + } + }, + "OpportunityApi.CreatedOpportunityAttachment": { + "type": "object", + "description": "Created opportunity attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created opportunity attachment.", + "x-ms-summary": "ID" + } + } + }, + "OpportunityApi.CreatedOpportunityCustomField": { + "type": "object", + "description": "Created opportunity attachment", + "properties": { + "id": { + "type": "string", + "description": "The ID of the newly created opportunity attachment.", + "x-ms-summary": "ID" + } + } + }, + "OpportunityApi.CustomFieldCategoryRead": { + "type": "object", + "description": "Custom field category", + "properties": { + "name": { + "type": "string", + "description": "The name of the custom field category.", + "x-ms-summary": "Name" + }, + "type": { + "type": "string", + "description": "The type of data that custom fields with this category represent.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + } + } + }, + "OpportunityApi.Fundraiser": { + "type": "object", + "description": "Fundraiser", + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the fundraiser.", + "x-ms-summary": "Constituent ID" + }, + "credit_amount": { + "type": "object", + "description": "The amount credited to the fundraiser for the opportunity.", + "x-ms-summary": "Credit amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + } + } + }, + "OpportunityApi.OpportunityAdd": { + "type": "object", + "description": "Opportunities help you plan and track efforts to build relationships with prospects and secure major gifts. They can manage information about fundraising activities and the effectiveness of your efforts.", + "required": [ + "constituent_id", + "purpose", + "name" + ], + "properties": { + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the opportunity.", + "x-ms-summary": "Constituent ID" + }, + "purpose": { + "type": "string", + "description": "The intended use for any money raised as a result of the opportunity.", + "x-ms-summary": "Purpose", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "opportunity", + "route": "opportunitypurposes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "opportunity" + }, + "route": { + "value": "opportunitypurposes" + } + } + } + }, + "name": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "The name that identifies the opportunity throughout the program, such as in lists or on constituent records. Character limit: 255.", + "x-ms-summary": "Name" + }, + "status": { + "type": "string", + "description": "The status that indicates where the opportunity is in the solicitation process.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "opportunity", + "route": "opportunitystatuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "opportunity" + }, + "route": { + "value": "opportunitystatuses" + } + } + } + }, + "deadline": { + "type": "string", + "format": "date-time", + "description": "The goal date for the opportunity to result in a gift (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Deadline" + }, + "ask_date": { + "type": "string", + "format": "date-time", + "description": "The date when the solicitation was made (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Ask date" + }, + "ask_amount": { + "type": "object", + "description": "The monetary amount solicited from the prospect for the opportunity.", + "x-ms-summary": "Ask amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "expected_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect is expected to give in response to the opportunity (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Expected date" + }, + "expected_amount": { + "type": "object", + "description": "The monetary amount that is realistically expected to result from the opportunity.", + "x-ms-summary": "Expected amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "funded_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect gave in response to the opportunity (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Funded date" + }, + "funded_amount": { + "type": "object", + "description": "The monetary amount that the prospect gave in response to the opportunity.", + "x-ms-summary": "Funded amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the opportunity. The campaign sets the overall objectives for raising money.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the opportunity. The fund designates the specific financial purpose of a gift and identifies the financial account for that gift.", + "x-ms-summary": "Fund ID" + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers assigned to the opportunity.", + "x-ms-summary": "Fundraiser(s)", + "items": { + "$ref": "#/definitions/OpportunityApi.Fundraiser" + } + }, + "inactive": { + "type": "boolean", + "description": "Is the opportunity inactive?", + "x-ms-summary": "Inactive?" + } + } + }, + "OpportunityApi.OpportunityAttachmentAdd": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "required": [ + "parent_id", + "type" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the attachment.", + "x-ms-summary": "Opportunity ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z'). This field defaults to the current date and time if not supplied.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + } + } + }, + "OpportunityApi.OpportunityAttachmentEdit": { + "type": "object", + "description": "Many cultivation activities collect related collateral, such as correspondence and prospect research. Attachments can save this data on the appropriate record to maintain a complete view of those activities.", + "properties": { + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + } + } + }, + "OpportunityApi.OpportunityAttachmentRead": { + "type": "object", + "description": "Attachment", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the attachment.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the attachment.", + "x-ms-summary": "Opportunity ID" + }, + "type": { + "type": "string", + "description": "The attachment type. Physical attachments are uploaded files such as images, PDFs, or Word documents that are saved locally or on the network. They are stored and managed in the system. Link attachments are links to files such as images, blog posts, or YouTube videos that are online or in a cloud storage account. They are stored and managed externally.", + "x-ms-summary": "Type", + "enum": [ + "Link", + "Physical" + ] + }, + "name": { + "type": "string", + "maxLength": 150, + "minLength": 0, + "description": "The name of the attachment. Character limit: 150.", + "x-ms-summary": "Name" + }, + "date": { + "type": "string", + "format": "date-time", + "description": "The date of the attachment.", + "x-ms-summary": "Date" + }, + "url": { + "type": "string", + "description": "The URL for the attachment. This is required for link attachments and not applicable for physical attachments.", + "x-ms-summary": "URL" + }, + "file_name": { + "type": "string", + "description": "The name of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File name" + }, + "file_id": { + "type": "string", + "description": "The identifier of the file. Character limit: 36. For physical attachments only.", + "x-ms-summary": "File ID" + }, + "thumbnail_id": { + "type": "string", + "maxLength": 36, + "minLength": 0, + "description": "The identifier of the thumbnail. Character limit: 36. For physical attachments only.", + "x-ms-summary": "Thumbnail ID" + }, + "thumbnail_url": { + "type": "string", + "description": "The URL for a thumbnail. For physical attachments that are images only. Contains a time-bound signature that limits access to 60 minutes.", + "x-ms-summary": "Thumbnail URL" + }, + "content_type": { + "type": "string", + "description": "The content type. For physical attachments only.", + "x-ms-summary": "Content type" + }, + "file_size": { + "type": "integer", + "format": "int64", + "description": "The file size in bytes. For physical attachments only.", + "x-ms-summary": "File size" + } + } + }, + "OpportunityApi.OpportunityCustomFieldAdd": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "required": [ + "parent_id", + "category" + ], + "properties": { + "parent_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the custom field.", + "x-ms-summary": "Opportunity ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListOpportunityCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListOpportunityCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "opportunity", + "custom_field_type": "opportunities", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "opportunity" + }, + "custom_field_type": { + "value": "opportunities" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "OpportunityApi.OpportunityCustomFieldEdit": { + "type": "object", + "description": "While records provide many fields to track information, organizations often require additional details. To track this specialized information, use custom fields.", + "properties": { + "category": { + "type": "string", + "description": "The custom field category (required if updating the custom field value).", + "x-ms-summary": "Category", + "x-ms-dynamic-values": { + "operationId": "ListOpportunityCustomFieldCategories", + "value-collection": "value", + "value-path": "name", + "value-title": "name" + }, + "x-ms-dynamic-list": { + "operationId": "ListOpportunityCustomFieldCategories", + "itemsPath": "value", + "itemValuePath": "name", + "itemTitlePath": "name" + } + }, + "value": { + "type": "object", + "x-ms-dynamic-schema": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": "opportunity", + "custom_field_type": "opportunities", + "category": { + "parameter": "category" + } + }, + "value-path": "items" + }, + "x-ms-dynamic-properties": { + "operationId": "GetCustomFieldDynamicProperties", + "parameters": { + "api": { + "value": "opportunity" + }, + "custom_field_type": { + "value": "opportunities" + }, + "category": { + "parameterReference": "body/category" + } + }, + "itemValuePath": "items" + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field (ex: '2005-09-18').", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "maxLength": 50, + "minLength": 0, + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + } + } + }, + "OpportunityApi.OpportunityCustomFieldRead": { + "type": "object", + "description": "Custom field", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the custom field.", + "x-ms-summary": "ID" + }, + "parent_id": { + "type": "string", + "description": "The system record ID of the opportunity associated with the custom field.", + "x-ms-summary": "Opportunity ID" + }, + "category": { + "type": "string", + "description": "The custom field category.", + "x-ms-summary": "Category" + }, + "type": { + "type": "string", + "description": "The type of data that the custom field represents.", + "x-ms-summary": "Type", + "enum": [ + "Text", + "Number", + "Date", + "Currency", + "Boolean", + "CodeTableEntry", + "ConstituentId", + "FuzzyDate" + ] + }, + "value": { + "description": "The value of the custom field.", + "x-ms-summary": "Value" + }, + "text_value": { + "type": "string", + "description": "The text value of the custom field.", + "x-ms-summary": "Text value" + }, + "number_value": { + "type": "integer", + "format": "int32", + "description": "The numeric value of the custom field.", + "x-ms-summary": "Number value" + }, + "date_value": { + "type": "string", + "format": "date", + "description": "The date value of the custom field.", + "x-ms-summary": "Date value" + }, + "currency_value": { + "type": "number", + "format": "double", + "description": "The currency value of the custom field.", + "x-ms-summary": "Currency value" + }, + "boolean_value": { + "type": "boolean", + "description": "The boolean value of the custom field.", + "x-ms-summary": "Boolean value" + }, + "codetableentry_value": { + "type": "string", + "description": "The table entry value of the custom field.", + "x-ms-summary": "Table entry value" + }, + "constituentid_value": { + "type": "string", + "description": "The constituent ID value of the custom field.", + "x-ms-summary": "Constituent ID value" + }, + "fuzzydate_value": { + "type": "object", + "description": "The fuzzy date value of the custom field.", + "x-ms-summary": "Fuzzy date value", + "properties": { + "d": { + "type": "integer", + "format": "int32", + "description": "The day in the fuzzy date.", + "x-ms-summary": "day", + "x-ms-visibility": "advanced" + }, + "m": { + "type": "integer", + "format": "int32", + "description": "The month in the fuzzy date.", + "x-ms-summary": "month", + "x-ms-visibility": "advanced" + }, + "y": { + "type": "integer", + "format": "int32", + "description": "The year in the fuzzy date.", + "x-ms-summary": "year", + "x-ms-visibility": "advanced" + } + } + }, + "date": { + "type": "string", + "format": "date", + "description": "The date on the custom field.", + "x-ms-summary": "Date" + }, + "comment": { + "type": "string", + "description": "The comment on the custom field. Character limit: 50.", + "x-ms-summary": "Comment" + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the custom field was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "OpportunityApi.OpportunityEdit": { + "type": "object", + "description": "Opportunities help you plan and track efforts to build relationships with prospects and secure major gifts. They can manage information about fundraising activities and the effectiveness of your efforts.", + "properties": { + "purpose": { + "type": "string", + "description": "The intended use for any money raised as a result of the opportunity.", + "x-ms-summary": "Purpose", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "opportunity", + "route": "opportunitypurposes" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "opportunity" + }, + "route": { + "value": "opportunitypurposes" + } + } + } + }, + "name": { + "type": "string", + "maxLength": 255, + "minLength": 0, + "description": "The name that identifies the opportunity throughout the program, such as in lists or on constituent records. Character limit: 255.", + "x-ms-summary": "Name" + }, + "status": { + "type": "string", + "description": "The status that indicates where the opportunity is in the solicitation process.", + "x-ms-summary": "Status", + "x-ms-dynamic-values": { + "operationId": "GetDynamicValues", + "value-collection": "value", + "value-path": "item", + "value-title": "item", + "parameters": { + "api": "opportunity", + "route": "opportunitystatuses" + } + }, + "x-ms-dynamic-list": { + "operationId": "GetDynamicValues", + "itemsPath": "value", + "itemValuePath": "item", + "itemTitlePath": "item", + "parameters": { + "api": { + "value": "opportunity" + }, + "route": { + "value": "opportunitystatuses" + } + } + } + }, + "deadline": { + "type": "string", + "format": "date-time", + "description": "The goal date for the opportunity to result in a gift (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Deadline" + }, + "ask_date": { + "type": "string", + "format": "date-time", + "description": "The date when the solicitation was made (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Ask date" + }, + "ask_amount": { + "type": "object", + "description": "The monetary amount solicited from the prospect for the opportunity.", + "x-ms-summary": "Ask amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "expected_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect is expected to give in response to the opportunity (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Expected date" + }, + "expected_amount": { + "type": "object", + "description": "The monetary amount that is realistically expected to result from the opportunity.", + "x-ms-summary": "Expected amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "funded_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect gave in response to the opportunity (ex: '2020-09-18T04:13:56Z').", + "x-ms-summary": "Funded date" + }, + "funded_amount": { + "type": "object", + "description": "The monetary amount that the prospect gave in response to the opportunity.", + "x-ms-summary": "Funded amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the opportunity. The campaign sets the overall objectives for raising money.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the opportunity. The fund designates the specific financial purpose of a gift and identifies the financial account for that gift.", + "x-ms-summary": "Fund ID" + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers assigned to the opportunity.", + "x-ms-summary": "Fundraiser(s)", + "items": { + "$ref": "#/definitions/OpportunityApi.Fundraiser" + } + }, + "inactive": { + "type": "boolean", + "description": "Is the opportunity inactive?", + "x-ms-summary": "Inactive?" + } + } + }, + "OpportunityApi.OpportunityRead": { + "type": "object", + "description": "Opportunity", + "properties": { + "id": { + "type": "string", + "description": "The system record ID of the opportunity.", + "x-ms-summary": "ID" + }, + "constituent_id": { + "type": "string", + "description": "The system record ID of the constituent associated with the opportunity.", + "x-ms-summary": "Constituent ID" + }, + "purpose": { + "type": "string", + "description": "The intended use for any money raised as a result of the opportunity.", + "x-ms-summary": "Purpose" + }, + "name": { + "type": "string", + "description": "The name that identifies the opportunity throughout the program, such as in lists or on constituent records. Character limit: 255.", + "x-ms-summary": "Name" + }, + "status": { + "type": "string", + "description": "The status that indicates where the opportunity is in the solicitation process.", + "x-ms-summary": "Status" + }, + "deadline": { + "type": "string", + "format": "date-time", + "description": "The goal date for the opportunity to result in a gift.", + "x-ms-summary": "Deadline" + }, + "ask_date": { + "type": "string", + "format": "date-time", + "description": "The date when the solicitation was made.", + "x-ms-summary": "Ask date" + }, + "ask_amount": { + "type": "object", + "description": "The monetary amount solicited from the prospect for the opportunity.", + "x-ms-summary": "Ask amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "expected_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect is expected to give in response to the opportunity.", + "x-ms-summary": "Expected date" + }, + "expected_amount": { + "type": "object", + "description": "The monetary amount that is realistically expected to result from the opportunity.", + "x-ms-summary": "Expected amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "funded_date": { + "type": "string", + "format": "date-time", + "description": "The date when the prospect gave in response to the opportunity.", + "x-ms-summary": "Funded date" + }, + "funded_amount": { + "type": "object", + "description": "The monetary amount that the prospect gave in response to the opportunity.", + "x-ms-summary": "Funded amount", + "properties": { + "value": { + "type": "number", + "format": "double", + "description": "The monetary value.", + "x-ms-summary": "value" + } + } + }, + "campaign_id": { + "type": "string", + "description": "The system record ID of the campaign associated with the opportunity. The campaign sets the overall objectives for raising money.", + "x-ms-summary": "Campaign ID" + }, + "fund_id": { + "type": "string", + "description": "The system record ID of the fund associated with the opportunity. The fund designates the specific financial purpose of a gift and identifies the financial account for that gift.", + "x-ms-summary": "Fund ID" + }, + "fundraisers": { + "type": "array", + "description": "The set of system record IDs for the fundraisers assigned to the opportunity.", + "x-ms-summary": "Fundraiser(s)", + "items": { + "$ref": "#/definitions/OpportunityApi.Fundraiser" + } + }, + "inactive": { + "type": "boolean", + "description": "Is the opportunity inactive?", + "x-ms-summary": "Inactive?" + }, + "linked_gifts": { + "description": "The system record IDs of the gifts related to the opportunity.", + "type": "array", + "items": { + "type": "string" + } + }, + "date_added": { + "type": "string", + "format": "date-time", + "description": "The date when the opportunity was created.", + "x-ms-summary": "Date added" + }, + "date_modified": { + "type": "string", + "format": "date-time", + "description": "The date when the opportunity was last modified.", + "x-ms-summary": "Date modified" + } + } + }, + "PowerAutomateUIApi.DynamicValue": { + "type": "object", + "description": "A single dynamic value item", + "properties": { + "id": { + "type": "string", + "description": "The dynamic value item identifier." + }, + "item": { + "type": "string", + "description": "The dynamic value item." + } + } + }, + "PowerAutomateUIApi.DynamicValuesCollection": { + "type": "object", + "description": "A collection of objects for use with dynamic values.", + "properties": { + "count": { + "type": "integer", + "format": "int32", + "description": "The number of items in the list." + }, + "value": { + "type": "array", + "description": "The set of objects for use with dynamic values.", + "items": { + "$ref": "#/definitions/PowerAutomateUIApi.DynamicValue" + } + } + } + }, + "PowerAutomateUIApi.DynamicProperties": { + "type": "object", + "description": "Defines some (but potentially not all) dynamic OpenApi metadata properties needed for a custom field.", + "properties": { + "items": { + "type": "object", + "description": "The OpenApi properties for the custom field value.", + "properties": { + "type": { + "type": "string", + "description": "The OpenApi type." + }, + "format": { + "type": "string", + "description": "The OpenApi format." + }, + "description": { + "type": "string", + "description": "The OpenApi description." + } + } + } + } + } + } +} diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiProperties.json b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiProperties.json new file mode 100644 index 0000000000..1ebe6bcc3e --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/apiProperties.json @@ -0,0 +1,49 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "scriptOperations": [ + "ListOpportunityCustomFields" + ], + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/readme.md b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/readme.md new file mode 100644 index 0000000000..ca309a1f7f --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/readme.md @@ -0,0 +1,32 @@ +## Blackbaud Raiser's Edge NXT Prospects Connector + +[Raiser's Edge NXT](https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt) is a comprehensive cloud-based fundraising and donor management software solution built specifically for nonprofits and the entire social good community. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to help manage prospects and related entities found within The Raiser's Edge NXT, including: +* Prospects +* Opportunities +* Ratings +* and more... + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file diff --git a/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/script.csx b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/script.csx new file mode 100644 index 0000000000..8006ad04e2 --- /dev/null +++ b/certified-connectors/Blackbaud Raiser's Edge NXT Prospects/script.csx @@ -0,0 +1,55 @@ +public class Script : ScriptBase +{ + public override async Task ExecuteAsync() + { + switch (this.Context.OperationId) + { + case "ListOpportunityCustomFields": + return await this.HandleListCustomFieldOperation().ConfigureAwait(false); + } + + var response = new HttpResponseMessage(HttpStatusCode.BadRequest); + response.Content = CreateJsonContent($"Unhandled operation ID '{this.Context.OperationId}'"); + return response; + } + + private async Task HandleListCustomFieldOperation() + { + // make the API request to the SKY API backend + var response = await this.Context.SendAsync(this.Context.Request, this.CancellationToken).ConfigureAwait(continueOnCapturedContext: false); + + // if the call to the backend is successful, transform the response items + if (response.IsSuccessStatusCode) + { + // get the response string, convert it to a JObject, and then look at the "value" property (which will be the array of custom fields) + var responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(continueOnCapturedContext: false); + var result = JObject.Parse(responseString); + var value = result["value"] as JArray; + + // if the array contains any items, append a new bespoke xxx_value property to each item + if (value?.Count() > 0) + { + foreach (var cf in value) + { + // only append the bespoke xxx_value property if a value property is present + if (cf.SelectToken("value") != null) { + var valueField = $"{cf["type"]}_value"; + valueField = valueField.ToLowerInvariant(); + cf[valueField] = cf["value"]; + } + } + } + + // assemble the new response + var responseJson = new JObject() { + ["count"] = result["count"], + ["value"] = value + }; + + // set the new response content + response.Content = CreateJsonContent(responseJson.ToString()); + } + + return response; + } +} \ No newline at end of file From 62c40f6484aa7107d2c999c7954cbb12a3299103 Mon Sep 17 00:00:00 2001 From: Ben Lambert Date: Mon, 3 Jan 2022 18:59:19 -0500 Subject: [PATCH 204/219] adding Blackbaud SKY Add-ins connector (#1298) --- .../apiDefinition.swagger.json | 148 ++++++++++++++++++ .../Blackbaud SKY Add-ins/apiProperties.json | 46 ++++++ .../Blackbaud SKY Add-ins/readme.md | 28 ++++ 3 files changed, 222 insertions(+) create mode 100644 certified-connectors/Blackbaud SKY Add-ins/apiDefinition.swagger.json create mode 100644 certified-connectors/Blackbaud SKY Add-ins/apiProperties.json create mode 100644 certified-connectors/Blackbaud SKY Add-ins/readme.md diff --git a/certified-connectors/Blackbaud SKY Add-ins/apiDefinition.swagger.json b/certified-connectors/Blackbaud SKY Add-ins/apiDefinition.swagger.json new file mode 100644 index 0000000000..abc032e5c6 --- /dev/null +++ b/certified-connectors/Blackbaud SKY Add-ins/apiDefinition.swagger.json @@ -0,0 +1,148 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Blackbaud SKY Add-ins", + "description": "Use the SKY Add-ins connector to validate user identity tokens issued by the Blackbaud Host application.", + "contact": { + "name": "Blackbaud Support", + "url": "https://www.blackbaud.com/support", + "email": "skyapi@blackbaud.com" + }, + "x-ms-api-annotation": { + "status": "Preview" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.blackbaud.com/products/blackbaud-raisers-edge-nxt" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.blackbaud.com/privacy-shield" + }, + { + "propertyName": "Categories", + "propertyValue": "Sales and CRM;Productivity" + } + ], + "host": "api.sky.blackbaud.com", + "basePath": "/", + "schemes": [ + "https" + ], + "securityDefinitions": { + "skyApiOAuth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://oauth2.sky.blackbaud.com/authorization", + "tokenUrl": "https://oauth2.sky.blackbaud.com/token", + "scopes": {} + } + }, + "security": [ + { + "skyApiOAuth": [] + } + ], + "paths": { + "/powerautomateui/v1/useridentitytoken/validate": { + "post": { + "operationId": "ValidateUserIdentityToken", + "summary": "Validate a user identity token", + "description": "Validates a user identity token.", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "body", + "in": "body", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.ValidateUserIdentityTokenRequest" + }, + "description": "An object that contains the user identity token to validate.", + "required": true + } + ], + "responses": { + "200": { + "description": "Returned when the operation successfully validates the user identity token.", + "schema": { + "$ref": "#/definitions/PowerAutomateUIApi.ValidateUserIdentityTokenResponse" + } + }, + "400": { + "description": "Returned when the request body is not in the appropriate format." + }, + "401": { + "description": "Returned when the user identity token is invalid or has expired." + } + } + } + } + }, + "definitions": { + "PowerAutomateUIApi.ValidateUserIdentityTokenRequest": { + "type": "object", + "description": "The user identity token to validate", + "required": [ + "uit", + "application_id" + ], + "properties": { + "uit": { + "type": "string", + "description": "The user identity token string.", + "x-ms-summary": "User identity token" + }, + "application_id": { + "type": "string", + "format": "uuid", + "description": "The expected SKY application identifier to which the user identity token was issued.", + "x-ms-summary": "Application ID" + } + } + }, + "PowerAutomateUIApi.ValidateUserIdentityTokenResponse": { + "type": "object", + "description": "The user identity token details", + "properties": { + "user_id": { + "type": "string", + "description": "The Blackbaud user's identifier.", + "x-ms-summary": "User ID" + }, + "email": { + "type": "string", + "description": "The Blackbaud user's email address.", + "x-ms-summary": "Email" + }, + "family_name": { + "type": "string", + "description": "The Blackbaud user's last name.", + "x-ms-summary": "Last name" + }, + "given_name": { + "type": "string", + "description": "The Blackbaud user's first name.", + "x-ms-summary": "First name" + }, + "application_id": { + "type": "string", + "description": "The identifier of the SKY application to which the user identity token was issued.", + "x-ms-summary": "SKY application ID" + }, + "environment_id": { + "type": "string", + "description": "The current environment identifier.", + "x-ms-summary": "Environment ID" + } + } + } + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud SKY Add-ins/apiProperties.json b/certified-connectors/Blackbaud SKY Add-ins/apiProperties.json new file mode 100644 index 0000000000..cfd4d6b107 --- /dev/null +++ b/certified-connectors/Blackbaud SKY Add-ins/apiProperties.json @@ -0,0 +1,46 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "PLACEHOLDER_CLIENTID", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://oauth2.sky.blackbaud.com/authorization" + }, + "tokenUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + }, + "refreshUrl": { + "value": "https://oauth2.sky.blackbaud.com/token" + } + } + } + } + }, + "iconBrandColor": "#71BF43", + "capabilities": [], + "policyTemplateInstances": [ + { + "templateId": "setheader", + "title": "SKY API Subscription Key", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bb-Api-Subscription-Key", + "x-ms-apimTemplateParameter.value": "PLACEHOLDER_API_KEY", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } + } + ], + "publisher": "Blackbaud, Inc.", + "stackOwner": "Blackbaud, Inc." + } +} \ No newline at end of file diff --git a/certified-connectors/Blackbaud SKY Add-ins/readme.md b/certified-connectors/Blackbaud SKY Add-ins/readme.md new file mode 100644 index 0000000000..46960be549 --- /dev/null +++ b/certified-connectors/Blackbaud SKY Add-ins/readme.md @@ -0,0 +1,28 @@ +## Blackbaud SKY Add-ins Connector + +[Blackbaud](https://www.blackbaud.com) is the world's leading cloud software company powering social good. + +This connector is built on top of Blackbaud's [SKY API](https://developer.blackbaud.com/skyapi), and provides operations to facilitate working with SKY Add-ins. + +## API Documentation +https://developer.blackbaud.com/skyapi + +## Pre-requisites +To create a custom version of this connector, you will need to: +* [Sign in](https://signin.blackbaud.com) (or create) a Blackbaud ID. +* [Sign up](https://developer.blackbaud.com/signup) for a developer account using your Blackbaud ID. +* Request a [subscription](https://developer.blackbaud.com/subscriptions) to the SKY API to get an API key (will be used in the next steps). +* Register an [application](https://developer.blackbaud.com/apps) to get OAuth client ID/secret credentials (will be used in the next steps). + +## Configure the connector properties +Using the values obtained in the previous step, update the following placeholder values in the `apiProperties.json` file: +* PLACEHOLDER_CLIENTID +* PLACEHOLDER_API_KEY + +## Deployment instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as a custom connector within Microsoft Power Automate and Power Apps. + +Don't forget to specify the `--secret ` value (obtained in the previous steps) when running the `paconn create` commamnd. + +## Further Support +For further support, please visit our developer community at https://community.blackbaud.com/developer \ No newline at end of file From 9e7d922d78112799cc4165abcc74e0ca10393f97 Mon Sep 17 00:00:00 2001 From: dox42diegoschleis <75990384+dox42diegoschleis@users.noreply.github.com> Date: Tue, 4 Jan 2022 01:08:11 +0100 Subject: [PATCH 205/219] Implement old connector logic (#1304) * Add dox42 Custom Connector to certified-connectors folder * Change description of the dox42 Connectorf Make slight adjustment in the README.md * Change Host URL to more generic URL * Make some parameters mandatory to prevent potential errors * Revert connector to old logic Co-authored-by: Diego Schleis --- .../dox42/apiDefinition.swagger.json | 22 +------ certified-connectors/dox42/apiProperties.json | 57 ++++++++++++------- 2 files changed, 39 insertions(+), 40 deletions(-) diff --git a/certified-connectors/dox42/apiDefinition.swagger.json b/certified-connectors/dox42/apiDefinition.swagger.json index 6e1cf021f8..9fba574396 100644 --- a/certified-connectors/dox42/apiDefinition.swagger.json +++ b/certified-connectors/dox42/apiDefinition.swagger.json @@ -46,15 +46,6 @@ "description": "Service call query string", "x-ms-summary": "Query portion of the desired dox42 service call" }, - { - "name": "token", - "in": "header", - "required": true, - "type": "string", - "default": "Bearer XXXXXXXX, or just XXXXXXXXXXXX", - "description": "Bearer Access Token for Azure AD Authentication", - "x-ms-summary": "Bearer Access Token" - }, { "name": "accept", "in": "header", @@ -71,18 +62,7 @@ "definitions": {}, "parameters": {}, "responses": {}, - "securityDefinitions": { - "API Key": { - "type": "apiKey", - "in": "header", - "name": "authorization" - } - }, - "security": [ - { - "API Key": [] - } - ], + "securityDefinitions": {}, "tags": [], "x-ms-connector-metadata": [ { diff --git a/certified-connectors/dox42/apiProperties.json b/certified-connectors/dox42/apiProperties.json index 448b9fb734..faa63e2fbc 100644 --- a/certified-connectors/dox42/apiProperties.json +++ b/certified-connectors/dox42/apiProperties.json @@ -1,16 +1,42 @@ { "properties": { "connectionParameters": { - "api_key": { - "type": "securestring", + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "aad", + "clientId": "", + "scopes": [ + "" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "AzureActiveDirectoryResourceId": "" + }, + "customParameters": { + "loginUri": { + "value": "https://login.windows.net" + }, + "tenantId": { + "value": "common" + }, + "resourceUri": { + "value": "" + } + } + } + }, + "token:TenantId": { + "type": "string", + "metadata": { + "sourceType": "AzureActiveDirectoryTenant" + }, "uiDefinition": { - "displayName": "Bearer Access Token", - "description": "Bearer access or ID token for Azure AD authentication", - "tooltip": "This can be left empty since the token is overwritten via a policy later", "constraints": { - "tabIndex": 2, - "clearText": false, - "required": false + "required": "false", + "hidden": "true" } } } @@ -22,17 +48,10 @@ "templateId": "dynamichosturl", "title": "Define dox42 Service URL", "parameters": { - "x-ms-apimTemplateParameter.urlTemplate": "https://@headers('domainname')/dox42RestService.ashx?@queryParameters('querystring')" - } - }, - { - "templateId": "setheader", - "title": "Set Bearer Access Token", - "parameters": { - "x-ms-apimTemplateParameter.name": "Authorization", - "x-ms-apimTemplateParameter.value": "@headers('token')", - "x-ms-apimTemplateParameter.existsAction": "override", - "x-ms-apimTemplate-policySection": "Request" + "x-ms-apimTemplateParameter.urlTemplate": "https://@headers('domainname')/dox42RestService.ashx?@queryParameters('querystring')", + "x-ms-apimTemplate-operationName": [ + "dox42_Call" + ] } } ], From 059240580860bd779a96fdbe3a4cb4613632ec2f Mon Sep 17 00:00:00 2001 From: mingji1994 <89219897+mingji1994@users.noreply.github.com> Date: Mon, 3 Jan 2022 17:16:13 -0800 Subject: [PATCH 206/219] Remove "/host/" from path (#1314) * Move hostUrl from connection parameter to operation parameter * Move hostUrl from "path" to "header" Move hostUrl from path to header, also change connectorParameters to headers. * Remove "/host/" from path * Update path --- .../apiDefinition.swagger.json | 140 ++---------------- 1 file changed, 14 insertions(+), 126 deletions(-) diff --git a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json index b4339a75c4..564b78ab31 100644 --- a/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json +++ b/certified-connectors/Dynamics365FraudProtection/apiDefinition.swagger.json @@ -28,7 +28,7 @@ } ], "paths": { - "/host/{hostUrl}/v1.0/action/account/create/": { + "/v1.0/action/account/create/": { "post": { "tags": [ "AccountProtection_v1" @@ -43,14 +43,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -229,7 +221,7 @@ } } }, - "/host/{hostUrl}/v1.0/observe/account/create/status/": { + "/v1.0/observe/account/create/status/": { "post": { "tags": [ "AccountProtection_v1" @@ -244,14 +236,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -352,7 +336,7 @@ } } }, - "/host/{hostUrl}/v1.0/action/account/login/": { + "/v1.0/action/account/login/": { "post": { "tags": [ "AccountProtection_v1" @@ -367,14 +351,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -549,7 +525,7 @@ } } }, - "/host/{hostUrl}/v1.0/observe/account/login/status/": { + "/v1.0/observe/account/login/status/": { "post": { "tags": [ "AccountProtection_v1" @@ -564,14 +540,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -672,7 +640,7 @@ } } }, - "/host/{hostUrl}/v1.0/observe/account/update/{UserId}": { + "/v1.0/observe/account/update/{UserId}": { "post": { "tags": [ "AccountProtection_v1" @@ -695,14 +663,6 @@ "type": "string", "x-ms-summary": "hosturl" }, - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "path", "name": "UserId", @@ -803,7 +763,7 @@ } } }, - "/host/{hostUrl}/v1.0/label/account/create/{UserId}": { + "/v1.0/label/account/create/{UserId}": { "post": { "tags": [ "AccountProtection_v1" @@ -826,14 +786,6 @@ "type": "string", "x-ms-summary": "hosturl" }, - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "path", "name": "UserId", @@ -934,7 +886,7 @@ } } }, - "/host/{hostUrl}/v1.0/action/assessment/{assessment-api-name}": { + "/v1.0/action/assessment/{assessment-api-name}": { "post": { "tags": [ "Assessment_v1" @@ -957,14 +909,6 @@ "type": "string", "x-ms-summary": "hosturl" }, - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "path", "name": "assessment-api-name", @@ -1093,7 +1037,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/BankEvent": { + "/v1.0/merchantservices/events/BankEvent": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1108,14 +1052,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1213,7 +1149,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/Chargeback": { + "/v1.0/merchantservices/events/Chargeback": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1228,14 +1164,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1333,7 +1261,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/Label": { + "/v1.0/merchantservices/events/Label": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1348,14 +1276,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1453,7 +1373,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/Purchase": { + "/v1.0/merchantservices/events/Purchase": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1468,14 +1388,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1614,7 +1526,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/PurchaseStatus": { + "/v1.0/merchantservices/events/PurchaseStatus": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1629,14 +1541,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1734,7 +1638,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/Refund": { + "/v1.0/merchantservices/events/Refund": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1749,14 +1653,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", @@ -1854,7 +1750,7 @@ } } }, - "/host/{hostUrl}/v1.0/merchantservices/events/UpdateAccount": { + "/v1.0/merchantservices/events/UpdateAccount": { "post": { "tags": [ "PurchaseProtection_v1" @@ -1869,14 +1765,6 @@ "application/json" ], "parameters": [ - { - "in": "path", - "name": "hostUrl", - "description": "host url", - "required": true, - "type": "string", - "x-ms-summary": "hosturl" - }, { "in": "header", "name": "hostUrl", From eaa589b8cbfc02a96cbe56161f6e8e1ecf462430 Mon Sep 17 00:00:00 2001 From: LukeMcGovern-UL <88452508+LukeMcGovern-UL@users.noreply.github.com> Date: Tue, 4 Jan 2022 01:16:56 +0000 Subject: [PATCH 207/219] Ia connect dynamiccode (#1315) * Uploading IA-Connect Dynamic Code connector for certification * Updated IA-Connect Dynamic Code definition for release 9.1 --- .../apiDefinition.swagger.json | 2092 ++++++++++++++++- .../apiProperties.json | 10 + 2 files changed, 2097 insertions(+), 5 deletions(-) diff --git a/certified-connectors/IA-Connect Dynamic Code/apiDefinition.swagger.json b/certified-connectors/IA-Connect Dynamic Code/apiDefinition.swagger.json index d4157c83fa..9e96c35673 100644 --- a/certified-connectors/IA-Connect Dynamic Code/apiDefinition.swagger.json +++ b/certified-connectors/IA-Connect Dynamic Code/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "IA-Connect Dynamic Code", "description": "IA-Connect is a Robotic Process Automation (RPA) platform which adds RPA functionality from the Cloud to on-premises virtual machines or over Citrix or Microsoft Remote Desktop (RDS) connections. This is the module for developing dynamic code modules.", - "version": "9.0", + "version": "9.1", "contact": { "name": "Ultima Labs", "url": "https://www.ultima.com/ultima-labs", @@ -309,12 +309,13 @@ "properties": { "PowerShellScriptContents": { "type": "string", - "title": "PowerShell script contents" + "title": "PowerShell script contents", + "description": "The contents of the PowerShell script to execute. IA-Connect will execute this script as-is by passing directly to the PowerShell automation engine. No PowerShell script is actually created on-disk." }, "ComputerName": { "type": "string", "title": "Computer name", - "description": "The name of the computer to run the PowerShell script on. If left blank, the script will be ran on the computer where the IA-Connect Agent is running." + "description": "The name of the computer to run the PowerShell script on. If left blank, the script will be run on the computer where the IA-Connect Agent is running." }, "IsNoResultAnError": { "type": "boolean", @@ -354,7 +355,15 @@ "AuthenticationMechanism": { "type": "string", "title": "Authentication mechanism", - "description": "The authentication mechanism to be used if connecting to a remote computer or running the script as an alternative user. Supported values are 'Basic', 'Credssp', 'Default', 'Digest', 'Kerberos' and 'Negotiate'." + "description": "The authentication mechanism to be used if connecting to a remote computer or running the script as an alternative user. Supported values are 'Basic', 'Credssp', 'Default', 'Digest', 'Kerberos' and 'Negotiate'.", + "enum": [ + "Basic", + "Credssp", + "Default", + "Digest", + "Kerberos", + "Negotiate" + ] }, "ConnectionAttempts": { "type": "integer", @@ -397,7 +406,7 @@ "properties": { "PowerShellJSONOutput": { "type": "string", - "title": "Powershell output JSON", + "title": "PowerShell output JSON", "description": "The output of the PowerShell script, formatted as JSON." } } @@ -406,6 +415,2079 @@ }, "operationId": "RunPowerShellAutomationScript" } + }, + "/DynamicCode/CreateJSONFromInputVariables": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Create JSON from input variables", + "description": "Takes an array of input variables and returns in JSON format and optionally as a JSON table.", + "parameters": [ + { + "in": "body", + "name": "CreateJSONFromInputVariables", + "description": "Inputs for IA-Connect CreateJSONFromInputVariables action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputVariables": { + "type": "array", + "title": "Input variables", + "description": "An input array of variable names, their data type and their values.", + "items": { + "type": "object", + "properties": { + "PropertyName": { + "type": "string", + "title": "Property name" + }, + "DataType": { + "type": "string", + "title": "Property data type", + "default": "String", + "enum": [ + "String", + "Integer", + "Float", + "Boolean" + ] + }, + "Value": { + "type": "string", + "title": "Property value" + } + } + } + }, + "ReturnAsJSONTable": { + "type": "boolean", + "default": true, + "title": "Return as JSON table", + "description": "If set to true, the JSON will be returned in a table / datatable format (i.e. in the format [{}]). If set to false, the JSON will be returned as a single entity (i.e. in the format {}). Which format to use depends on what you are doing with the JSON. Most IA-Connect actions expect datatable format." + } + }, + "required": [ + "InputVariables", + "ReturnAsJSONTable" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSON": { + "type": "string", + "title": "Output JSON", + "description": "The variables and their values encoded in JSON format." + } + } + } + } + }, + "operationId": "CreateJSONFromInputVariables" + } + }, + "/DynamicCode/GetJSONTableFromStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get JSON table from string array", + "description": "Takes an input array of string items and returns as a JSON table.", + "parameters": [ + { + "in": "body", + "name": "GetJSONTableFromStringArray", + "description": "Inputs for IA-Connect GetJSONTableFromStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The name to use for the table column." + }, + "DropEmptyItems": { + "type": "boolean", + "default": false, + "title": "Drop empty items", + "description": "Set to true to ignore (drop) empty items in the array. Set to false to include all items." + } + }, + "required": [ + "InputArray", + "ColumnName" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table (should always be 1)." + } + } + } + } + }, + "operationId": "GetJSONTableFromStringArray" + } + }, + "/DynamicCode/FilterJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Filter JSON table", + "description": "Takes an input JSON table, filters the table (using .NET DataView rowfilter syntax) and returns a new JSON table. If you want to filter an actual table (i.e. not in JSON format), use the action 'Filter table'. If you want to filter a string array, use the action 'Filter string array'.", + "parameters": [ + { + "in": "body", + "name": "FilterJSONTable", + "description": "Inputs for IA-Connect FilterJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "Filter": { + "type": "string", + "title": "Filter", + "description": "The filter in .NET DataView rowfilter syntax. For example: [Name] like '*Element'." + }, + "SortColumnName": { + "type": "string", + "title": "Sort column name", + "description": "An optional column name to sort by, after applying the filter. If you wish to sort by multiple columns then list the columns comma separated." + }, + "Ascending": { + "type": "boolean", + "default": true, + "title": "Sort ascending", + "description": "Set to true to sort in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName2": { + "type": "string", + "title": "Sort column name 2", + "description": "An optional second column name to sort by (after sorting by the first column)." + }, + "Ascending2": { + "type": "boolean", + "default": true, + "title": "Sort ascending 2", + "description": "Set to true to sort the second column name in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName3": { + "type": "string", + "title": "Sort column name 3", + "description": "An optional third column name to sort by (after sorting by the first and second columns)." + }, + "Ascending3": { + "type": "boolean", + "default": true, + "title": "Sort ascending 3", + "description": "Set to true to sort the third column name in an ascending order. Set to false to sort in a descending order." + } + }, + "required": [ + "JSONTable", + "Filter" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "FilterJSONTable" + } + }, + "/DynamicCode/FilterTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Filter table", + "description": "Takes an input table, filters the table (using .NET DataView rowfilter syntax) and returns a new table. If you want to filter a table in JSON format, use the action 'Filter JSON table'. If you want to filter a string array, use the action 'Filter string array'.", + "parameters": [ + { + "in": "body", + "name": "FilterTable", + "description": "Inputs for IA-Connect FilterTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "Filter": { + "type": "string", + "title": "Filter", + "description": "The filter in .NET DataView rowfilter syntax. For example: [Name] like '*Element'." + }, + "SortColumnName": { + "type": "string", + "title": "Sort column name", + "description": "An optional column name to sort by, after applying the filter. If you wish to sort by multiple columns then list the columns comma separated." + }, + "Ascending": { + "type": "boolean", + "default": true, + "title": "Sort ascending", + "description": "Set to true to sort in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName2": { + "type": "string", + "title": "Sort column name 2", + "description": "An optional second column name to sort by (after sorting by the first column)." + }, + "Ascending2": { + "type": "boolean", + "default": true, + "title": "Sort ascending 2", + "description": "Set to true to sort the second column name in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName3": { + "type": "string", + "title": "Sort column name 3", + "description": "An optional third column name to sort by (after sorting by the first and second columns)." + }, + "Ascending3": { + "type": "boolean", + "default": true, + "title": "Sort ascending 3", + "description": "Set to true to sort the third column name in an ascending order. Set to false to sort in a descending order." + } + }, + "required": [ + "InputTable", + "Filter" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "FilterTable" + } + }, + "/DynamicCode/SortTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Sort table", + "description": "Takes an input table, sorts one or more rows and returns a new table. If you want to sort a table in JSON format, use the action 'Sort JSON table'. If you want to sort a string array, use the action 'Sort string array'.", + "parameters": [ + { + "in": "body", + "name": "SortTable", + "description": "Inputs for IA-Connect SortTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "SortColumnName": { + "type": "string", + "title": "Sort column name", + "description": "The column name to sort by. If you wish to sort by multiple columns then list the columns comma separated." + }, + "Ascending": { + "type": "boolean", + "default": true, + "title": "Sort ascending", + "description": "Set to true to sort in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName2": { + "type": "string", + "title": "Sort column name 2", + "description": "An optional second column name to sort by (after sorting by the first column)." + }, + "Ascending2": { + "type": "boolean", + "default": true, + "title": "Sort ascending 2", + "description": "Set to true to sort the second column name in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName3": { + "type": "string", + "title": "Sort column name 3", + "description": "An optional third column name to sort by (after sorting by the first and second columns)." + }, + "Ascending3": { + "type": "boolean", + "default": true, + "title": "Sort ascending 3", + "description": "Set to true to sort the third column name in an ascending order. Set to false to sort in a descending order." + } + }, + "required": [ + "InputTable", + "SortColumnName", + "Ascending" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "SortTable" + } + }, + "/DynamicCode/SortJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Sort JSON table", + "description": "Takes an input JSON table, sorts the table and returns a new JSON table. If you want to sort an actual table (i.e. not in JSON format), use the action 'Sort table'. If you want to sort a string array, use the action 'Sort string array'.", + "parameters": [ + { + "in": "body", + "name": "SortJSONTable", + "description": "Inputs for IA-Connect SortJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "SortColumnName": { + "type": "string", + "title": "Sort column name", + "description": "The column name to sort by." + }, + "Ascending": { + "type": "boolean", + "default": true, + "title": "Sort ascending", + "description": "Set to true to sort in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName2": { + "type": "string", + "title": "Sort column name 2", + "description": "An optional second column name to sort by (after sorting by the first column)." + }, + "Ascending2": { + "type": "boolean", + "default": true, + "title": "Sort ascending 2", + "description": "Set to true to sort the second column name in an ascending order. Set to false to sort in a descending order." + }, + "SortColumnName3": { + "type": "string", + "title": "Sort column name 3", + "description": "An optional third column name to sort by (after sorting by the first and second columns)." + }, + "Ascending3": { + "type": "boolean", + "default": true, + "title": "Sort ascending 3", + "description": "Set to true to sort the third column name in an ascending order. Set to false to sort in a descending order." + } + }, + "required": [ + "JSONTable", + "SortColumnName" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "SortJSONTable" + } + }, + "/DynamicCode/GetTableFromStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get table from string array", + "description": "Takes an input array of string items and returns as a table.", + "parameters": [ + { + "in": "body", + "name": "GetTableFromStringArray", + "description": "Inputs for IA-Connect GetTableFromStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The name to use for the table column." + }, + "DropEmptyItems": { + "type": "boolean", + "default": false, + "title": "Drop empty items", + "description": "Set to true to ignore (drop) empty items in the array. Set to false to include all items." + } + }, + "required": [ + "InputArray", + "ColumnName" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table (should always be 1)." + } + } + } + } + }, + "operationId": "GetTableFromStringArray" + } + }, + "/DynamicCode/GetTableFromJSON": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get table from JSON", + "description": "Takes an input table in JSON format and returns as a table. This is known as deserialization.", + "parameters": [ + { + "in": "body", + "name": "GetTableFromJSON", + "description": "Inputs for IA-Connect GetTableFromJSON action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "StartRowIndex": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Start row index", + "description": "The index of the first row to retrieve. Use 1 to start at the first row, N to start at the Nth row." + }, + "NumberOfRowsToRetrieve": { + "type": "integer", + "format": "int32", + "title": "Number of rows to retrieve", + "description": "The number of rows to retrieve. Use 0 (or leave blank) to retrieve all rows." + }, + "StartColumnIndex": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Start column index", + "description": "The index of the first column to retrieve. Use 1 to start at the first column, N to start at the Nth column. If you wish to specify the first column to retrieve by name, leave this input blank and use the input 'Start column name' instead." + }, + "StartColumnName": { + "type": "string", + "title": "Start column name", + "description": "The optional name of the first column to retrieve. If you wish to retrieve columns by index, leave this input blank and use the input 'Start column index' instead." + }, + "NumberOfColumnsToRetrieve": { + "type": "integer", + "format": "int32", + "title": "Number of columns to retrieve", + "description": "The number of columns to retrieve. Use 0 (or leave blank) to retrieve all columns." + } + }, + "required": [ + "JSONTable", + "StartRowIndex" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table (should always be 1)." + } + } + } + } + }, + "operationId": "GetTableFromJSON" + } + }, + "/DynamicCode/SortStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Sort string array", + "description": "Takes an input array of string items, sorts the array and returns a new array. If you want to sort a table, use the action 'Sort table'. If you want to sort a table in JSON format, use the action 'Sort JSON table'.", + "parameters": [ + { + "in": "body", + "name": "SortStringArray", + "description": "Inputs for IA-Connect SortStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "Ascending": { + "type": "boolean", + "default": true, + "title": "Sort ascending", + "description": "Set to true to sort in an ascending order. Set to false to sort in a descending order." + }, + "CaseSensitive": { + "type": "boolean", + "default": false, + "title": "Case sensitive", + "description": "Set to true for a case sensitive sort (i.e. upper and lower case sorted separately). Set to false for a case insensitive sort." + } + }, + "required": [ + "InputArray" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Sorted output array", + "description": "The sorted output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "SortStringArray" + } + }, + "/DynamicCode/FilterStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Filter string array", + "description": "Takes an input array of string items, filters the array (using .NET DataView rowfilter syntax) and returns a new array. If you want to filter a table, use the action 'Filter table'. If you want to filter a table in JSON format, use the action 'Filter JSON table'.", + "parameters": [ + { + "in": "body", + "name": "FilterStringArray", + "description": "Inputs for IA-Connect FilterStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The name to use for the table column holding the array during the filter operation. This name can then be used as the column name in the .NET DataView rowfilter syntax. For example MyColumn which can then be referred to as [MyColumn]." + }, + "Filter": { + "type": "string", + "title": "Filter", + "description": "The filter in .NET DataView rowfilter syntax. For example: [Name] like '*Element'." + } + }, + "required": [ + "InputArray", + "ColumnName", + "Filter" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Filtered output array", + "description": "The filtered output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "FilterStringArray" + } + }, + "/DynamicCode/InsertRowInStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Insert a row into a string array", + "description": "Takes an input array of string items, inserts a row at a specified position and returns a new array. If you want to insert a row into a table, use the action 'Insert a row into a table'. If you want to insert a row into a table in JSON format, use the action 'Insert a row into a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "InsertRowInStringArray", + "description": "Inputs for IA-Connect InsertRowInStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "RowIndex": { + "type": "integer", + "format": "int32", + "minimum": -1, + "title": "Row index", + "description": "The index of the row to insert at. Use 0 to insert at the start of the array, 1 to insert after row 1, N to insert after row N. -1 or any number equal to or higher than the number of items in the array to insert at the end of the array (useful if you don't know how long the array is)." + }, + "ValueToInsert": { + "type": "string", + "title": "Value to insert", + "description": "The string value to insert in the new row. Leave blank if you want to insert an empty row." + } + }, + "required": [ + "InputArray", + "RowIndex" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Output array", + "description": "The output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "InsertRowInStringArray" + } + }, + "/DynamicCode/InsertRowInTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Insert a row into a table", + "description": "Takes an input table, inserts a row at a specified position and returns a new table. If you want to insert a row into a string array, use the action 'Insert a row into a string array'. If you want to insert a row into a table in JSON format, use the action 'Insert a row into a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "InsertRowInTable", + "description": "Inputs for IA-Connect InsertRowInTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "RowIndex": { + "type": "integer", + "format": "int32", + "minimum": -1, + "title": "Row index", + "description": "The index of the row to insert at. Use 0 to insert at the start of the table, 1 to insert after row 1, N to insert after row N. -1 or any number equal to or higher than the number of items in the table to insert at the end of the table (useful if you don't know how long the table is)." + }, + "RowToInsertJSON": { + "type": "string", + "title": "JSON row to insert", + "description": "The contents of the row to insert in JSON format. Leave blank if you want to insert an empty row. For example: To insert 'Simon' into the column 'Name' use {\"Name\":\"Simon\"} and to additionally insert 'England' into the column 'Country' use {\"Name\":\"Simon\",\"Country\":\"England\"}." + } + }, + "required": [ + "InputTable", + "RowIndex" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "InsertRowInTable" + } + }, + "/DynamicCode/InsertRowInJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Insert a row into a JSON table", + "description": "Takes an input table in JSON format, inserts a row at a specified position and returns a new table in JSON format. If you want to insert a row into an actual table (i.e. not in JSON format), use the action 'Insert a row into a table'. If you want to insert a row into a string array, use the action 'Insert a row into a string array'.", + "parameters": [ + { + "in": "body", + "name": "InsertRowInJSONTable", + "description": "Inputs for IA-Connect InsertRowInJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "RowIndex": { + "type": "integer", + "format": "int32", + "minimum": -1, + "title": "Row index", + "description": "The index of the row to insert at. Use 0 to insert at the start of the table, 1 to insert after row 1, N to insert after row N. -1 or any number equal to or higher than the number of items in the table to insert at the end of the table (useful if you don't know how long the table is)." + }, + "RowToInsertJSON": { + "type": "string", + "title": "JSON row to insert", + "description": "The contents of the row to insert in JSON format. Leave blank if you want to insert an empty row. For example: To insert 'Simon' into the column 'Name' use {\"Name\":\"Simon\"} and to additionally insert 'England' into the column 'Country' use {\"Name\":\"Simon\",\"Country\":\"England\"}." + } + }, + "required": [ + "JSONTable", + "RowIndex" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "InsertRowInJSONTable" + } + }, + "/DynamicCode/InsertRowInJSONTableFromInputVariables": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Insert a row of input variables into a JSON table", + "description": "Takes an input table in JSON format, inserts a row created from input variables at a specified position and returns a new table in JSON format. The input row schema should match that of the input table (i.e. Use the same property names and data types). If you want to insert a row into an actual table (i.e. not in JSON format), use the action 'Insert a row into a table'. If you want to insert a string into a string array, use the action 'Insert a row into a string array'.", + "parameters": [ + { + "in": "body", + "name": "InsertRowInJSONTableFromInputVariables", + "description": "Inputs for IA-Connect InsertRowInJSONTableFromInputVariables action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "RowIndex": { + "type": "integer", + "format": "int32", + "minimum": -1, + "title": "Row index", + "description": "The index of the row to insert at. Use 0 to insert at the start of the table, 1 to insert after row 1, N to insert after row N. -1 or any number equal to or higher than the number of items in the table to insert at the end of the table (useful if you don't know how long the table is)." + }, + "RowToInsertInputVariables": { + "type": "array", + "title": "Input variables", + "description": "An input array of variable names, their data type and their values to be added as an additional row to the input table. The schema should match that of the input table (i.e. Use the same property names and data types).", + "items": { + "type": "object", + "properties": { + "PropertyName": { + "type": "string", + "title": "Property name" + }, + "DataType": { + "type": "string", + "title": "Property data type", + "default": "String", + "enum": [ + "String", + "Integer", + "Float", + "Boolean" + ] + }, + "Value": { + "type": "string", + "title": "Property value" + } + } + } + } + }, + "required": [ + "JSONTable", + "RowIndex", + "RowToInsertInputVariables" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "InsertRowInJSONTableFromInputVariables" + } + }, + "/DynamicCode/DeleteItemsInStringArray": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Delete items from a string array", + "description": "Takes an input array of string items, deletes an item or items at a specified position and returns a new array. If you want to delete a row or rows from a table, use the action 'Delete a row from a table'. If you want to delete a row or rows from a table in JSON format, use the action 'Delete a row from a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "DeleteItemsInStringArray", + "description": "Inputs for IA-Connect DeleteItemsInStringArray action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputArray": { + "type": "array", + "title": "Input array", + "description": "The input array of strings.", + "items": { + "type": "string" + } + }, + "StartItemIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Start item index", + "description": "The index of the item to start deleting at. Use 1 to delete the first item, N to delete the Nth item." + }, + "NumberOfItemsToDelete": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Number of items to delete", + "description": "The number of items to delete." + } + }, + "required": [ + "InputArray", + "StartItemIndex", + "NumberOfItemsToDelete" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Output array", + "description": "The output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "DeleteItemsInStringArray" + } + }, + "/DynamicCode/DeleteRowsInTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Delete rows from a table", + "description": "Takes an input table, deletes a row or rows at a specified position and returns a new table. If you want to delete a row or rows from a string array, use the action 'Delete a row from a string array'. If you want to delete a row or rows from a table in JSON format, use the action 'Delete a row from a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "DeleteRowsInTable", + "description": "Inputs for IA-Connect DeleteRowsInTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "StartRowIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Start row index", + "description": "The index of the row to start deleting at. Use 1 to delete the first row, N to delete the Nth row." + }, + "NumberOfRowsToDelete": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Number of rows to delete", + "description": "The number of rows to delete." + } + }, + "required": [ + "InputTable", + "StartRowIndex", + "NumberOfRowsToDelete" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "DeleteRowsInTable" + } + }, + "/DynamicCode/DeleteRowsInJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Delete rows from a JSON table", + "description": "Takes an input table in JSON format, deletes a row or rows at a specified position and returns a new table in JSON format. If you want to delete a row or rows from an actual table (i.e. not in JSON format), use the action 'Delete a row from a table'. If you want to delete a row or rows from a string array, use the action 'Delete a row from a string array'.", + "parameters": [ + { + "in": "body", + "name": "DeleteRowsInJSONTable", + "description": "Inputs for IA-Connect DeleteRowsInJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "StartRowIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Start row index", + "description": "The index of the row to start deleting at. Use 1 to delete the first row, N to delete the Nth row." + }, + "NumberOfRowsToDelete": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Number of rows to delete", + "description": "The number of rows to delete." + } + }, + "required": [ + "JSONTable", + "StartRowIndex", + "NumberOfRowsToDelete" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "DeleteRowsInJSONTable" + } + }, + "/DynamicCode/RenameColumnInTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Rename a column in a table", + "description": "Takes an input table, renames a specified column and returns a new table. If you want to rename a column from a table in JSON format, use the action 'Rename a column in a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "RenameColumnInTable", + "description": "Inputs for IA-Connect RenameColumnInTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "SourceColumnName": { + "type": "string", + "title": "Source column name", + "description": "The name of the column to rename." + }, + "NewColumnName": { + "type": "string", + "title": "New column name", + "description": "The new name for the column." + } + }, + "required": [ + "InputTable", + "SourceColumnName", + "NewColumnName" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "RenameColumnInTable" + } + }, + "/DynamicCode/RenameColumnInJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Rename a column in a JSON table", + "description": "Takes an input table in JSON format, renames a specified column and returns a new table in JSON format. If you want to rename a column from an actual table (i.e. not in JSON format), use the action 'Rename a column in a table'.", + "parameters": [ + { + "in": "body", + "name": "RenameColumnInJSONTable", + "description": "Inputs for IA-Connect RenameColumnInJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "SourceColumnName": { + "type": "string", + "title": "Source column name", + "description": "The name of the column to rename." + }, + "NewColumnName": { + "type": "string", + "title": "New column name", + "description": "The new name for the column." + } + }, + "required": [ + "JSONTable", + "SourceColumnName", + "NewColumnName" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "RenameColumnInJSONTable" + } + }, + "/DynamicCode/DeleteColumnsInTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Delete columns from a table", + "description": "Takes an input table, deletes a column or columns and returns a new table. If you want to delete columns from a table in JSON format, use the action 'Delete columns from a JSON table'.", + "parameters": [ + { + "in": "body", + "name": "DeleteColumnsInTable", + "description": "Inputs for IA-Connect DeleteColumnsInTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "StartColumnIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Start column index", + "description": "The index of the column to start deleting at. Use 1 to delete the first column, N to delete the Nth column. If you wish to delete a column by name, leave this input blank and use the input 'Column name to delete' instead." + }, + "ColumnNameToDelete": { + "type": "string", + "title": "Column name to delete", + "description": "The optional name of the column to delete. If you wish to delete a column by index, leave this input blank and use the input 'Start column index' instead." + }, + "NumberOfColumnsToDelete": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Number of columns to delete", + "description": "The number of columns to delete, starting at the specified index or name." + } + }, + "required": [ + "InputTable", + "NumberOfColumnsToDelete" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputTable": { + "type": "array", + "title": "Output table", + "description": "The output table.", + "items": { + "type": "object" + } + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "DeleteColumnsInTable" + } + }, + "/DynamicCode/DeleteColumnsInJSONTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Delete columns from a JSON table", + "description": "Takes an input table in JSON format, deletes a column or columns and returns a new table in JSON format. If you want to delete columns from a actual table (i.e. not in JSON format), use the action 'Delete columns from a table'.", + "parameters": [ + { + "in": "body", + "name": "DeleteColumnsInJSONTable", + "description": "Inputs for IA-Connect DeleteColumnsInJSONTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "StartColumnIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Start column index", + "description": "The index of the column to start deleting at. Use 1 to delete the first column, N to delete the Nth column. If you wish to delete a column by name, leave this input blank and use the input 'Column name to delete' instead." + }, + "ColumnNameToDelete": { + "type": "string", + "title": "Column name to delete", + "description": "The optional name of the column to delete. If you wish to delete a column by index, leave this input blank and use the input 'Start column index' instead." + }, + "NumberOfColumnsToDelete": { + "type": "integer", + "format": "int32", + "default": 1, + "minimum": 1, + "title": "Number of columns to delete", + "description": "The number of columns to delete, starting at the specified index or name." + } + }, + "required": [ + "JSONTable", + "NumberOfColumnsToDelete" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputJSONTable": { + "type": "string", + "title": "Output JSON table", + "description": "The output table in JSON format." + }, + "NumberOfRows": { + "type": "integer", + "format": "int32", + "title": "Number of rows", + "description": "The number of rows in the output table." + }, + "NumberOfColumns": { + "type": "integer", + "format": "int32", + "title": "Number of columns", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "DeleteColumnsInJSONTable" + } + }, + "/DynamicCode/GetStringArrayFromTableColumn": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get string array from table column", + "description": "Takes an input table and returns a specified column as a string array. If you want to get a string array from a table in JSON format, use the action 'Get array from JSON table'.", + "parameters": [ + { + "in": "body", + "name": "GetStringArrayFromTableColumn", + "description": "Inputs for IA-Connect GetStringArrayFromTableColumn action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputTable": { + "type": "array", + "title": "Input table", + "description": "The input table.", + "items": { + "type": "object" + } + }, + "ColumnIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Column index", + "description": "The index of the column to return as an array. Use 1 for the first column, N for the Nth column. If you wish to retrieve a column by name, leave this input blank and use the input 'Column name' instead." + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The optional name of the column to return as an array. If you wish to retrieve a column by index, leave this input blank and use the input 'Column index' instead." + } + }, + "required": [ + "InputTable" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Output array", + "description": "The output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "GetStringArrayFromTableColumn" + } + }, + "/DynamicCode/GetStringArrayFromJSONTableColumn": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get string array from JSON table column", + "description": "Takes an input table in JSON format and returns a specified column as a string array. If you want to get a string array from an actual table (i.e. not in JSON format), use the action 'Get array from table'.", + "parameters": [ + { + "in": "body", + "name": "GetStringArrayFromJSONTableColumn", + "description": "Inputs for IA-Connect GetStringArrayFromJSONTableColumn action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "ColumnIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Column index", + "description": "The index of the column to return as an array. Use 1 for the first column, N for the Nth column. If you wish to retrieve a column by name, leave this input blank and use the input 'Column name' instead." + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The optional name of the column to return as an array. If you wish to retrieve a column by index, leave this input blank and use the input 'Column index' instead." + } + }, + "required": [ + "JSONTable" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputArray": { + "type": "array", + "title": "Output array", + "description": "The output array of strings.", + "items": { + "type": "string" + } + }, + "NumberOfItems": { + "type": "integer", + "format": "int32", + "title": "Number of items", + "description": "The number of items in the output array." + } + } + } + } + }, + "operationId": "GetStringArrayFromJSONTableColumn" + } + }, + "/DynamicCode/GetStringFromJSONTableCell": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get string from JSON table cell", + "description": "Takes an input table in JSON format and returns a specified cell as a string.", + "parameters": [ + { + "in": "body", + "name": "GetStringFromJSONTableCell", + "description": "Inputs for IA-Connect GetStringFromJSONTableCell action", + "required": true, + "schema": { + "type": "object", + "properties": { + "JSONTable": { + "type": "string", + "title": "Input JSON table", + "description": "The input table in JSON format." + }, + "RowIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Row index", + "description": "The index of the row containing the cell to retrieve. Use 1 for the first row, N for the Nth row." + }, + "ColumnIndex": { + "type": "integer", + "format": "int32", + "minimum": 1, + "title": "Column index", + "description": "The index of the column containing the cell to retrieve. Use 1 for the first column, N for the Nth column. If you wish to retrieve a column by name, leave this input blank and use the input 'Column name' instead." + }, + "ColumnName": { + "type": "string", + "title": "Column name", + "description": "The optional name of the column containing the cell to retrieve. If you wish to retrieve a column by index, leave this input blank and use the input 'Column index' instead." + } + }, + "required": [ + "JSONTable" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "OutputString": { + "type": "string", + "title": "Output string", + "description": "The output cell contents as a string." + } + } + } + } + }, + "operationId": "GetStringFromJSONTableCell" + } + }, + "/DynamicCode/GetStringBetween": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get string between", + "description": "Takes an input string and returns the first instance of a string that is located between two specified strings or between a string and the end of the line.", + "parameters": [ + { + "in": "body", + "name": "GetStringBetween", + "description": "Inputs for IA-Connect GetStringBetween action", + "required": true, + "schema": { + "type": "object", + "properties": { + "InputString": { + "type": "string", + "title": "Input string", + "description": "The input string upon which the search is performed." + }, + "StartSearchString": { + "type": "string", + "title": "Start search string", + "description": "The start search string." + }, + "EndSearchString": { + "type": "string", + "title": "End search string", + "description": "The end search string or leave blank if searching to the end of the line." + }, + "SearchLineByLine": { + "type": "boolean", + "default": true, + "title": "Search line by line", + "description": "Set to true if you want to search the input string line by line and for the result to only contain the matching string in the current line. Set to false to treat the input string as a single item." + }, + "ThrowExceptionIfNotFound": { + "type": "boolean", + "default": true, + "title": "Throw exception if not found", + "description": "Set to true if you want an exception raised if the search string was not found, or set to false if the action should return 'String between found'=false when the search string was not found." + }, + "TrimResult": { + "type": "boolean", + "default": true, + "title": "Trim result", + "description": "Set to true if you want spaces or tabs before or after the result to be trimmed." + }, + "SearchIsRegularExpression": { + "type": "boolean", + "default": false, + "title": "Search is regular expression", + "description": "Set to true if the search strings are regular expressions. Set to false if the search strings are normal text." + }, + "CaseSensitiveSearch": { + "type": "boolean", + "default": false, + "title": "Case sensitive search", + "description": "Set to true if the search should be case sensitive. Set to false for case insensitive searches." + } + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "SearchStringFound": { + "type": "boolean", + "title": "Search string found", + "description": "If 'Throw exception if not found' is set to false then this output is set to true if the search string was found, false if not." + }, + "StringBetween": { + "type": "string", + "title": "String between", + "description": "The string found between the specified strings." + } + } + } + } + }, + "operationId": "GetStringBetween" + } } }, "definitions": {}, diff --git a/certified-connectors/IA-Connect Dynamic Code/apiProperties.json b/certified-connectors/IA-Connect Dynamic Code/apiProperties.json index 48db56a7c0..00e0130dbb 100644 --- a/certified-connectors/IA-Connect Dynamic Code/apiProperties.json +++ b/certified-connectors/IA-Connect Dynamic Code/apiProperties.json @@ -35,6 +35,16 @@ "parameters": { "x-ms-apimTemplateParameter.urlTemplate": "https://@connectionParameters('orchestratorAddress')/IAConnectRESTClient" } + }, + { + "templateId": "setheader", + "title": "Bypass-Tunnel-Reminder", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bypass-Tunnel-Reminder", + "x-ms-apimTemplateParameter.value": "true", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } } ], "publisher": "Ultima Labs", From f36dd22e627fe9e25f340c391301dabb948e9543 Mon Sep 17 00:00:00 2001 From: Joeri <32099164+Joerio@users.noreply.github.com> Date: Tue, 4 Jan 2022 20:37:21 +0100 Subject: [PATCH 208/219] Added additional (bulk) actions (#1336) Co-authored-by: Joeri Onneweer --- .../Connect2All/apiDefinition.swagger.json | 410 +++++++++++++++++- .../Connect2All/apiProperties.json | 3 +- 2 files changed, 411 insertions(+), 2 deletions(-) diff --git a/certified-connectors/Connect2All/apiDefinition.swagger.json b/certified-connectors/Connect2All/apiDefinition.swagger.json index e67c04f545..50fda2628f 100644 --- a/certified-connectors/Connect2All/apiDefinition.swagger.json +++ b/certified-connectors/Connect2All/apiDefinition.swagger.json @@ -501,7 +501,7 @@ }, "description": "Import, export and transform your Business Central data", "title": "Connect2All", - "version": "2.0" + "version": "2.1" }, "parameters": { "Company": { @@ -1535,6 +1535,67 @@ "x-ms-visibility": "internal" } }, + "/api/1.0/flowdata/delete/bulk": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Delete multiple records in Business Central", + "operationId": "DeleteDataBulk", + "parameters": [ + { + "$ref": "#/parameters/Environment" + }, + { + "$ref": "#/parameters/Company" + }, + { + "description": "An array of raw Delete Requests", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "title": "DeleteRequest", + "type": "object" + }, + "title": "DeleteRequests", + "type": "array" + }, + "x-ms-summary": "DeleteRequest", + "x-ms-visibility": "important" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "$ref": "#/responses/Unexpected" + }, + "401": { + "$ref": "#/responses/Unauthorized" + }, + "402": { + "$ref": "#/responses/InvalidLicense" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "500": { + "$ref": "#/responses/Unexpected" + } + }, + "summary": "Delete Data Bulk", + "tags": [ + "data", + "bulk" + ] + } + }, "/api/1.0/flowdata/delete/{Table}/{SystemId}": { "delete": { "consumes": [ @@ -1950,6 +2011,78 @@ ] } }, + "/api/1.0/flowdata/insert/bulk": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Insert multiple records into Business Central", + "operationId": "CreateDataBulk", + "parameters": [ + { + "$ref": "#/parameters/Environment" + }, + { + "$ref": "#/parameters/Company" + }, + { + "$ref": "#/parameters/Language" + }, + { + "description": "An array of raw Create Requests", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "title": "CreateRequest", + "type": "object" + }, + "title": "CreateRequests", + "type": "array" + }, + "x-ms-summary": "CreateRequest", + "x-ms-visibility": "important" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "items": { + "title": "System Id", + "type": "string" + }, + "title": "Responses", + "type": "array" + } + }, + "400": { + "$ref": "#/responses/Unexpected" + }, + "401": { + "$ref": "#/responses/Unauthorized" + }, + "402": { + "$ref": "#/responses/InvalidLicense" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "500": { + "$ref": "#/responses/Unexpected" + } + }, + "summary": "Insert Data Bulk", + "tags": [ + "data", + "bulk" + ] + } + }, "/api/1.0/flowdata/insert/complex": { "post": { "consumes": [ @@ -2074,6 +2207,70 @@ ] } }, + "/api/1.0/flowdata/update/bulk": { + "patch": { + "consumes": [ + "application/json" + ], + "description": "Update multiple records in Business Central", + "operationId": "UpdateDataBulk", + "parameters": [ + { + "$ref": "#/parameters/Environment" + }, + { + "$ref": "#/parameters/Company" + }, + { + "$ref": "#/parameters/Language" + }, + { + "description": "An array of raw Update Requests", + "in": "body", + "name": "body", + "required": true, + "schema": { + "items": { + "title": "UpdateRequest", + "type": "object" + }, + "title": "UpdateRequests", + "type": "array" + }, + "x-ms-summary": "UpdateRequest", + "x-ms-visibility": "important" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success" + }, + "400": { + "$ref": "#/responses/Unexpected" + }, + "401": { + "$ref": "#/responses/Unauthorized" + }, + "402": { + "$ref": "#/responses/InvalidLicense" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "500": { + "$ref": "#/responses/Unexpected" + } + }, + "summary": "Update Data Bulk", + "tags": [ + "data", + "bulk" + ] + } + }, "/api/1.0/flowdata/update/complex": { "patch": { "consumes": [ @@ -2718,6 +2915,217 @@ ] } }, + "/api/1.0/powerbi": { + "post": { + "consumes": [ + "application/json" + ], + "description": "Get data from Business Central for a table in bulk format.", + "operationId": "GetDataInBulk", + "parameters": [ + { + "$ref": "#/parameters/Environment" + }, + { + "$ref": "#/parameters/Company" + }, + { + "$ref": "#/parameters/Language" + }, + { + "default": true, + "in": "query", + "name": "useNextPageLink", + "required": true, + "type": "boolean", + "x-ms-visibility": "internal" + }, + { + "description": "Request", + "in": "body", + "name": "body", + "required": true, + "schema": { + "properties": { + "Fields": { + "description": "Select a field you want to retrieve", + "items": { + "description": "A field from the selected table", + "format": "int32", + "title": "", + "type": "integer", + "x-ms-dynamic-list": { + "itemTitlePath": "name", + "itemValuePath": "id", + "operationId": "GetFields", + "parameters": { + "Company": { + "parameterReference": "Company" + }, + "Environment": { + "parameterReference": "Environment" + }, + "Table": { + "parameterReference": "body/Table" + } + } + }, + "x-ms-dynamic-values": { + "operationId": "GetFields", + "parameters": { + "Company": { + "parameter": "Company" + }, + "Environment": { + "parameter": "Environment" + }, + "Table": { + "parameter": "Table" + } + }, + "value-path": "id", + "value-title": "name" + }, + "x-ms-summary": "Field" + }, + "type": "array", + "x-ms-summary": "Select" + }, + "Filters": { + "description": "Field with filters that will be applied when retrieving data", + "items": { + "properties": { + "Field": { + "description": "A field from the selected table", + "format": "int32", + "title": "", + "type": "integer", + "x-ms-dynamic-list": { + "itemTitlePath": "name", + "itemValuePath": "id", + "operationId": "GetFields", + "parameters": { + "Company": { + "parameterReference": "Company" + }, + "Environment": { + "parameterReference": "Environment" + }, + "Table": { + "parameterReference": "body/Table" + } + } + }, + "x-ms-dynamic-values": { + "operationId": "GetFields", + "parameters": { + "Company": { + "parameter": "Company" + }, + "Environment": { + "parameter": "Environment" + }, + "Table": { + "parameter": "Table" + } + }, + "value-path": "id", + "value-title": "name" + }, + "x-ms-summary": "Field" + }, + "Filter": { + "description": "A valid Business Central filter value", + "type": "string", + "x-ms-summary": "Filter", + "x-ms-visibility": "advanced" + } + }, + "type": "object" + }, + "type": "array", + "x-ms-summary": "Filterfields" + }, + "Table": { + "description": "TableId", + "format": "int32", + "title": "", + "type": "integer", + "x-ms-dynamic-values": { + "operationId": "GetTables", + "parameters": { + "Company": { + "parameter": "Company" + }, + "Environment": { + "parameter": "Environment" + } + }, + "value-path": "id", + "value-title": "name" + }, + "x-ms-visibility": "important" + }, + "Take": { + "default": 2, + "type": "integer" + } + }, + "type": "object" + }, + "x-ms-summary": "Request" + } + ], + "produces": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "description": "Response", + "properties": { + "nextPageLink": { + "type": "string" + }, + "value": { + "items": { + "items": {}, + "type": "array" + }, + "type": "array" + } + }, + "title": "Response", + "type": "object", + "x-ms-summary": "Response" + } + }, + "400": { + "$ref": "#/responses/Unexpected" + }, + "401": { + "$ref": "#/responses/Unauthorized" + }, + "402": { + "$ref": "#/responses/InvalidLicense" + }, + "404": { + "$ref": "#/responses/NotFound" + }, + "500": { + "$ref": "#/responses/Unexpected" + } + }, + "summary": "Get Data in bulk format", + "tags": [ + "data" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, "/api/1.0/reports": { "get": { "consumes": [ diff --git a/certified-connectors/Connect2All/apiProperties.json b/certified-connectors/Connect2All/apiProperties.json index 687940e416..4c275a4780 100644 --- a/certified-connectors/Connect2All/apiProperties.json +++ b/certified-connectors/Connect2All/apiProperties.json @@ -19,7 +19,8 @@ "identityProvider": "aad", "properties": { "AzureActiveDirectoryResourceId": "api://gac-connect2all-api", - "IsFirstParty": "False" + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": true }, "redirectMode": "Global", "redirectUrl": "https://global.consent.azure-apim.net/redirect", From 1a87fe280dc752c12bfe1be8bf32e9b66f4eff39 Mon Sep 17 00:00:00 2001 From: LukeMcGovern-UL <88452508+LukeMcGovern-UL@users.noreply.github.com> Date: Tue, 4 Jan 2022 20:07:53 +0000 Subject: [PATCH 209/219] Ia connect UI (#1317) * Uploading IA-Connect UI connector for certification * Delete icon.png Icon deleted as requested. * Updated IA-Connect UI definition for release 9.1 --- .../IA-Connect UI/apiDefinition.swagger.json | 565 +++++++++++++++++- .../IA-Connect UI/apiProperties.json | 10 + 2 files changed, 574 insertions(+), 1 deletion(-) diff --git a/certified-connectors/IA-Connect UI/apiDefinition.swagger.json b/certified-connectors/IA-Connect UI/apiDefinition.swagger.json index 8b13031912..00eddb5c78 100644 --- a/certified-connectors/IA-Connect UI/apiDefinition.swagger.json +++ b/certified-connectors/IA-Connect UI/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "IA-Connect UI", "description": "IA-Connect is a Robotic Process Automation (RPA) platform which adds RPA functionality from the Cloud to on-premises virtual machines or over Citrix or Microsoft Remote Desktop (RDS) connections. This is the module for Windows application User Interface Automation (UIA).", - "version": "9.0", + "version": "9.1", "contact": { "name": "Ultima Labs", "url": "https://www.ultima.com/ultima-labs", @@ -2893,6 +2893,12 @@ "description": "If multiple elements match the search, should 'Match index' match from the top of the sorted list (true) or from the bottom of the sorted list (false).", "x-ms-visibility": "advanced" }, + "PasswordContainsStoredPassword": { + "type": "boolean", + "default": false, + "title": "Password contains stored password", + "description": "Set to true if the password contains (or is entirely) an IA-Connect stored password identifier, in the format {IAConnectPassword:StoredPasswordIdentifier}. This stored password could have been generated by the 'Generate password' action, for example." + }, "Workflow": { "type": "string", "x-ms-visibility": "advanced", @@ -6206,6 +6212,12 @@ "description": "Should symbols in the 'Password to input' not be interpreted as special keys (e.g. + for Shift, ^ for Ctrl)? This should be set to true if you are attempting to input the actual symbols.", "x-ms-visibility": "advanced" }, + "PasswordContainsStoredPassword": { + "type": "boolean", + "default": false, + "title": "Password contains stored password", + "description": "Set to true if the password contains (or is entirely) an IA-Connect stored password identifier, in the format {IAConnectPassword:StoredPasswordIdentifier}. This stored password could have been generated by the 'Generate password' action, for example." + }, "Workflow": { "type": "string", "x-ms-visibility": "advanced", @@ -6506,6 +6518,557 @@ }, "operationId": "UIASetTransactionTimeout" } + }, + "/UIAControl/UIAGetElementAtCoordinates": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get UIA element at screen coordinates", + "description": "Returns the UIA element located at the given screen coordinates.", + "parameters": [ + { + "in": "body", + "name": "UIAGetElementAtCoordinates", + "description": "Inputs for IA-Connect UIAGetElementAtCoordinates action", + "required": true, + "schema": { + "type": "object", + "properties": { + "XCoord": { + "type": "integer", + "format": "int32", + "default": 0, + "title": "X coordinate", + "description": "The screen X coordinate value (in pixels) where the UIA element should be seached for." + }, + "YCoord": { + "type": "integer", + "format": "int32", + "default": 0, + "title": "Y coordinate", + "description": "The screen Y coordinate value (in pixels) where the UIA element should be seached for." + }, + "RaiseExceptionIfElementNotFound": { + "type": "boolean", + "default": false, + "title": "Raise exception if element not found", + "description": "Should IA-Connect raise an exception if a UIA element was not located at the specified location?" + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "ElementFound": { + "type": "boolean", + "title": "Element found", + "description": "Returns true if a UIA element was found at the specified location." + }, + "ElementHandle": { + "type": "integer", + "format": "int32", + "title": "Element handle", + "description": "The UIA handle for the element. This can be used as an input to further UIA actions acting on this element." + }, + "ElementName": { + "type": "string", + "title": "Element name", + "description": "The UIA name of the element." + }, + "ElementClassName": { + "type": "string", + "title": "Element class name", + "description": "The UIA class name of the element." + }, + "ElementAutomationId": { + "type": "string", + "title": "Element automation Id", + "description": "The UIA automation Id of the element." + }, + "ElementLocalizedControlType": { + "type": "string", + "title": "Element localized control type", + "description": "The UIA localized control type of the element." + } + } + } + } + }, + "operationId": "UIAGetElementAtCoordinates" + } + }, + "/UIAControl/UIAGetMultipleParentElementProperties": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get multiple UIA parent element properties", + "description": "Returns a hierarchal tree of parent elements of the specified element, all the way up to the desktop (root level). The parent element is defined as the element which is at the next level up the UIA 'tree' and is almost always a containing element.", + "parameters": [ + { + "in": "body", + "name": "UIAGetMultipleParentElementProperties", + "description": "Inputs for IA-Connect UIAGetMultipleParentElementProperties action", + "required": true, + "schema": { + "type": "object", + "properties": { + "ElementHandle": { + "type": "integer", + "format": "int32", + "title": "Element handle", + "description": "The UIA handle for the target element." + }, + "MaxParentsToProcess": { + "type": "integer", + "format": "int32", + "default": 50, + "title": "Max parents to process", + "description": "The maximum number of parent elements to process. By default, this is set to 50.", + "x-ms-visibility": "advanced" + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "ElementHandle", + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "UIAParentElements": { + "type": "array", + "items": { + "type": "object" + }, + "title": "UIA parent elements", + "description": "A list of all located parent elements (and their properties). The properties returned are the same as those returned by the 'Get multiple element properties' action." + }, + "NumberOfParentElementsReturned": { + "type": "integer", + "format": "int32", + "title": "Number of parent elements returned", + "description": "The number of parent elements returned from the search." + } + } + } + } + }, + "operationId": "UIAGetMultipleParentElementProperties" + } + }, + "/UIAControl/UIASearchForFirstParentElement": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Search for first UIA parent element", + "description": "Searches up the UIA tree hierarchy for the first parent element which matches the search criteria. The parent element is defined as the element which is at the next level up the UIA 'tree' and is almost always a containing element.", + "parameters": [ + { + "in": "body", + "name": "UIASearchForFirstParentElement", + "description": "Inputs for IA-Connect UIASearchForFirstParentElement action", + "required": true, + "schema": { + "type": "object", + "properties": { + "ElementHandle": { + "type": "integer", + "format": "int32", + "title": "Element handle", + "description": "The UIA handle for the target element." + }, + "SearchParentLocalizedControlType": { + "type": "string", + "title": "Search parent element localized control type", + "description": "The parent UIA element localized control type to search for. This can be discovered via Inspection." + }, + "SearchParentControlType": { + "type": "integer", + "format": "int32", + "title": "Search parent element control type", + "description": "The parent UIA element control type (an non-localized integer) to search for. This is the same value across different languages." + }, + "MaxParentsToProcess": { + "type": "integer", + "format": "int32", + "default": 50, + "title": "Max parents to process", + "description": "The maximum number of parent elements to process. By default, this is set to 50.", + "x-ms-visibility": "advanced" + }, + "RaiseExceptionIfParentElementNotFound": { + "type": "boolean", + "default": false, + "title": "Raise exception if parent element not found", + "description": "Should IA-Connect raise an exception if the search UIA element is not located?" + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "ElementHandle", + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "ParentElementFound": { + "type": "boolean", + "title": "Parent element found", + "description": "Returns true if the search parent UIA element was found." + }, + "ParentElementHandle": { + "type": "integer", + "format": "int32", + "title": "Parent element handle", + "description": "The UIA handle for the located parent element. This can be used as an input to further UIA actions acting on this element." + }, + "ParentElementName": { + "type": "string", + "title": "Parent element name", + "description": "The UIA name of the located parent element." + }, + "ParentElementClassName": { + "type": "string", + "title": "Parent element class name", + "description": "The UIA class name of the located parent element." + }, + "ParentElementAutomationId": { + "type": "string", + "title": "Parent element automation Id", + "description": "The UIA automation Id of the located parent element." + }, + "ParentElementLocalizedControlType": { + "type": "string", + "title": "Parent element localized control type", + "description": "The UIA localized control type of the located parent element." + } + } + } + } + }, + "operationId": "UIASearchForFirstParentElement" + } + }, + "/UIAControl/UIAGetMultipleElementsAsTable": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Get multiple UIA elements as table", + "description": "Enumerates the values of child elements of a specified parent element and returns in a table format. This can be used to returns 'Tables' of data which aren't technically tables.", + "parameters": [ + { + "in": "body", + "name": "UIAGetMultipleElementsAsTable", + "description": "Inputs for IA-Connect UIAGetMultipleElementsAsTable action", + "required": true, + "schema": { + "type": "object", + "properties": { + "ParentWindowHandle": { + "type": "integer", + "format": "int32", + "title": "Parent window handle", + "description": "The parent UIA window handle to act as the starting point for the search. This can be discovered via Inspection using actions like 'Wait for desktop element' or 'Wait for element'." + }, + "SearchElementName": { + "type": "string", + "title": "Search element name", + "description": "The optional UIA element name to search for (starting from the parent window handle). This can be discovered via Inspection." + }, + "SearchElementClassName": { + "type": "string", + "title": "Search element class name", + "description": "The optional UIA element class name to search for (starting from the parent window handle). This can be discovered via Inspection." + }, + "SearchElementAutomationId": { + "type": "string", + "title": "Search element automation ID", + "description": "The optional UIA element automation ID to search for (starting from the parent window handle). This can be discovered via Inspection." + }, + "SearchLocalizedControlType": { + "type": "string", + "title": "Search element localized control type", + "description": "The optional UIA element localized control type to search for (starting from the parent window handle). This can be discovered via Inspection." + }, + "SearchSubTree": { + "type": "boolean", + "default": true, + "title": "Search UIA subtree", + "description": "If set to true then the whole UIA tree below the parent window handle will be searched. This is more thorough but can take longer. If set to false, only elements directly below the parent window handle in the UIA tree will be searched." + }, + "MatchIndex": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "Match index", + "description": "If multiple elements match the search, which element (starting at 1) should be matched. Can be used in conjunction with 'Sort by column' to choose the sort order for matching.", + "x-ms-visibility": "advanced" + }, + "SearchFilter": { + "type": "string", + "title": "Search filter", + "description": "An optional advanced filter to further restrict the search using conditional operators and any element field. Example 1: [Width] < 200. Example 2: [Name] like 'Document*' AND [ClassName] like 'Label*'. See the documentation for more examples.", + "x-ms-visibility": "advanced" + }, + "SortByColumn": { + "type": "string", + "title": "Sort by column name", + "description": "If multiple elements match the search, this allows you to specify which element property to sort by. This will be used in conjunction with 'Match index' to pick the required element. For example: If 'Sort by column name' is [TopEdge] and 'Match index' is 1 then the matching element nearest the top of the screen will be matched.", + "x-ms-visibility": "advanced" + }, + "MatchIndexAscending": { + "type": "boolean", + "default": true, + "title": "Match index is ascending", + "description": "If multiple elements match the search, should 'Match index' match from the top of the sorted list (true) or from the bottom of the sorted list (false).", + "x-ms-visibility": "advanced" + }, + "SearchCellHeaderSubElementLocalizedControlType": { + "type": "string", + "title": "Search cell header subelement localized control type", + "description": "The cell header subelement localized control type to search for. Leave blank if not searching for cell headers." + }, + "SearchCellHeaderSubElementControlType": { + "type": "integer", + "format": "int32", + "title": "Search cell header subelement control type", + "description": "The cell header subelement control type (an non-localized integer) to search for. This is the same value across different languages. Leave at 0 if not searching for cell headers." + }, + "SearchCellSubElementLocalizedControlType": { + "type": "string", + "title": "Search cell subelement localized control type", + "description": "The cell subelement localized control type to search for." + }, + "SearchCellSubElementControlType": { + "type": "integer", + "format": "int32", + "title": "Search cell subelement control type", + "description": "The cell subelement control type (an non-localized integer) to search for. This is the same value across different languages." + }, + "SearchDescendantsForCellSubElements": { + "type": "boolean", + "default": true, + "title": "Search descendants for cell subelements" + }, + "FirstCellHeaderSubElementToReturn": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "First cell header subelement to return", + "description": "The index of the first cell header subelement to return, starting from 1. If you wish to return the elements in the reverse order (from the bottom of the UIA tree), you can alternatively specify a negative index starting from -1.", + "x-ms-visibility": "advanced" + }, + "MaxCellHeaderSubElementsToReturn": { + "type": "integer", + "format": "int32", + "default": 0, + "title": "Max cell header subelements to return", + "description": "The maximum number of cell header subelements to return, or 0 to return all subelements.", + "x-ms-visibility": "advanced" + }, + "FirstCellSubElementToReturn": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "First cell subelement to return", + "description": "The index of the first cell subelement to return, starting from 1. If you wish to return the elements in the reverse order (from the bottom of the UIA tree), you can alternatively specify a negative index starting from -1.", + "x-ms-visibility": "advanced" + }, + "MaxCellSubElementsToReturn": { + "type": "integer", + "format": "int32", + "default": 0, + "title": "Max cell subelements to return", + "description": "The maximum number of cell subelements to return, or 0 to return all subelements.", + "x-ms-visibility": "advanced" + }, + "RequestedNumberOfColumns": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "Requested number of columns", + "description": "The number of columns you would like in the output table. This value must be correct for the parent element being specified or you will receive unexpected results." + }, + "CellSubElementValuePriority": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "Cell subelement value priority", + "description": "The priority for using the cell subelement value as the value to use in the output table. 1 is highest priority. 2 is second priority. 3 is third priority. 0 is do not use." + }, + "CellSubElementTextValuePriority": { + "type": "integer", + "format": "int32", + "default": 2, + "title": "Cell subelement text value priority", + "description": "The priority for using the cell subelement text value as the value to use in the output table. 1 is highest priority. 2 is second priority. 3 is third priority. 0 is do not use." + }, + "CellSubElementNameValuePriority": { + "type": "integer", + "format": "int32", + "default": 3, + "title": "Cell subelement name value priority", + "description": "The priority for using the cell subelement name (common for labels) as the value to use in the output table. 1 is highest priority. 2 is second priority. 3 is third priority. 0 is do not use." + }, + "MinimumCellSubElementWidth": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "Minimum cell subelement width", + "description": "The minimum width in pixels of a cell subelement to be included in the table.", + "x-ms-visibility": "advanced" + }, + "MinimumCellSubElementHeight": { + "type": "integer", + "format": "int32", + "default": 1, + "title": "Minimum cell subelement height", + "description": "The minimum height in pixels of a cell subelement to be included in the table.", + "x-ms-visibility": "advanced" + }, + "SearchCellSubElementBoundingBoxLeft": { + "type": "integer", + "format": "int32", + "default": -99999, + "title": "Search cell subelement bounding box left", + "description": "Only include cell subelements which are fully contained within the bounding box. By default the bounding box is huge to include all elements.", + "x-ms-visibility": "advanced" + }, + "SearchCellSubElementBoundingBoxRight": { + "type": "integer", + "format": "int32", + "default": 99999, + "title": "Search cell subelement bounding box right", + "description": "Only include cell subelements which are fully contained within the bounding box. By default the bounding box is huge to include all elements.", + "x-ms-visibility": "advanced" + }, + "SearchCellSubElementBoundingBoxTop": { + "type": "integer", + "format": "int32", + "default": -99999, + "title": "Search cell subelement bounding box top", + "description": "Only include cell subelements which are fully contained within the bounding box. By default the bounding box is huge to include all elements.", + "x-ms-visibility": "advanced" + }, + "SearchCellSubElementBoundingBoxBottom": { + "type": "integer", + "format": "int32", + "default": 99999, + "title": "Search cell subelement bounding box bottom", + "description": "Only include cell subelements which are fully contained within the bounding box. By default the bounding box is huge to include all elements.", + "x-ms-visibility": "advanced" + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "ParentWindowHandle", + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "NumberOfCellSubElementsFound": { + "type": "integer", + "format": "int32", + "title": "Number of cell subelements found", + "description": "The number of cell subelements (not headers) found that match the search criteria." + }, + "NumberOfCellSubElementsReturned": { + "type": "integer", + "format": "int32", + "title": "Number of cell subelements returned", + "description": "The number of cell subelements (not headers) returned (this can be lower than the number of elements found if specifying a first or maximum number of items to return)." + }, + "TableContentsJSON": { + "type": "string", + "title": "Table contents JSON", + "description": "The table created from the multiple element contents, in JSON format." + }, + "NumberOfRowsInTable": { + "type": "integer", + "format": "int32", + "title": "Number of rows in table", + "description": "The number of rows in the output table." + }, + "NumberOfColumnsInTable": { + "type": "integer", + "format": "int32", + "title": "Number of columns in table", + "description": "The number of columns in the output table." + } + } + } + } + }, + "operationId": "UIAGetMultipleElementsAsTable" + } } }, "definitions": {}, diff --git a/certified-connectors/IA-Connect UI/apiProperties.json b/certified-connectors/IA-Connect UI/apiProperties.json index 48db56a7c0..00e0130dbb 100644 --- a/certified-connectors/IA-Connect UI/apiProperties.json +++ b/certified-connectors/IA-Connect UI/apiProperties.json @@ -35,6 +35,16 @@ "parameters": { "x-ms-apimTemplateParameter.urlTemplate": "https://@connectionParameters('orchestratorAddress')/IAConnectRESTClient" } + }, + { + "templateId": "setheader", + "title": "Bypass-Tunnel-Reminder", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bypass-Tunnel-Reminder", + "x-ms-apimTemplateParameter.value": "true", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } } ], "publisher": "Ultima Labs", From 1ba90baadc8e74566ba16859a85c9e2b4e4355fa Mon Sep 17 00:00:00 2001 From: LukeMcGovern-UL <88452508+LukeMcGovern-UL@users.noreply.github.com> Date: Tue, 4 Jan 2022 20:08:44 +0000 Subject: [PATCH 210/219] Ia connect webbrowser (#1318) * Uploading IA-Connect Web Browser connector for certification * Delete icon.png Icon deleted as requested. * Add files via upload * Delete apiDefinition.swagger.json * Delete apiProperties.json * Updated IA-Connect Web Browser definition for release 9.1 --- .../apiDefinition.swagger.json | 146 +++++++++++++++++- .../IA-Connect Web Browser/apiProperties.json | 10 ++ 2 files changed, 155 insertions(+), 1 deletion(-) diff --git a/certified-connectors/IA-Connect Web Browser/apiDefinition.swagger.json b/certified-connectors/IA-Connect Web Browser/apiDefinition.swagger.json index 9ec99c1a98..48afb44381 100644 --- a/certified-connectors/IA-Connect Web Browser/apiDefinition.swagger.json +++ b/certified-connectors/IA-Connect Web Browser/apiDefinition.swagger.json @@ -3,7 +3,7 @@ "info": { "title": "IA-Connect Web Browser", "description": "IA-Connect is a Robotic Process Automation (RPA) platform which adds RPA functionality from the Cloud to on-premises virtual machines or over Citrix or Microsoft Remote Desktop (RDS) connections. This is the module for Web Browser automation.", - "version": "9.0", + "version": "9.1", "contact": { "name": "Ultima Labs", "url": "https://www.ultima.com/ultima-labs", @@ -160,6 +160,75 @@ "operationId": "BrowserGetChromeDriverFolder" } }, + "/BrowserControl/BrowserDownloadSuitableChromeDriverFromInternet": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Download suitable ChromeDriver from Internet", + "description": "Determines which version of ChromeDriver is suitable for the installed version of Google Chrome in the session where the IA-Connect Agent is running, checks if a suitable version is already downloaded and, if not, attempts to download a suitable version from Google's ChromeDriver Internet web page.", + "parameters": [ + { + "in": "body", + "name": "BrowserDownloadSuitableChromeDriverFromInternet", + "description": "Inputs for IA-Connect BrowserDownloadSuitableChromeDriverFromInternet action", + "required": true, + "schema": { + "type": "object", + "properties": { + "ChromeBrowserEXE": { + "type": "string", + "title": "Chrome EXE path", + "description": "An optional path to the Chrome.exe, if this is not installed in the default location (or you are using a Dev or Canary version of Chrome)." + }, + "ChromeDriverDownloadParentFolder": { + "type": "string", + "title": "ChromeDriver download parent folder", + "description": "The parent folder where all ChromeDrivers are stored. Each ChromeDriver is stored in a versioned sub-folder to match the major version of Google Chrome. This folder structure will be checked for a suitable ChromeDriver and, if one is not located, one will be downloaded from the Internet into this folder." + }, + "ChromeDriverRootWebPageURL": { + "type": "string", + "default": "https://chromedriver.storage.googleapis.com/", + "title": "ChromeDriver root webpage URL", + "description": "The root web page URL beneath which all of the downloaded ChromeDrivers are available for download. This defaults to the correct root webpage for Google's ChromeDriver website but you can change this if an alternative location exists." + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "ChromeDriverDownloadParentFolder", + "ChromeDriverRootWebPageURL", + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "SuitableChromeDriverPath": { + "type": "string", + "title": "Suitable ChromeDriver path", + "description": "The path to the suitable version of ChromeDriver for the installed version of Google Chrome in the session where the Agent is running. This was either already present within the download folder or was downloaded from the Internet." + } + } + } + } + }, + "operationId": "BrowserDownloadSuitableChromeDriverFromInternet" + } + }, "/BrowserControl/IsSuitableChromeDriverAvailable": { "post": { "consumes": [ @@ -773,6 +842,75 @@ "operationId": "BrowserGetChromiumEdgeBrowserVersionFromFile" } }, + "/BrowserControl/BrowserDownloadSuitableChromiumEdgeDriverFromInternet": { + "post": { + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "summary": "Download suitable Chromium Edge driver from Internet", + "description": "Determines which version of Chromium Edge driver is suitable for the installed version of Chromium Edge browser in the session where the IA-Connect Agent is running, checks if a suitable version is already downloaded and, if not, attempts to download a suitable version from the Chromium Edge driver web page.", + "parameters": [ + { + "in": "body", + "name": "BrowserDownloadSuitableChromiumEdgeDriverFromInternet", + "description": "Inputs for IA-Connect BrowserDownloadSuitableChromiumEdgeDriverFromInternet action", + "required": true, + "schema": { + "type": "object", + "properties": { + "ChromiumEdgeBrowserEXE": { + "type": "string", + "title": "Chromium Edge EXE path", + "description": "An optional path to the msedge.exe if this is not installed in the default location (or you are using a Dev or Canary version of Chromium Edge)." + }, + "ChromiumEdgeDriverDownloadParentFolder": { + "type": "string", + "title": "Chromium Edge driver download parent folder", + "description": "The parent folder where all Chromium Edge drivers are stored or downloaded to. Each Chromium Edge driver is stored in a versioned sub-folder to match the major version of the Chromium Edge browser. This folder structure will be checked for a suitable Chromium Edge driver and, if one is not located, one will be downloaded from the Internet into this folder." + }, + "ChromiumEdgeDriverRootWebPageURL": { + "type": "string", + "default": "https://msedgewebdriverstorage.blob.core.windows.net/edgewebdriver/", + "title": "Chromium Edge driver root webpage URL", + "description": "The root web page URL beneath which all of the Chromium Edge drivers are available for download. This defaults to the correct root webpage for the Chromium Edge driver website but you can change this if an alternative location exists." + }, + "Workflow": { + "type": "string", + "x-ms-visibility": "advanced", + "default": "@{workflow()}", + "title": "Workflow", + "description": "Add the following expression here: workflow()" + } + }, + "required": [ + "ChromiumEdgeDriverDownloadParentFolder", + "ChromiumEdgeDriverRootWebPageURL", + "Workflow" + ] + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "type": "object", + "properties": { + "SuitableChromiumEdgeDriverPath": { + "type": "string", + "title": "Suitable Chromium Edge driver path", + "description": "The path to the suitable version of the Chromium Edge driver for the installed version of the Chromium Edge browser in the session where the Agent is running. This was either already present within the download folder or was downloaded." + } + } + } + } + }, + "operationId": "BrowserDownloadSuitableChromiumEdgeDriverFromInternet" + } + }, "/BrowserControl/IsSuitableChromiumEdgeDriverAvailable": { "post": { "consumes": [ @@ -8450,6 +8588,12 @@ "title": "Reset existing value", "description": "Should any existing text in the matching element be removed? By default, this is set to true." }, + "PasswordContainsStoredPassword": { + "type": "boolean", + "default": false, + "title": "Password contains stored password", + "description": "Set to true if the password contains (or is entirely) an IA-Connect stored password identifier, in the format {IAConnectPassword:StoredPasswordIdentifier}. This stored password could have been generated by the 'Generate password' action, for example." + }, "Workflow": { "type": "string", "x-ms-visibility": "advanced", diff --git a/certified-connectors/IA-Connect Web Browser/apiProperties.json b/certified-connectors/IA-Connect Web Browser/apiProperties.json index 48db56a7c0..00e0130dbb 100644 --- a/certified-connectors/IA-Connect Web Browser/apiProperties.json +++ b/certified-connectors/IA-Connect Web Browser/apiProperties.json @@ -35,6 +35,16 @@ "parameters": { "x-ms-apimTemplateParameter.urlTemplate": "https://@connectionParameters('orchestratorAddress')/IAConnectRESTClient" } + }, + { + "templateId": "setheader", + "title": "Bypass-Tunnel-Reminder", + "parameters": { + "x-ms-apimTemplateParameter.name": "Bypass-Tunnel-Reminder", + "x-ms-apimTemplateParameter.value": "true", + "x-ms-apimTemplateParameter.existsAction": "override", + "x-ms-apimTemplate-policySection": "Request" + } } ], "publisher": "Ultima Labs", From 2bea0130e387cffc9cea50c64633ec19f5ad2a48 Mon Sep 17 00:00:00 2001 From: Srihari Padmanabhan <90345666+sriharip-docusign@users.noreply.github.com> Date: Tue, 4 Jan 2022 12:09:21 -0800 Subject: [PATCH 211/219] Support adding multiple documents and specifying routing order (#1322) * FLOW-44 feature to create a net new envelope (while still supporting create envelope using template) * New action to add documents to envelope * add schema to parse add documents response as dynamic fields * backport the script changes made in prod connector to demo connector * update input param names for add document action * remove unused advanced params from add recipient action * add document operation: auto gen document id * remove base64 encoding until the errors are fixed * remove merge tags * add drop down options for selecting most commonly used document types * support for sending multi document support and setting routing order --- .../DocuSignDemo/apiDefinition.swagger.json | 40 ++++++++++++++++--- certified-connectors/DocuSignDemo/script.csx | 35 ++++++++++------ 2 files changed, 58 insertions(+), 17 deletions(-) diff --git a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json index 9cb9b601dd..e9bcf49779 100644 --- a/certified-connectors/DocuSignDemo/apiDefinition.swagger.json +++ b/certified-connectors/DocuSignDemo/apiDefinition.swagger.json @@ -587,9 +587,9 @@ "type": "string" }, { - "name": "AddRecipientToEnvelopeName", + "name": "recipientName", "in": "query", - "description": "The name of the recipient.", + "description": "Name of the recipient.", "required": true, "x-ms-summary": "Signer Name", "x-ms-test-value": "test name", @@ -597,14 +597,25 @@ "type": "string" }, { - "name": "AddRecipientToEnvelopeEmail", + "name": "recipientEmail", "in": "query", - "description": "The email of the recipient.", + "description": "Email of the recipient.", "required": true, "x-ms-summary": "Signer Email", "x-ms-test-value": "test@email.com", "x-ms-visibility": "important", "type": "string" + }, + { + "name": "additionalRecipientData", + "in": "body", + "description": "Additional recipient data.", + "required": false, + "schema": { + "$ref": "#/definitions/AdditionalRecipientData" + }, + "x-ms-summary": "Additional recipient data", + "x-ms-visibility": "advanced" } ], "responses": { @@ -1052,6 +1063,7 @@ }, "fileExtension": { "type": "string", + "enum": ["pdf", "docx", "doc", "xlsx", "xls", "jpg"], "x-ms-summary": "type *", "description": "pdf, docx etc." }, @@ -1384,6 +1396,21 @@ "value-path": "Schema/Items" } }, + "AdditionalRecipientData": { + "type": "object", + "properties": { + "routingOrder": { + "description": "The signing order of the recipient in the document.", + "type": "string", + "x-ms-summary": "Signing Order" + }, + "roleName": { + "description": "The role of the signer.", + "type": "string", + "x-ms-summary": "Role" + } + } + }, "OnEnvelopeStatusChangesResponse": { "type": "object", "properties": { @@ -1673,7 +1700,10 @@ "type": "object", "properties": { "envelopeId": { - "type": "string" + "description": "The id of the envelope.", + "type": "string", + "x-ms-summary": "Envelope Id", + "x-ms-visibility": "advanced" }, "envelopeDocuments": { "description": "The documents attached to the envelope.", diff --git a/certified-connectors/DocuSignDemo/script.csx b/certified-connectors/DocuSignDemo/script.csx index 24e3069918..9d90a074aa 100644 --- a/certified-connectors/DocuSignDemo/script.csx +++ b/certified-connectors/DocuSignDemo/script.csx @@ -256,34 +256,45 @@ public class Script : ScriptBase private JObject AddRecipientToEnvelopeBodyTransformation(JObject body) { - var signers = body["signers"] as JArray; - if (signers == null || signers.Count == 0) - { - signers = new JArray - { - new JObject(), - }; - } - + var signers = new JArray + { + new JObject(), + }; var query = HttpUtility.ParseQueryString(this.Context.Request.RequestUri.Query); - signers[0]["name"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeName")).Replace("+", " "); - signers[0]["email"] = Uri.UnescapeDataString(query.Get("AddRecipientToEnvelopeEmail")).Replace("+", " "); + signers[0]["name"] = Uri.UnescapeDataString(query.Get("recipientName")).Replace("+", " "); + signers[0]["email"] = Uri.UnescapeDataString(query.Get("recipientEmail")).Replace("+", " "); if (string.IsNullOrWhiteSpace((string)signers[0]["recipientId"])) { signers[0]["recipientId"] = Guid.NewGuid(); } + if(body["routingOrder"] != null) + { + signers[0]["routingOrder"] = body["routingOrder"]; + } + if(body["roleName"] != null) + { + signers[0]["roleName"] = body["roleName"]; + } body["signers"] = signers; return body; } + private int GenerateDocumentId() + { + DateTimeOffset now = DateTimeOffset.UtcNow; + DateTime midnight = DateTime.Now.Date; + TimeSpan ts = now.Subtract(midnight); + return (int)ts.TotalMilliseconds; + } + private JObject AddDocumentsToEnvelopeBodyTransformation(JObject body) { var documents = body["documents"] as JArray; for (var i = 0; i < documents.Count; i++) { - documents[i]["documentId"] = $"{i + 1}"; + documents[i]["documentId"] = $"{GenerateDocumentId()}"; } body["documents"] = documents; From 5063e82608cc567e0236b8516e882ab739e64815 Mon Sep 17 00:00:00 2001 From: Srikanth Yenagandhula <56276394+sriyen-msft@users.noreply.github.com> Date: Tue, 4 Jan 2022 12:50:18 -0800 Subject: [PATCH 212/219] Added templates for certified connectors (#1342) --- .../independent-publisher-icon.png | Bin .../{ => Independent Publisher}/readme.md | 0 .../apiDefinition.swagger.json | 39 ++++++++++++++++++ .../certified-connectors/apiProperties.json | 9 ++++ templates/certified-connectors/readme.md | 35 ++++++++++++++++ 5 files changed, 83 insertions(+) rename templates/{ => Independent Publisher}/independent-publisher-icon.png (100%) rename templates/{ => Independent Publisher}/readme.md (100%) create mode 100644 templates/certified-connectors/apiDefinition.swagger.json create mode 100644 templates/certified-connectors/apiProperties.json create mode 100644 templates/certified-connectors/readme.md diff --git a/templates/independent-publisher-icon.png b/templates/Independent Publisher/independent-publisher-icon.png similarity index 100% rename from templates/independent-publisher-icon.png rename to templates/Independent Publisher/independent-publisher-icon.png diff --git a/templates/readme.md b/templates/Independent Publisher/readme.md similarity index 100% rename from templates/readme.md rename to templates/Independent Publisher/readme.md diff --git a/templates/certified-connectors/apiDefinition.swagger.json b/templates/certified-connectors/apiDefinition.swagger.json new file mode 100644 index 0000000000..954012ac98 --- /dev/null +++ b/templates/certified-connectors/apiDefinition.swagger.json @@ -0,0 +1,39 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "Name of connector. Title cannot include words 'API', 'Connector', or a Power Platform product name.", + "description": "Short description of the connecting service, between 30 and 500 characters.", + "contact": { + "name": "Full name", + "url": "Contact URL", + "email": "Contact email address" + } + }, + "host": "The hostname of the API, e.g. github.com", + "basePath": "/", + "schemes": [], + "consumes": [], + "produces": [], + "paths": {}, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": {}, + "security": [], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "" + }, + { + "propertyName": "Categories", + "propertyValue": "" + } + ] +} \ No newline at end of file diff --git a/templates/certified-connectors/apiProperties.json b/templates/certified-connectors/apiProperties.json new file mode 100644 index 0000000000..dd585ab93c --- /dev/null +++ b/templates/certified-connectors/apiProperties.json @@ -0,0 +1,9 @@ +{ + "properties": { + "connectionParameters": {}, + "iconBrandColor": "", + "capabilities": [], + "publisher": "Name of company or organization.", + "stackOwner": "Name of the owner of the service or product." + } +} \ No newline at end of file diff --git a/templates/certified-connectors/readme.md b/templates/certified-connectors/readme.md new file mode 100644 index 0000000000..9f7bafa39b --- /dev/null +++ b/templates/certified-connectors/readme.md @@ -0,0 +1,35 @@ +# Title +Required. One paragraph, two to three sentences about the service and the connector​. + +## Publisher: Publisher's Name +Required. It should be the company or organization name. ​ + +## Prerequisites +Required. Any plans or licenses, tools required from the connector.​ + +## Supported Operations +Required. Describe actions, triggers, and other endpoints.​ +### Operation 1 +Description of operation 1. + +### Operation 2 +Description of operation 2. + +## Obtaining Credentials +Required. Explain the authentication method and how to get the credentials.​ + +## Getting Started +Optional. How to get started with your connector. + +## Known Issues and Limitations +Required. Include any known issues and limitations a user may encounter. + +## Frequently Asked Questions +Optional. Include frequently asked questions by your customer. +### Question 1 +Answer to question 1 +### Question 2 +Answer to question 2 + +## Deployment Instructions +Required. Add instructions on how to deploy this connector as custom connector. From 0d58c3bdc0e9a8a798e68a2cb428e4772f177147 Mon Sep 17 00:00:00 2001 From: RjImpx <72759719+RjImpx@users.noreply.github.com> Date: Wed, 5 Jan 2022 16:43:48 -0500 Subject: [PATCH 213/219] Revert OperationID for trigger update custom field value (#1344) * Update Icon brand color * Change to API Key Authentication - Changed to API key Authentication - Added policy to set host * New Action and fix responses and descriptions 1. New Action Added 2. Updated response objects, these were missing 3. Updated parameter descriptions and summary * Trying to fix merge errors Trying to fix merge errors * Fixed question mark in summary Fixed question mark in summary * Fix /api/v1/Individuals response user schema * Add /api/v1/Customers/{pageNumber} response schema, update title & summary * Add /api/v1/Individuals/{id}/Customfields response schema * Fix properties description, visibility, types * Revert "Add /api/v1/Individuals/{id}/Customfields response schema" This reverts commit b38badc049d3eaef8abc3ac5ca4917fe5ecf762c. * Update responses Title and Description * Fix Paconn Validate warnings * Fix types in OrganizationData model * Revert "Fix Warnings and types on OrganizationData Model" * Update apiDefinition.swagger.json Fix datatype bug and warnings * Added four new trigger : CommitteeMemberUpdated,PurchaseCancelled,RequestUpdated and EmailUpdated * Updated ProductPurchased Trigger description and added ref to ProductPurchasedPayload * Update apiDefinition.swagger.json fix name for emailAddress property of CustomerRequestPayload * Added punctuation and spaces between words to descriptions * Added missing Titles * Add new actions - Add new actions - Fix 'primary' field texts - Multiple fixes * Fix "Cancelled" typo * Remove references to PowerAutomate name * Update apiDefinition.swagger.json Fix format for Date type input parameters * Revert "Fix format for Date type input parameters" * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json I removed the action "List all Organization" since there are internal decisions that are needing to be made. * Next 5 Actions * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * PR 3 References: (8) PhoneDataset PhoneSaveData EventData MembershipData CustomFieldData CommitteeMemberData RegistrationData RelationshipData Actions: (10) Get All Events Get Organization Active Memberships Get Organization Custom Field Values Get Committee Information for an Individual Add Phone to Individual Get Individual Active Memberships Get All Event Registrations Information for an Individual Get Individual's Relationships Update an Individual Email Save Relationship for Organization * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json got it to validate successfully, but has warnings of similar paths. * Update apiDefinition.swagger.json * Add files via upload * Delete apiDefinition.swagger.json * Update apiDefinition.swagger.json Made changes, waiting for verdict on response schema for Add or Update a list of Custom Fields Per Individual, on whether to keep empty, troubleshoot, or omit from PR * Update apiDefinition.swagger.json * Microsoft Pull Request Changes Indentation changes and Removal of Empty response Schema. * Update apiDefinition.swagger.json * Used JSON Beautifier as suggested * JSON Beautifier to have same format as Microsoft-PR * Removed Schema * Update apiDefinition.swagger.json * PR5 Actions: Delete an Individual Web Link Add Web Link for Individual Add Phone to Organization Update Phone for an Organization Update Phone for an Individual Get a List of All Services of an Organization Add a Service to an Organization Find Members (Individuals) by Name Get a List of Licenses List All Awards References: RelationshipSaveData ServiceData LicenseData AwardData * Update apiDefinition.swagger.json * Update apiDefinition.swagger.json Actions: Get a List of Licenses Register an Individual for a Free Session Add Activity to Organization Get Individual Inactive Memberships Get List of Active Certications for an Individual Get List of Active Certications for an Organization List All Individual Members Add a New Task Add Categories for an Individual Add Notification to Individual Delete a Category for an Individual Assign Task to a User Find member (Individuals) by last name Find Members (Individuals) by first name Update User Task Progress or Mark as Completed Delete Record From Custom Data Table Get Organization Inactive Memberships List all Open Customer Request List of Customer Relationships References: RelationshipTypeData RequestData UserTaskData NotificationData SaveCategoryBasicData TaskData TaskSaveData CertificationData Activity Data SessionRegistrationData LicenseData * Add Customer.CustomFieldValueUpdated trigger * Add Customer.Merged trigger * Add Customer.RelationshipUpdated trigger * Add Customer.PhoneUpdated trigger * Add Event.Registration.Substituted trigger * Fix Customer.PhoneUpdated summary * Add Individual.RequestToBeForgotten trigger * Add Customer.AddressUpdated trigger * Add missing space to Customer.PhoneUpdated summary * Add Individual.Deleted trigger * Reorder trigger, refactor IndividualCreated parameters, fix Customer.AddressUpdated operation id * Remove enum options, make text styles consistent * Update apiDefinition.swagger.json Fix typo * Remove empty schemas, remove filters from webhooks that don't use them * Removed Blank Schema- Microsoft PR * Update-custom-field-value Co-authored-by: William Llanos Co-authored-by: Fabio Vides F <11657124+fdjvf@users.noreply.github.com> Co-authored-by: Fabio Vides F Co-authored-by: Fabio Vides F Co-authored-by: jokano12 <83984082+jokano12@users.noreply.github.com> --- certified-connectors/Impexium/apiDefinition.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/certified-connectors/Impexium/apiDefinition.swagger.json b/certified-connectors/Impexium/apiDefinition.swagger.json index fd3909182c..50cdc293fc 100644 --- a/certified-connectors/Impexium/apiDefinition.swagger.json +++ b/certified-connectors/Impexium/apiDefinition.swagger.json @@ -2160,7 +2160,7 @@ }, "summary": "Update Individual's Custom Field Value", "description": "Update Individual's Custom Field Value.", - "operationId": "Update-Individuals-Custom-Field-Value", + "operationId": "Update-custom-field-value", "parameters": [ { "name": "ID", From 24a875741853c6d0a4a3a45a354ef6c6a40e137e Mon Sep 17 00:00:00 2001 From: Joep Killaars Date: Fri, 7 Jan 2022 02:22:51 +0100 Subject: [PATCH 214/219] Added new actions/triggers (#1339) * Changed swagger definition. * Updated swagger definition. Added triggers. * Fixed parameter change error. * Adjusted swagger according to msft remarks. --- .../apiDefinition.swagger.json | 3189 +++++++++++------ 1 file changed, 2067 insertions(+), 1122 deletions(-) diff --git a/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json b/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json index 8b852a51f6..188039bffb 100644 --- a/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json +++ b/certified-connectors/AXtension Content Gate/apiDefinition.swagger.json @@ -15,562 +15,683 @@ "schemes": [ "https" ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], "paths": { - "/api/ContentEntityProperties/schema": { + "/api/businessentities/{providerReferenceId}/{externalType}/{externalId}/Requirements": { "get": { "responses": { "200": { - "description": "OK", + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "Content item requirement id." + }, + "contentEntityTemplateId": { + "type": "integer", + "format": "int32", + "description": "Content item template id." + }, + "businessEntityId": { + "type": "integer", + "format": "int32", + "description": "Business entity id." + }, + "status": { + "type": "integer", + "format": "int32", + "description": "Status." + }, + "createdOn": { + "type": "string", + "description": "Created on" + }, + "createdBy": { + "type": "string", + "description": "Created By" + } + } + } + } + } + }, + "summary": "List content item requirements", + "description": "Lists the content item requirements", + "operationId": "List-Content-Entity-Requirements", + "parameters": [ + { + "name": "providerReferenceId", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity connector.", + "x-ms-summary": "Business entity connector", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } + }, + { + "name": "externalType", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity type.", + "x-ms-summary": "Business entity type", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" + } + } + } + }, + { + "name": "externalId", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity identifier.", + "x-ms-summary": "Business entity identifier", + "x-ms-url-encoding": "single" + } + ] + }, + "post": { + "responses": { + "200": { + "description": "default" + } + }, + "summary": "Create content item requirements", + "description": "Creates content item requirements based on a template group.", + "operationId": "Create-Content-Entity-Requirements", + "parameters": [ + { + "name": "providerReferenceId", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity connector.", + "x-ms-summary": "Business entity connector", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } + }, + { + "name": "externalType", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity type.", + "x-ms-summary": "Business entity type", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" + } + } + } + }, + { + "name": "externalId", + "in": "path", + "required": true, + "type": "string", + "description": "The external identifier of the business entity.", + "x-ms-summary": "Business entity identifier", + "x-ms-url-encoding": "single" + }, + { + "name": "body", + "in": "body", + "required": false, "schema": { "type": "object", "properties": { - "businessEntityId": { + "ContentEntityTemplateId": { "type": "integer", "format": "int64", - "description": "The id of the business entity that the requirement was attached to.", - "title": "Business Entity Id" + "description": "The content item template.", + "title": "Content item template", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Templates", + "value-path": "id", + "value-title": "name" + } }, - "templateGroupId": { + "ContentEntityTemplateGroupId": { "type": "integer", "format": "int64", - "description": "The identifier of the template group that was used for generating requirements.", - "title": "Template Group Id" - }, - "templateGroupName": { - "type": "string", - "description": "The name of the template group.", - "title": "Template Group Name" - }, - "requirements": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "description": "The id of the requirement that was put into place.", - "title": "Id" - }, - "templateId": { - "type": "integer", - "format": "int64", - "description": "The id of the template that was added as a requirement.", - "title": "Template Id" - }, - "templateName": { - "type": "string", - "description": "The name of the template.", - "title": "Template Name" - } - } + "description": "The content item template group to base the requirements on.", + "title": "Content item template group", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Template-Groups", + "value-path": "id", + "value-title": "name" + } + } + } + } + } + ] + } + }, + "/api/businessentities/{providerReferenceId}/{externalType}/{externalId}/views": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The identifier of the view.", + "title": "Id" }, - "description": "requirements" + "apiName": { + "type": "string", + "description": "The api name of the view.", + "title": "ApiName" + }, + "name": { + "type": "string", + "description": "The name of the view.", + "title": "Name" + } } } } } }, - "summary": "Get Content Entity properties schema", - "operationId": "Get-Content-Property-Schema", - "description": "Gets the schema for the content entity properties.", + "summary": "List views business entity", + "description": "Lists all views that are usable from Power Platform for a specific business entity", + "operationId": "List-Views-Business-Entity", "x-ms-visibility": "internal", "parameters": [ { - "name": "forResults", - "in": "query", - "required": false, - "type": "boolean", - "description": "Value indicating whether or not the schema is for a result set.", - "x-ms-summary": "For Results" + "name": "providerReferenceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + }, + { + "name": "externalType", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" + }, + { + "name": "externalId", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single" } ] } }, - "/api/query/{providerReferenceId}/{externalType}/{externalId}": { + "/api/businessentitymodel": { "get": { "responses": { "200": { "description": "default", "schema": { - "type": "object", - "properties": { - "info": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The id of the view.", - "title": "Id" - }, - "name": { - "type": "string", - "description": "The name of the view.", - "title": "Name" - } + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The business entity type identifier.", + "title": "Id" }, - "description": "Information about the selected view.", - "title": "View", - "x-ms-visibility": "advanced" - }, - "data": { - "type": "object", - "properties": { - "context": { - "type": "object", - "properties": { - "businessEntityTypeId": { - "type": "integer", - "format": "int32", - "description": "The business entity type id of the root business entity.", - "title": "Type Id" - }, - "businessEntityTypeLabel": { - "type": "string", - "description": "The business entity type label of the root business entity.", - "title": "Type Label" - }, - "title": { - "type": "string", - "description": "The title of the root business entity.", - "title": "Title" - }, - "subtitle": { - "type": "string", - "description": "The subtitle of the root business entity.", - "title": "Subtitle" - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The id of the property.", - "title": "Property Id" - }, - "value": { - "type": "string", - "description": "The value of the property.", - "title": "Property Value" - } - } - }, - "description": "The properties of the root business entity.", - "title": "Properties" - }, - "links": { - "type": "array", - "items": { - "type": "object", - "properties": { - "providerReferenceId": { - "type": "string", - "description": "The provider reference id.", - "title": "Provider Reference Id" - }, - "providerType": { - "type": "string", - "description": "The business entity provider type.", - "title": "Provider Type" - }, - "directLink": { - "type": "string", - "description": "The direct link to the entity in the business entity provider system.", - "title": "Direct Link" - } - } - }, - "description": "The links to the business entity.", - "title": "Links", - "x-ms-visibility": "advanced" - }, - "contentIds": { - "type": "array", - "items": { - "type": "integer", - "format": "int32", - "title": "Content Item Id", - "description": "The id of a content item linked to the root business entity." - }, - "description": "A list of content items linked to the root business entity.", - "title": "Content Item Id's" - } + "name": { + "type": "string", + "description": "The name of the business entity type.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "The description of the business entity type.", + "title": "Description" + }, + "title": { + "type": "object", + "properties": { + "format": { + "type": "string", + "description": "format", + "title": "", + "x-ms-visibility": "internal" }, - "description": "The root business entity.", - "title": "Root Business Entity" - }, - "businessEntities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The id of the business entity.", - "title": "Id" - }, - "commonId": { - "type": "array", - "items": {}, - "description": "The shared identifier.", - "title": "Shared Identifier" - }, - "type": { - "type": "string", - "description": "The business entity type.", - "title": "Type" - }, - "typeId": { - "type": "integer", - "format": "int32", - "description": "The business entity type id.", - "title": "Type Id" - }, - "title": { - "type": "string", - "description": "The title of the business entity.", - "title": "Title" - }, - "subtitle": { - "type": "string", - "description": "The subtitle of the business entity.", - "title": "Subtitle" - }, - "references": { - "type": "array", - "items": { - "type": "object", - "properties": { - "businessEntityId": { - "type": "integer", - "format": "int32", - "description": "The internal id of the business entity.", - "title": "Internal Id" - }, - "externalId": { - "type": "string", - "description": "The external id of the business entity.", - "title": "External Id" - }, - "externalType": { - "type": "string", - "description": "The external type of the business entity.", - "title": "External Type" - }, - "providerReferenceId": { - "type": "string", - "description": "The provider reference id of the business entity.", - "title": "Provider Reference Id" - } - } - }, - "description": "The external references of the business entity.", - "title": "External References" - }, - "retrievalPath": { - "type": "array", - "items": {}, - "description": "The retrieval path of the business entity.", - "title": "Retrieval Path", - "x-ms-visibility": "advanced" - }, - "contentIds": { - "type": "array", - "items": { - "type": "integer", - "format": "int32", - "title": "Content Id" - }, - "description": "The ids of the content entities linked to this business entity.", - "title": "Content Item Id's" - } + "fields": { + "type": "array", + "items": { + "type": "string" }, - "title": "Business Entity", - "description": "A business entity linked to the root business entity." - }, - "description": "A list of business entities linked to the root business entity." + "description": "fields" + } }, - "contentEntities": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The content item id.", - "title": "Id" - }, - "title": { - "type": "string", - "description": "The title of the content item.", - "title": "Title" - }, - "fileName": { - "type": "string", - "description": "The filename of the content item.", - "title": "Filename" - }, - "fileSize": { - "type": "integer", - "format": "int32", - "description": "The file size of the content item.", - "title": "Filesize" - }, - "fileType": { - "type": "string", - "description": "The file type of the content item.", - "title": "File Type" - }, - "fileTypeDisplayName": { - "type": "string", - "description": "The friendly name of the file type of the content item.", - "title": "File Type Display Name" - }, - "fileUrl": { - "type": "string", - "description": "The file url of the content item.", - "title": "File Url" - }, - "fileVersion": { - "type": "string", - "description": "The file version of the content item.", - "title": "File Version" - }, - "categoryId": { - "type": "integer", - "format": "int32", - "description": "The category id of the content item", - "title": "Category Id" - }, - "category": { - "type": "string", - "description": "The category name of the content item.", - "title": "Category Name" - }, - "storageProviderId": { - "type": "integer", - "format": "int32", - "description": "The id of the storage provider on which the content item is stored.", - "title": "Storage Provider Id" - }, - "storageProviderName": { - "type": "string", - "description": "The name of the storage provider on which the content item is stored.", - "title": "Storage Provider Name" - }, - "storageProviderReferenceId": { - "type": "string", - "description": "The reference id of the storage provider on which the content item is stored.", - "title": "Storage Provider Reference Id" - }, - "userProperties": { - "$ref": "#/definitions/UserPropertiesResult" - }, - "createdOn": { - "type": "string", - "description": "Content item created on", - "title": "Created On" - }, - "createdBy": { - "type": "string", - "description": "Content item created by", - "title": "Created By" - }, - "permissions": { - "type": "object", - "properties": { - "read": { - "type": "boolean", - "description": "If the user has permission to read items.", - "title": "Read" - }, - "create": { - "type": "boolean", - "description": "If the user has permission to upload an item.", - "title": "Create" - }, - "update": { - "type": "boolean", - "description": "If the user has permission to update an item.", - "title": "Update" - }, - "updateContent": { - "type": "boolean", - "description": "If the user has permission to update the content of an item.", - "title": "Update Content" - }, - "delete": { - "type": "boolean", - "description": "If the user has permission to delete an item.", - "title": "Delete" - }, - "download": { - "type": "boolean", - "description": "If the user has permission to download an item.", - "title": "Download" - } - }, - "description": "The content item permissions", - "title": "Permissions", - "x-ms-visibility": "advanced" - }, - "numberOfPages": { - "type": "integer", - "format": "int32", - "description": "The number of pages", - "title": "Number Of Pages" + "description": "title" + }, + "referenceId": { + "type": "string", + "description": "The reference id to use when referring to this business entity type.", + "title": "ReferenceId" + } + } + } + } + } + }, + "summary": "List business entity types", + "description": "Lists all business entity types that are defined in the model.", + "operationId": "List-Business-Entity-Types", + "parameters": [] + } + }, + "/api/BusinessEntityModel/{businessEntityType}/views": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The identifier of the view.", + "title": "Id" + }, + "apiName": { + "type": "string", + "description": "The api name of the view.", + "title": "ApiName" + }, + "name": { + "type": "string", + "description": "The name of the view.", + "title": "Name" + } + } + } + } + } + }, + "summary": "List views", + "description": "Lists all views that are usable from Power Platform", + "operationId": "List-Views", + "parameters": [ + { + "name": "businessEntityType", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity type id or reference id.", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Types", + "value-path": "referenceId", + "value-title": "name" + }, + "x-ms-summary": "Business entity type", + "x-ms-url-encoding": "single" + } + ] + } + }, + "/api/BusinessEntityProviders": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The identifier of the business entity Connector.", + "title": "Id" + }, + "name": { + "type": "string", + "description": "The name of the business entity connector.", + "title": "Name" + }, + "providerType": { + "type": "string", + "description": "The type of the business entity connector.", + "title": "Connector type" + }, + "referenceId": { + "type": "string", + "description": "The business entity connector reference identifier.", + "title": "Reference id" + } + } + } + } + } + }, + "summary": "List business entity connectors", + "description": "Lists all configured business entity connectors.", + "operationId": "List-Business-Entity-Connectors" + } + }, + "/api/BusinessEntityProviders/{providerReferenceId}/Entities": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The identifier of the business entity type.", + "title": "Id" + }, + "name": { + "type": "string", + "description": "The business entity type name.", + "title": "Name" + }, + "description": { + "type": "string", + "description": "The description of the business entity type.", + "title": "Description" + }, + "provider": { + "type": "object", + "properties": { + "referenceId": { + "type": "string", + "description": "The reference identifier of the business entity connector.", + "title": "Provider reference id" + }, + "externalType": { + "type": "string", + "description": "The type that is used to identify the business entity type in an external system.", + "title": "External Type" + }, + "externalIdField": { + "type": "string", + "description": "Represents the field that is used in the external system to identify a business entity.", + "title": "External identifier field" + } + }, + "description": "provider" + } + } + } + } + } + }, + "summary": "List business entity provider types", + "description": "Lists all business entity types in the model", + "operationId": "List-Business-Entity-Provider-Types", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "providerReferenceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important" + } + ] + } + }, + "/api/Content": { + "post": { + "responses": { + "200": { + "description": "OK - Created" + }, + "201": { + "description": "OK - Created" + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/ExceptionResponse" + } + } + }, + "summary": "Store content", + "operationId": "Store-Content", + "description": "Adds new content to an AXtension Content Gate environment.", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "assets": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the content item that is being stored.", + "title": "Title", + "x-ms-visibility": "important" + }, + "assetType": { + "type": "string", + "description": "The type of the asset that is provided.", + "title": "Content Type", + "default": "BinaryContent", + "enum": [ + "BinaryContent", + "UriLink", + "BinaryLink" + ], + "x-ms-visibility": "important", + "x-ms-editor-options": { + "items": [ + { + "title": "File contents", + "value": "BinaryContent" }, - "changedOn": { - "type": "string", - "description": "Content item last modified on", - "title": "Last Modified On" + { + "title": "Web link (URL)", + "value": "UriLink" }, - "changedBy": { - "type": "string", - "description": "Content item last modified by", - "title": "Last Modified By" + { + "title": "Existing file (URL)", + "value": "BinaryLink" } - }, - "title": "Content Item", - "description": "A content item linked to the root business entity." - }, - "description": "A list of content items linked to the root business entity." + ] + } + }, + "content": { + "type": "string", + "description": "The URL or binary contents that are being stored.", + "title": "Content", + "format": "byte", + "x-ms-visibility": "important" + }, + "fileName": { + "type": "string", + "description": "The name of the file that is being stored.", + "title": "File Name", + "x-ms-visibility": "important" + }, + "contentType": { + "type": "string", + "description": "The mime-type of the content to store.", + "title": "Content MIME-Type", + "x-ms-visibility": "advanced" } }, - "description": "The data" + "description": "assets", + "required": [ + "assetType", + "content", + "title", + "fileName" + ] }, - "projection": { + "category": { + "type": "string", + "description": "The content category that the content will be stored in.", + "title": "Content category", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "List-Content-Categories", + "value-path": "id", + "value-title": "name" + } + }, + "storageProviderReferenceId": { + "type": "string", + "description": "Leave blank for automatic storage selection using storage rules.", + "title": "Storage Connector", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "List-Storage-Connectors", + "value-path": "referenceId", + "value-title": "name" + } + }, + "requirementId": { + "type": "integer", + "description": "The identifier that uniquely identifies the content item requirement.", + "title": "Content item requirement identifier", + "format": "int64", + "x-ms-visibility": "advanced" + }, + "templateId": { + "type": "integer", + "description": "The identifier that uniquely identifies the content item template.", + "title": "Content item template identifier", + "format": "int64", + "x-ms-visibility": "advanced", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-Templates", + "value-path": "id", + "value-title": "name" + } + }, + "connections": { "type": "object", "properties": { - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "The filter id", - "title": "Id", - "x-ms-visibility": "advanced" - }, - "name": { - "type": "string", - "description": "The filter name", - "title": "Name", - "x-ms-visibility": "advanced" - }, - "label": { - "type": "string", - "description": "The filter label", - "title": "Label", - "x-ms-visibility": "advanced" - }, - "fieldType": { - "type": "integer", - "format": "int32", - "description": "The filter field type", - "title": "Type", - "x-ms-visibility": "advanced" - }, - "referenceTypeId": { - "type": "integer", - "format": "int32", - "description": "The filter reference type id", - "title": "Reference Type Id", - "x-ms-visibility": "advanced" - }, - "propertyName": { - "type": "string", - "description": "The filter property name", - "title": "Property Name", - "x-ms-visibility": "advanced" + "providerReferenceId": { + "type": "string", + "description": "The identifier that uniquely identifies the business entity connector.", + "title": "Business entity connector", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } + }, + "externalType": { + "type": "string", + "description": "The type of the business entity to be stored.", + "title": "Business entity type", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "connections.providerReferenceId" } - }, - "title": "Filter", - "description": "A filter item." + } }, - "description": "The filter fields" + "x-ms-dynamic-list": { + "operationId": "List-Business-Entity-Provider-Types", + "itemValuePath": "provider/externalType", + "itemTitlePath": "name", + "parameters": { + "providerReferenceId": { + "parameterReference": "body/connections/providerReferenceId" + } + } + } + }, + "externalId": { + "type": "string", + "description": "The identifier that uniquely identifies the business entity.", + "title": "Business entity identifier", + "x-ms-visibility": "important" } }, - "description": "The filters for filtering content.", - "x-ms-visibility": "advanced" - } - } - } - } - }, - "summary": "Execute Query", - "description": "Executes a query on an AXtension Content Gate environment.", - "operationId": "Execute-Query", - "parameters": [ - { - "name": "providerReferenceId", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Business Entity Connector", - "description": "The business entity connector.", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Connectors", - "value-path": "referenceId", - "value-title": "name" - } - }, - { - "name": "externalType", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Business Entity Type", - "description": "The business entity type.", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Provider-Types", - "value-path": "provider/externalType", - "value-title": "name", - "parameters": { - "providerReferenceId": { - "parameter": "providerReferenceId" - } - } - } - }, - { - "name": "externalId", - "in": "path", - "required": true, - "type": "string", - "description": "The business entity identifier.", - "x-ms-summary": "Business Entity Identifier" - }, - { - "name": "view", - "in": "query", - "required": false, - "type": "integer", - "description": "The view id.", - "x-ms-summary": "View", - "format": "int64", - "x-ms-dynamic-values": { - "operationId": "List-Views-Business-Entity", - "value-path": "id", - "value-title": "name", - "parameters": { - "providerReferenceId": { - "parameter": "providerReferenceId" - }, - "externalType": { - "parameter": "externalType" + "description": "connections", + "required": [ + "externalId", + "externalType", + "providerReferenceId" + ] }, - "externalId": { - "parameter": "externalId" + "userProperties": { + "$ref": "#/definitions/UserProperties" } - } + }, + "required": [ + "assets", + "category", + "connections" + ] } } ] @@ -584,7 +705,7 @@ "schema": { "description": "Output file content", "format": "binary", - "title": "File Content", + "title": "File content", "type": "string", "x-ms-visibility": "important" }, @@ -625,9 +746,10 @@ "required": true, "type": "string", "description": "The identifier of the content item.", - "x-ms-summary": "Content Item Identifier", + "x-ms-summary": "Content item identifier", "x-ms-visibility": "important", - "format": "" + "x-ms-url-encoding": "single", + "format": "int64" }, { "name": "mode", @@ -659,172 +781,34 @@ ] } }, - "/api/BusinessEntityProviders": { - "get": { - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "description": "The identifier of the Business Entity Connector.", - "title": "Id" - }, - "name": { - "type": "string", - "description": "The name of the Business Entity Connector.", - "title": "Name" - }, - "providerType": { - "type": "string", - "description": "The type of the Business Entity Connector.", - "title": "Connector Type" - }, - "referenceId": { - "type": "string", - "description": "The Business Entity Connector reference identifier.", - "title": "Reference Id" - } - } - } - } - } - }, - "summary": "List Business Entity Connectors", - "description": "Lists all configured Business Entity Connectors.", - "operationId": "List-Business-Entity-Connectors" - } - }, - "/api/businessentitymodel": { - "get": { + "/api/content/{contentEntityId}/sharedContent": { + "post": { "responses": { "200": { "description": "default", "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "description": "The business entity type identifier.", - "title": "Id" - }, - "name": { - "type": "string", - "description": "The name of the business entity type.", - "title": "Name" - }, - "description": { - "type": "string", - "description": "The description of the business entity type.", - "title": "Description" - }, - "title": { - "type": "object", - "properties": { - "format": { - "type": "string", - "description": "format", - "title": "", - "x-ms-visibility": "internal" - }, - "fields": { - "type": "array", - "items": { - "type": "string" - }, - "description": "fields" - } - }, - "description": "title" - }, - "referenceId": { - "type": "string", - "description": "The reference id to use when referring to this business entity type.", - "title": "ReferenceId" - } - } - } - } - } - }, - "summary": "List Business Entity Types", - "description": "Lists all business entity types that are defined in the model.", - "operationId": "List-Business-Entity-Types", - "parameters": [] - } - }, - "/api/BusinessEntityProviders/{providerReferenceId}/Entities": { - "get": { - "responses": { - "200": { - "description": "OK", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "description": "The identifier of the Business Entity Type.", - "title": "Id" - }, - "name": { - "type": "string", - "description": "The Business Entity Type name.", - "title": "Name" - }, - "description": { - "type": "string", - "description": "The description of the Business Entity Type.", - "title": "Description" - }, - "provider": { - "type": "object", - "properties": { - "referenceId": { - "type": "string", - "description": "The reference identifier of the Business Entity Connector.", - "title": "Provider Reference Id" - }, - "externalType": { - "type": "string", - "description": "The type that is used to identify the Business Entity Type in an external system.", - "title": "External Type" - }, - "externalIdField": { - "type": "string", - "description": "Represents the field that is used in the external system to identify a Business Entity.", - "title": "External Identifier Field" - } - }, - "description": "provider" - } + "type": "object", + "properties": { + "uri": { + "type": "string", + "description": "uri" } } } } }, - "summary": "List Business Entity Provider Types", - "description": "Lists all Business Entity Types in the Model", - "operationId": "List-Business-Entity-Provider-Types", - "x-ms-visibility": "internal", + "summary": "Get shared content link", + "description": "Gets the shared content link", + "operationId": "Get-Shared-Content-Link", "parameters": [ { - "name": "providerReferenceId", + "name": "contentEntityId", "in": "path", "required": true, "type": "string", - "x-ms-url-encoding": "single", - "x-ms-visibility": "important" + "description": "The content item identifier.", + "x-ms-summary": "Content item identifier", + "x-ms-url-encoding": "single" } ] } @@ -842,12 +826,12 @@ "id": { "type": "integer", "format": "int64", - "description": "The Content Category identifier.", + "description": "The content category identifier.", "title": "Id" }, "name": { "type": "string", - "description": "The name of the Content Category.", + "description": "The name of the content category.", "title": "Name" } } @@ -855,12 +839,12 @@ } } }, - "summary": "List Content Categories", + "summary": "List content categories", "operationId": "List-Content-Categories", "description": "Lists all configured content categories." } }, - "/api/StorageProviders": { + "/api/contententities/{id}/properties": { "get": { "responses": { "200": { @@ -873,35 +857,188 @@ "id": { "type": "integer", "format": "int64", - "description": "The identifier of the Storage Connector.", - "title": "Id" + "description": "The content item user property id.", + "title": "Content item user property id" }, "name": { "type": "string", - "description": "The name of the Storage Connector.", - "title": "Name" - }, - "providerType": { - "type": "string", - "description": "The type of the Storage Connector.", - "title": "Connector Type" + "description": "The content item user property name.", + "title": "Content item user property name" }, - "referenceId": { + "value": { "type": "string", - "description": "The Storage Connector reference identifier.", - "title": "Reference Id" + "description": "The content item user property value.", + "title": "Content item user property value" } } } } } }, - "summary": "List Storage Connectors", - "operationId": "List-Storage-Connectors", - "description": "Lists all configured storage connectors." + "operationId": "List-Content-Entity-User-Properties", + "summary": "List all the user properties of a content item", + "description": "List all the user properties of a content item.", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "integer", + "description": "The content item id.", + "x-ms-summary": "Content item id", + "x-ms-url-encoding": "single", + "format": "int64" + } + ] } }, - "/api/BusinessEntityModel/{businessEntityType}/views": { + "/api/contententities/{contentEntityId}/properties/{propertyId}": { + "put": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The content item user property id.", + "title": "Content item user property id" + }, + "value": { + "type": "string", + "description": "The content item user property value.", + "title": "Content item user property value" + } + } + } + } + }, + "operationId": "Update-Content-Entity-User-Property", + "summary": "Updates the content item user property", + "description": "Update a user property of a content item.", + "parameters": [ + { + "name": "contentEntityId", + "in": "path", + "required": true, + "type": "integer", + "description": "The content item id.", + "x-ms-summary": "Content item id", + "format": "int64", + "x-ms-url-encoding": "single" + }, + { + "name": "propertyId", + "in": "path", + "required": true, + "type": "integer", + "description": "The content item user property id.", + "x-ms-summary": "Content item user property id", + "x-ms-url-encoding": "single", + "format": "int64", + "x-ms-dynamic-values": { + "operationId": "List-Content-Entity-User-Properties", + "value-path": "id", + "value-title": "name", + "parameters": { + "id": { + "parameter": "contentEntityId" + } + } + } + }, + { + "name": "body", + "in": "body", + "required": false, + "schema": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "New content item user property value", + "title": "The new content item user property value" + } + } + } + } + ] + } + }, + "/api/ContentEntityProperties/schema": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "businessEntityId": { + "type": "integer", + "format": "int64", + "description": "The id of the business entity that the requirement was attached to.", + "title": "Business entity id" + }, + "templateGroupId": { + "type": "integer", + "format": "int64", + "description": "The identifier of the template group that was used for generating requirements.", + "title": "Template group id" + }, + "templateGroupName": { + "type": "string", + "description": "The name of the template group.", + "title": "Template group name" + }, + "requirements": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The id of the requirement that was put into place.", + "title": "Id" + }, + "templateId": { + "type": "integer", + "format": "int64", + "description": "The id of the template that was added as a requirement.", + "title": "Template id" + }, + "templateName": { + "type": "string", + "description": "The name of the template.", + "title": "Template name" + } + } + }, + "description": "requirements" + } + } + } + } + }, + "summary": "Get content item properties schema", + "operationId": "Get-Content-Property-Schema", + "description": "Gets the schema for the content item properties.", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "forResults", + "in": "query", + "required": false, + "type": "boolean", + "description": "Value indicating whether or not the schema is for a result set.", + "x-ms-summary": "For results" + } + ] + } + }, + "/api/contententitytemplates": { "get": { "responses": { "200": { @@ -914,45 +1051,31 @@ "id": { "type": "integer", "format": "int64", - "description": "The identifier of the view.", - "title": "Id" - }, - "apiName": { - "type": "string", - "description": "The api name of the view.", - "title": "ApiName" + "description": "The identifier that uniquely identifies the Content item template.", + "title": "Content item template identifier" }, "name": { "type": "string", - "description": "The name of the view.", + "description": "The name of the content item template.", "title": "Name" + }, + "apiName": { + "type": "string", + "description": "The Api Name of the content item template.", + "title": "Api name" } } } } } }, - "summary": "List Views", - "description": "Lists all views that are usable from Power Platform", - "operationId": "List-Views", - "parameters": [ - { - "name": "businessEntityType", - "in": "path", - "required": true, - "type": "string", - "description": "The business entity type id or reference id.", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Types", - "value-path": "referenceId", - "value-title": "name" - }, - "x-ms-summary": "Business Entity Type" - } - ] + "summary": "List content item templates", + "description": "Lists the templates for a content item.", + "operationId": "List-Content-Entity-Templates", + "parameters": [] } }, - "/api/businessentities/{providerReferenceId}/{externalType}/{externalId}/views": { + "/api/contententitytemplategroups": { "get": { "responses": { "200": { @@ -965,267 +1088,526 @@ "id": { "type": "integer", "format": "int64", - "description": "The identifier of the view.", + "description": "The id of the group.", "title": "Id" }, - "apiName": { - "type": "string", - "description": "The api name of the view.", - "title": "ApiName" - }, "name": { "type": "string", - "description": "The name of the view.", + "description": "The name of the template group.", "title": "Name" + }, + "apiName": { + "type": "string", + "description": "apiName" } } } } } }, - "summary": "List Views Business Entity", - "description": "Lists all views that are usable from Power Platform for a specific business entity", - "operationId": "List-Views-Business-Entity", - "x-ms-visibility": "internal", - "parameters": [ - { - "name": "providerReferenceId", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "externalType", - "in": "path", - "required": true, - "type": "string" - }, - { - "name": "externalId", - "in": "path", - "required": true, - "type": "string" - } - ] + "summary": "List content item template groups", + "description": "Lists the template groups for a content item.", + "operationId": "List-Content-Entity-Template-Groups", + "parameters": [] } }, - "/api/Content": { - "post": { + "/api/query/{providerReferenceId}/{externalType}/{externalId}": { + "get": { "responses": { - "201": { - "description": "OK - Created" - }, - "400": { - "description": "Bad Request", - "schema": { - "$ref": "#/definitions/ExceptionResponse" - } - } - }, - "summary": "Store Content", - "operationId": "Store-Content", - "description": "Adds new content to an AXtension Content Gate environment.", - "produces": [ - "application/json" - ], - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "Content-Type", - "in": "header", - "required": true, - "type": "string", - "default": "application/json", - "x-ms-visibility": "internal" - }, - { - "name": "body", - "in": "body", - "required": false, + "200": { + "description": "default", "schema": { "type": "object", "properties": { - "assets": { + "info": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The id of the view.", + "title": "Id" + }, + "name": { + "type": "string", + "description": "The name of the view.", + "title": "Name" + } + }, + "description": "Information about the selected view.", + "title": "View", + "x-ms-visibility": "advanced" + }, + "data": { "type": "object", "properties": { - "title": { - "type": "string", - "description": "The title of the content item that is being stored.", - "title": "Title", - "x-ms-visibility": "important" + "context": { + "type": "object", + "properties": { + "businessEntityTypeId": { + "type": "integer", + "format": "int32", + "description": "The business entity type id of the root business entity.", + "title": "Type Id" + }, + "businessEntityTypeLabel": { + "type": "string", + "description": "The business entity type label of the root business entity.", + "title": "Type Label" + }, + "title": { + "type": "string", + "description": "The title of the root business entity.", + "title": "Title" + }, + "subtitle": { + "type": "string", + "description": "The subtitle of the root business entity.", + "title": "Subtitle" + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The id of the property.", + "title": "Property Id" + }, + "value": { + "type": "string", + "description": "The value of the property.", + "title": "Property Value" + } + } + }, + "description": "The properties of the root business entity.", + "title": "Properties" + }, + "links": { + "type": "array", + "items": { + "type": "object", + "properties": { + "providerReferenceId": { + "type": "string", + "description": "The provider reference id.", + "title": "Provider Reference Id" + }, + "providerType": { + "type": "string", + "description": "The business entity provider type.", + "title": "Provider Type" + }, + "directLink": { + "type": "string", + "description": "The direct link to the entity in the business entity provider system.", + "title": "Direct Link" + } + } + }, + "description": "The links to the business entity.", + "title": "Links", + "x-ms-visibility": "advanced" + }, + "contentIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "title": "Content Item Id", + "description": "The id of a content item linked to the root business entity." + }, + "description": "A list of content items linked to the root business entity.", + "title": "Content Item Id's" + } + }, + "description": "The root business entity.", + "title": "Root Business Entity" }, - "assetType": { - "type": "string", - "description": "The type of the asset that is provided.", - "title": "Content Type", - "default": "BinaryContent", - "enum": [ - "BinaryContent", - "UriLink", - "BinaryLink" - ], - "x-ms-visibility": "important", - "x-ms-editor-options": { - "items": [ - { - "title": "File Contents", - "value": "BinaryContent" + "businessEntities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The id of the business entity.", + "title": "Id" + }, + "commonId": { + "type": "array", + "items": {}, + "description": "The shared identifier.", + "title": "Shared Identifier" + }, + "type": { + "type": "string", + "description": "The business entity type.", + "title": "Type" + }, + "typeId": { + "type": "integer", + "format": "int32", + "description": "The business entity type id.", + "title": "Type Id" + }, + "title": { + "type": "string", + "description": "The title of the business entity.", + "title": "Title" + }, + "subtitle": { + "type": "string", + "description": "The subtitle of the business entity.", + "title": "Subtitle" + }, + "references": { + "type": "array", + "items": { + "type": "object", + "properties": { + "businessEntityId": { + "type": "integer", + "format": "int32", + "description": "The internal id of the business entity.", + "title": "Internal Id" + }, + "externalId": { + "type": "string", + "description": "The external id of the business entity.", + "title": "External Id" + }, + "externalType": { + "type": "string", + "description": "The external type of the business entity.", + "title": "External Type" + }, + "providerReferenceId": { + "type": "string", + "description": "The provider reference id of the business entity.", + "title": "Provider Reference Id" + } + } + }, + "description": "The external references of the business entity.", + "title": "External References" + }, + "retrievalPath": { + "type": "array", + "items": {}, + "description": "The retrieval path of the business entity.", + "title": "Retrieval Path", + "x-ms-visibility": "advanced" + }, + "contentIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32", + "title": "Content Id" + }, + "description": "The ids of the content entities linked to this business entity.", + "title": "Content Item Id's" + } + }, + "title": "Business Entity", + "description": "A business entity linked to the root business entity." + }, + "description": "A list of business entities linked to the root business entity." + }, + "contentEntities": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The content item id.", + "title": "Id" + }, + "title": { + "type": "string", + "description": "The title of the content item.", + "title": "Title" + }, + "fileName": { + "type": "string", + "description": "The filename of the content item.", + "title": "Filename" + }, + "fileSize": { + "type": "integer", + "format": "int32", + "description": "The file size of the content item.", + "title": "Filesize" + }, + "fileType": { + "type": "string", + "description": "The file type of the content item.", + "title": "File type" + }, + "fileTypeDisplayName": { + "type": "string", + "description": "The friendly name of the file type of the content item.", + "title": "File type display name" + }, + "fileUrl": { + "type": "string", + "description": "The file url of the content item.", + "title": "File url" + }, + "fileVersion": { + "type": "string", + "description": "The file version of the content item.", + "title": "File version" + }, + "categoryId": { + "type": "integer", + "format": "int32", + "description": "The category id of the content item", + "title": "Category id" + }, + "category": { + "type": "string", + "description": "The category name of the content item.", + "title": "Category name" }, - { - "title": "Web Link (URL)", - "value": "UriLink" + "storageProviderId": { + "type": "integer", + "format": "int32", + "description": "The id of the storage provider on which the content item is stored.", + "title": "Storage provider id" }, - { - "title": "Existing File (URL)", - "value": "BinaryLink" + "storageProviderName": { + "type": "string", + "description": "The name of the storage provider on which the content item is stored.", + "title": "Storage provider name" + }, + "storageProviderReferenceId": { + "type": "string", + "description": "The reference id of the storage provider on which the content item is stored.", + "title": "Storage provider reference id" + }, + "userProperties": { + "$ref": "#/definitions/UserPropertiesResult" + }, + "createdOn": { + "type": "string", + "description": "Content item created on", + "title": "Created On" + }, + "createdBy": { + "type": "string", + "description": "Content item created by", + "title": "Created By" + }, + "permissions": { + "type": "object", + "properties": { + "read": { + "type": "boolean", + "description": "If the user has permission to read items.", + "title": "Read" + }, + "create": { + "type": "boolean", + "description": "If the user has permission to upload an item.", + "title": "Create" + }, + "update": { + "type": "boolean", + "description": "If the user has permission to update an item.", + "title": "Update" + }, + "updateContent": { + "type": "boolean", + "description": "If the user has permission to update the content of an item.", + "title": "Update content" + }, + "delete": { + "type": "boolean", + "description": "If the user has permission to delete an item.", + "title": "Delete" + }, + "download": { + "type": "boolean", + "description": "If the user has permission to download an item.", + "title": "Download" + } + }, + "description": "The content item permissions", + "title": "Permissions", + "x-ms-visibility": "advanced" + }, + "numberOfPages": { + "type": "integer", + "format": "int32", + "description": "The number of pages", + "title": "Number of pages" + }, + "changedOn": { + "type": "string", + "description": "Content item last modified on", + "title": "Last modified on" + }, + "changedBy": { + "type": "string", + "description": "Content item last modified by", + "title": "Last modified by" } - ] - } - }, - "content": { - "type": "string", - "description": "The URL or binary contents that are being stored.", - "title": "Content", - "format": "byte", - "x-ms-visibility": "important" - }, - "fileName": { - "type": "string", - "description": "The name of the file that is being stored.", - "title": "File Name", - "x-ms-visibility": "important" - }, - "contentType": { - "type": "string", - "description": "The mime-type of the content to store.", - "title": "Content MIME-Type", - "x-ms-visibility": "advanced" + }, + "title": "Content Item", + "description": "A content item linked to the root business entity." + }, + "description": "A list of content items linked to the root business entity." } }, - "description": "assets", - "required": [ - "assetType", - "content", - "title", - "fileName" - ] - }, - "category": { - "type": "string", - "description": "The Content Category that the content will be stored in.", - "title": "Content Category", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "List-Content-Categories", - "value-path": "id", - "value-title": "name" - } - }, - "storageProviderReferenceId": { - "type": "string", - "description": "Leave blank for automatic storage selection using storage rules.", - "title": "Storage Connector", - "x-ms-visibility": "advanced", - "x-ms-dynamic-values": { - "operationId": "List-Storage-Connectors", - "value-path": "referenceId", - "value-title": "name" - } - }, - "requirementId": { - "type": "integer", - "description": "The identifier that uniquely identifies the Content Item Requirement.", - "title": "Content Item Requirement Identifier", - "format": "int64", - "x-ms-visibility": "advanced" - }, - "templateId": { - "type": "integer", - "description": "The identifier that uniquely identifies the Content Item template.", - "title": "Content Item Template Identifier", - "format": "int64", - "x-ms-visibility": "advanced", - "x-ms-dynamic-values": { - "operationId": "List-Content-Entity-Templates", - "value-path": "id", - "value-title": "name" - } + "description": "The data" }, - "connections": { + "projection": { "type": "object", "properties": { - "providerReferenceId": { - "type": "string", - "description": "The identifier that uniquely identifies the business entity connector.", - "title": "Business Entity Connector", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Connectors", - "value-path": "referenceId", - "value-title": "name" - } - }, - "externalType": { - "type": "string", - "description": "The type of the business entity to be stored.", - "title": "Business Entity Type", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Provider-Types", - "value-path": "provider/externalType", - "value-title": "name", - "parameters": { - "providerReferenceId": { - "parameter": "connections.providerReferenceId" + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int32", + "description": "The filter id", + "title": "Id", + "x-ms-visibility": "advanced" + }, + "name": { + "type": "string", + "description": "The filter name", + "title": "Name", + "x-ms-visibility": "advanced" + }, + "label": { + "type": "string", + "description": "The filter label", + "title": "Label", + "x-ms-visibility": "advanced" + }, + "fieldType": { + "type": "integer", + "format": "int32", + "description": "The filter field type", + "title": "Type", + "x-ms-visibility": "advanced" + }, + "referenceTypeId": { + "type": "integer", + "format": "int32", + "description": "The filter reference type id", + "title": "Reference type id", + "x-ms-visibility": "advanced" + }, + "propertyName": { + "type": "string", + "description": "The filter property name", + "title": "Property name", + "x-ms-visibility": "advanced" } - } + }, + "title": "Filter", + "description": "A filter item." }, - "x-ms-dynamic-list": { - "operationId": "List-Business-Entity-Provider-Types", - "itemValuePath": "provider/externalType", - "itemTitlePath": "name", - "parameters": { - "providerReferenceId": { - "parameterReference": "body/connections/providerReferenceId" - } - } - } - }, - "externalId": { - "type": "string", - "description": "The identifier that uniquely identifies the business entity.", - "title": "Business Entity Identifier", - "x-ms-visibility": "important" + "description": "The filter fields" } }, - "description": "connections", - "required": [ - "externalId", - "externalType", - "providerReferenceId" - ] + "description": "The filters for filtering content.", + "x-ms-visibility": "advanced" + } + } + } + } + }, + "summary": "Execute Query", + "description": "Executes a query on an AXtension Content Gate environment.", + "operationId": "Execute-Query", + "parameters": [ + { + "name": "providerReferenceId", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Business entity connector", + "x-ms-url-encoding": "single", + "description": "The business entity connector.", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Connectors", + "value-path": "referenceId", + "value-title": "name" + } + }, + { + "name": "externalType", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Business entity type", + "x-ms-url-encoding": "single", + "description": "The business entity type.", + "x-ms-dynamic-values": { + "operationId": "List-Business-Entity-Provider-Types", + "value-path": "provider/externalType", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" + } + } + } + }, + { + "name": "externalId", + "in": "path", + "required": true, + "type": "string", + "description": "The business entity identifier.", + "x-ms-summary": "Business entity identifier", + "x-ms-url-encoding": "single" + }, + { + "name": "view", + "in": "query", + "required": false, + "type": "integer", + "description": "The view id.", + "x-ms-summary": "View", + "format": "int64", + "x-ms-dynamic-values": { + "operationId": "List-Views-Business-Entity", + "value-path": "id", + "value-title": "name", + "parameters": { + "providerReferenceId": { + "parameter": "providerReferenceId" }, - "userProperties": { - "$ref": "#/definitions/UserProperties" + "externalType": { + "parameter": "externalType" + }, + "externalId": { + "parameter": "externalId" } - }, - "required": [ - "assets", - "category", - "connections" - ] + } } } ] } }, - "/api/contententitytemplates": { + "/api/StorageProviders": { "get": { "responses": { "200": { - "description": "default", + "description": "OK", "schema": { "type": "array", "items": { @@ -1234,268 +1616,831 @@ "id": { "type": "integer", "format": "int64", - "description": "The identifier that uniquely identifies the Content Item template.", - "title": "Content Item Template Identifier" + "description": "The identifier of the storage connector.", + "title": "Id" }, "name": { "type": "string", - "description": "The name of the Content Item template.", + "description": "The name of the storage connector.", "title": "Name" }, - "apiName": { + "providerType": { + "type": "string", + "description": "The type of the storage connector.", + "title": "Connector type" + }, + "referenceId": { "type": "string", - "description": "The Api Name of the Content Item template.", - "title": "Api Name" + "description": "The storage connector reference identifier.", + "title": "Reference id" } } } } } }, - "summary": "List Content Entity Templates", - "description": "Lists the templates for a content entity.", - "operationId": "List-Content-Entity-Templates", - "parameters": [] + "summary": "List storage connectors", + "operationId": "List-Storage-Connectors", + "description": "Lists all configured storage connectors." } }, - "/api/contententitytemplategroups": { - "get": { + "/api/subscriptions/contentcreated": { + "x-ms-notification-content": { + "description": "Event arguments", + "schema": { + "type": "object", + "properties": { + "SubscriptionId": { + "type": "string", + "description": "SubscriptionId", + "title": "Subscription id", + "x-ms-visibility": "advanced" + }, + "SubscriptionExpirationDateTime": { + "type": "string", + "description": "SubscriptionExpirationDateTime", + "title": "Subscription expiration date", + "format": "date-time", + "x-ms-visibility": "advanced" + }, + "ChangeType": { + "type": "string", + "description": "ChangeType", + "title": "Change type", + "x-ms-visibility": "internal" + }, + "TenantId": { + "type": "string", + "description": "TenantId", + "title": "Environment" + }, + "Resource": { + "type": "string", + "description": "Resource", + "title": "Resource identifier" + }, + "ResourceData": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "description": "Id", + "title": "Content item id" + }, + "Title": { + "type": "string", + "description": "Title", + "title": "Title" + }, + "FileName": { + "type": "string", + "description": "FileName", + "title": "File name" + }, + "FileExtension": { + "type": "string", + "description": "FileExtension", + "title": "File extension" + }, + "FileVersion": { + "type": "string", + "description": "FileVersion", + "title": "File version", + "x-ms-visibility": "advanced" + }, + "FileUrl": { + "type": "string", + "description": "FileUrl", + "title": "File url", + "x-ms-visibility": "advanced" + }, + "Size": { + "type": "integer", + "format": "int64", + "description": "Size", + "title": "" + }, + "MimeType": { + "type": "string", + "description": "MimeType", + "title": "Mime type", + "x-ms-visibility": "internal" + }, + "CategoryId": { + "type": "integer", + "format": "int32", + "description": "CategoryId", + "title": "Content category id" + }, + "Category": { + "type": "string", + "description": "Category", + "title": "Content category" + }, + "UserProperties": { + "$ref": "#/definitions/UserPropertiesResult" + }, + "ContentEntityTemplateId": { + "type": "integer", + "format": "int64", + "description": "ContentEntityTemplateId", + "title": "Content item template id" + }, + "CreatedOn": { + "type": "string", + "description": "CreatedOn", + "title": "Creation date" + }, + "CreatedBy": { + "type": "string", + "description": "CreatedBy", + "title": "Created by" + }, + "ChangedOn": { + "type": "string", + "description": "ChangedOn", + "title": "", + "x-ms-visibility": "internal" + }, + "ChangedBy": { + "type": "string", + "description": "ChangedBy", + "title": "", + "x-ms-visibility": "internal" + } + }, + "description": "ResourceData" + } + } + } + }, + "post": { "responses": { "200": { - "description": "default", + "description": "Webhook created successfully." + }, + "401": { + "description": "Webhook not created. Unauthorized!" + } + }, + "summary": "When content is added", + "description": "Trigger that is fired when content is added to a business entity.", + "operationId": "When-Content-Added", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "X-Subscription-Client", + "in": "header", + "required": true, + "type": "string", + "default": "PowerAutomate", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64", - "description": "The id of the group.", - "title": "Id" - }, - "name": { - "type": "string", - "description": "The name of the template group.", - "title": "Name" - }, - "apiName": { - "type": "string", - "description": "apiName" - } + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name", + "title": "", + "default": "Power Automate Trigger", + "x-ms-visibility": "internal" + }, + "changeType": { + "type": "string", + "description": "changeType", + "title": "", + "default": "Created", + "x-ms-visibility": "internal" + }, + "clientState": { + "type": "string", + "description": "clientState", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificate": { + "type": "string", + "description": "encryptionCertificate", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificateId": { + "type": "string", + "description": "encryptionCertificateId", + "title": "", + "x-ms-visibility": "internal" + }, + "expirationDateTime": { + "type": "string", + "description": "expirationDateTime", + "title": "", + "x-ms-visibility": "internal" + }, + "includeResourceData": { + "type": "boolean", + "description": "includeResourceData", + "title": "", + "x-ms-visibility": "internal" + }, + "latestSupportedTlsVersion": { + "type": "string", + "description": "latestSupportedTlsVersion", + "title": "", + "default": "v1_2", + "x-ms-visibility": "internal" + }, + "lifecycleNotificationUrl": { + "type": "string", + "description": "lifecycleNotificationUrl", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationContentType": { + "type": "string", + "description": "notificationContentType", + "title": "", + "default": "application/json", + "x-ms-visibility": "internal" + }, + "notificationQueryOptions": { + "type": "string", + "description": "notificationQueryOptions", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationUrl": { + "type": "string", + "description": "notificationUrl", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "" + }, + "resource": { + "type": "string", + "description": "resource", + "title": "", + "default": "Content", + "x-ms-visibility": "internal" } - } + }, + "required": [ + "changeType", + "latestSupportedTlsVersion", + "name", + "notificationContentType", + "notificationUrl", + "resource" + ] } } - }, - "summary": "List Content Entity Template Groups", - "description": "Lists the template groups for a content entity.", - "operationId": "List-Content-Entity-Template-Groups", - "parameters": [] + ] } }, - "/api/businessentities/{providerReferenceId}/{externalType}/{externalId}/Requirements": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int32", - "description": "id" - }, - "contentEntityTemplateId": { - "type": "integer", - "format": "int32", - "description": "contentEntityTemplateId" - }, - "businessEntityId": { - "type": "integer", - "format": "int32", - "description": "businessEntityId" - }, - "status": { - "type": "integer", - "format": "int32", - "description": "status" - }, - "createdOn": { - "type": "string", - "description": "createdOn" - }, - "createdBy": { - "type": "string", - "description": "createdBy" - } + "/api/subscriptions/contentupdated": { + "x-ms-notification-content": { + "description": "Event Arguments", + "schema": { + "type": "object", + "properties": { + "SubscriptionId": { + "type": "string", + "description": "SubscriptionId", + "title": "Subscription id", + "x-ms-visibility": "advanced" + }, + "SubscriptionExpirationDateTime": { + "type": "string", + "description": "SubscriptionExpirationDateTime", + "title": "Subscription expiration date", + "format": "date-time", + "x-ms-visibility": "advanced" + }, + "ChangeType": { + "type": "string", + "description": "ChangeType", + "title": "Change type", + "x-ms-visibility": "internal" + }, + "TenantId": { + "type": "string", + "description": "TenantId", + "title": "Environment" + }, + "Resource": { + "type": "string", + "description": "Resource", + "title": "Resource identifier" + }, + "ResourceData": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "description": "Id", + "title": "Content item id" + }, + "Title": { + "type": "string", + "description": "Title", + "title": "Title" + }, + "FileName": { + "type": "string", + "description": "FileName", + "title": "File name" + }, + "FileExtension": { + "type": "string", + "description": "FileExtension", + "title": "File extension" + }, + "FileVersion": { + "type": "string", + "description": "FileVersion", + "title": "File version", + "x-ms-visibility": "advanced" + }, + "FileUrl": { + "type": "string", + "description": "FileUrl", + "title": "File url", + "x-ms-visibility": "advanced" + }, + "Size": { + "type": "integer", + "format": "int64", + "description": "Size", + "title": "" + }, + "MimeType": { + "type": "string", + "description": "MimeType", + "title": "Mime type", + "x-ms-visibility": "internal" + }, + "CategoryId": { + "type": "integer", + "format": "int32", + "description": "CategoryId", + "title": "Content category id" + }, + "Category": { + "type": "string", + "description": "Category", + "title": "Content category" + }, + "UserProperties": { + "$ref": "#/definitions/UserPropertiesResult" + }, + "ContentEntityTemplateId": { + "type": "integer", + "format": "int64", + "description": "ContentEntityTemplateId", + "title": "Content item template id" + }, + "CreatedOn": { + "type": "string", + "description": "CreatedOn", + "title": "Creation date" + }, + "CreatedBy": { + "type": "string", + "description": "CreatedBy", + "title": "Created by" + }, + "ChangedOn": { + "type": "string", + "description": "ChangedOn", + "title": "", + "x-ms-visibility": "internal" + }, + "ChangedBy": { + "type": "string", + "description": "ChangedBy", + "title": "", + "x-ms-visibility": "internal" } - } + }, + "description": "ResourceData" } } + } + }, + "post": { + "responses": { + "200": { + "description": "Webhook created successfully." + }, + "401": { + "description": "Webhook not created. Unauthorized!" + } }, - "summary": "List Content Entity Requirements", - "description": "Lists the Content Entity Requirements", - "operationId": "List-Content-Entity-Requirements", + "summary": "When content is updated", + "description": "Trigger that is fired when content is updated. This can be either an update of the contents of a file or an update of the content item properties.", + "operationId": "When-Content-Updated", + "x-ms-trigger": "single", "parameters": [ { - "name": "providerReferenceId", - "in": "path", + "name": "X-Subscription-Client", + "in": "header", "required": true, "type": "string", - "description": "The business entity connector.", - "x-ms-summary": "Business Entity Connector", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Connectors", - "value-path": "referenceId", - "value-title": "name" - } + "default": "PowerAutomate", + "x-ms-visibility": "internal" }, { - "name": "externalType", - "in": "path", + "name": "body", + "in": "body", "required": true, - "type": "string", - "description": "The business entity type.", - "x-ms-summary": "Business Entity Type", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Provider-Types", - "value-path": "provider/externalType", - "value-title": "name", - "parameters": { - "providerReferenceId": { - "parameter": "providerReferenceId" + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name", + "title": "", + "default": "Power Automate Trigger", + "x-ms-visibility": "internal" + }, + "changeType": { + "type": "string", + "description": "changeType", + "title": "", + "default": "Updated", + "x-ms-visibility": "internal" + }, + "clientState": { + "type": "string", + "description": "clientState", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificate": { + "type": "string", + "description": "encryptionCertificate", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificateId": { + "type": "string", + "description": "encryptionCertificateId", + "title": "", + "x-ms-visibility": "internal" + }, + "expirationDateTime": { + "type": "string", + "description": "expirationDateTime", + "title": "", + "x-ms-visibility": "internal" + }, + "includeResourceData": { + "type": "boolean", + "description": "includeResourceData", + "title": "", + "x-ms-visibility": "internal" + }, + "latestSupportedTlsVersion": { + "type": "string", + "description": "latestSupportedTlsVersion", + "title": "", + "default": "v1_2", + "x-ms-visibility": "internal" + }, + "lifecycleNotificationUrl": { + "type": "string", + "description": "lifecycleNotificationUrl", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationContentType": { + "type": "string", + "description": "notificationContentType", + "title": "", + "default": "application/json", + "x-ms-visibility": "internal" + }, + "notificationQueryOptions": { + "type": "string", + "description": "notificationQueryOptions", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationUrl": { + "type": "string", + "description": "notificationUrl", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "" + }, + "resource": { + "type": "string", + "description": "resource", + "title": "", + "default": "Content", + "x-ms-visibility": "internal" } - } + }, + "required": [ + "changeType", + "latestSupportedTlsVersion", + "name", + "notificationContentType", + "notificationUrl", + "resource" + ] } - }, - { - "name": "externalId", - "in": "path", - "required": true, - "type": "string", - "description": "The business entity identifier.", - "x-ms-summary": "Business Entity Identifier" } ] + } + }, + "/api/subscriptions/contentdeleted": { + "x-ms-notification-content": { + "description": "Event Arguments", + "schema": { + "type": "object", + "properties": { + "SubscriptionId": { + "type": "string", + "description": "SubscriptionId", + "title": "Subscription id", + "x-ms-visibility": "advanced" + }, + "SubscriptionExpirationDateTime": { + "type": "string", + "description": "SubscriptionExpirationDateTime", + "title": "Subscription expiration date", + "format": "date-time", + "x-ms-visibility": "advanced" + }, + "ChangeType": { + "type": "string", + "description": "ChangeType", + "title": "Change type", + "x-ms-visibility": "internal" + }, + "TenantId": { + "type": "string", + "description": "TenantId", + "title": "Environment" + }, + "Resource": { + "type": "string", + "description": "Resource", + "title": "Resource identifier" + }, + "ResourceData": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "description": "Id", + "title": "Content item id" + }, + "Title": { + "type": "string", + "description": "Title", + "title": "Title" + }, + "FileName": { + "type": "string", + "description": "FileName", + "title": "File name" + }, + "FileExtension": { + "type": "string", + "description": "FileExtension", + "title": "File extension" + }, + "FileVersion": { + "type": "string", + "description": "FileVersion", + "title": "File version", + "x-ms-visibility": "advanced" + }, + "FileUrl": { + "type": "string", + "description": "FileUrl", + "title": "File url", + "x-ms-visibility": "advanced" + }, + "Size": { + "type": "integer", + "format": "int64", + "description": "Size", + "title": "" + }, + "MimeType": { + "type": "string", + "description": "MimeType", + "title": "Mime type", + "x-ms-visibility": "internal" + }, + "CategoryId": { + "type": "integer", + "format": "int32", + "description": "CategoryId", + "title": "Content category id" + }, + "Category": { + "type": "string", + "description": "Category", + "title": "Content Category" + }, + "UserProperties": { + "$ref": "#/definitions/UserPropertiesResult" + }, + "ContentEntityTemplateId": { + "type": "integer", + "format": "int64", + "description": "ContentEntityTemplateId", + "title": "Content item template id" + }, + "CreatedOn": { + "type": "string", + "description": "CreatedOn", + "title": "Creation date" + }, + "CreatedBy": { + "type": "string", + "description": "CreatedBy", + "title": "Created by" + }, + "ChangedOn": { + "type": "string", + "description": "ChangedOn", + "title": "", + "x-ms-visibility": "internal" + }, + "ChangedBy": { + "type": "string", + "description": "ChangedBy", + "title": "", + "x-ms-visibility": "internal" + } + }, + "description": "ResourceData" + } + } + } }, "post": { "responses": { "200": { - "description": "default", - "schema": {} + "description": "Webhook created successfully." + }, + "401": { + "description": "Webhook not created. Unauthorized!" } }, - "summary": "Create Content Entity Requirements", - "description": "Creates content entity requirements based on a template group.", - "operationId": "Create-Content-Entity-Requirements", + "summary": "When content is deleted", + "description": "Trigger that is fired when content is deleted.", + "operationId": "When-Content-Deleted", + "x-ms-trigger": "single", "parameters": [ { - "name": "providerReferenceId", - "in": "path", - "required": true, - "type": "string", - "description": "The business entity connector.", - "x-ms-summary": "Business Entity Connector", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Connectors", - "value-path": "referenceId", - "value-title": "name" - } - }, - { - "name": "externalType", - "in": "path", - "required": true, - "type": "string", - "description": "The business entity type.", - "x-ms-summary": "Business Entity Type", - "x-ms-dynamic-values": { - "operationId": "List-Business-Entity-Provider-Types", - "value-path": "provider/externalType", - "value-title": "name", - "parameters": { - "providerReferenceId": { - "parameter": "providerReferenceId" - } - } - } - }, - { - "name": "externalId", - "in": "path", + "name": "X-Subscription-Client", + "in": "header", "required": true, "type": "string", - "description": "The external identifier of the business entity.", - "x-ms-summary": "Business Entity Identifier" + "default": "PowerAutomate", + "x-ms-visibility": "internal" }, { "name": "body", "in": "body", - "required": false, + "required": true, "schema": { "type": "object", "properties": { - "ContentEntityTemplateId": { - "type": "integer", - "format": "int64", - "description": "The content entity template.", - "title": "Content Entity Template", - "x-ms-dynamic-values": { - "operationId": "List-Content-Entity-Templates", - "value-path": "id", - "value-title": "name" - } + "name": { + "type": "string", + "description": "name", + "title": "", + "default": "Power Automate", + "x-ms-visibility": "internal" }, - "ContentEntityTemplateGroupId": { - "type": "integer", - "format": "int64", - "description": "The content entity template group to base the requirements on.", - "title": "Content Entity Template Group", - "x-ms-dynamic-values": { - "operationId": "List-Content-Entity-Template-Groups", - "value-path": "id", - "value-title": "name" - } + "changeType": { + "type": "string", + "description": "changeType", + "title": "", + "default": "Deleted", + "x-ms-visibility": "internal" + }, + "clientState": { + "type": "string", + "description": "clientState", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificate": { + "type": "string", + "description": "encryptionCertificate", + "title": "", + "x-ms-visibility": "internal" + }, + "encryptionCertificateId": { + "type": "string", + "description": "encryptionCertificateId", + "title": "", + "x-ms-visibility": "internal" + }, + "expirationDateTime": { + "type": "string", + "description": "expirationDateTime", + "title": "", + "x-ms-visibility": "internal" + }, + "includeResourceData": { + "type": "boolean", + "description": "includeResourceData", + "title": "", + "x-ms-visibility": "internal" + }, + "latestSupportedTlsVersion": { + "type": "string", + "description": "latestSupportedTlsVersion", + "title": "", + "default": "v1_2", + "x-ms-visibility": "internal" + }, + "lifecycleNotificationUrl": { + "type": "string", + "description": "lifecycleNotificationUrl", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationContentType": { + "type": "string", + "description": "notificationContentType", + "title": "", + "default": "application/json", + "x-ms-visibility": "internal" + }, + "notificationQueryOptions": { + "type": "string", + "description": "notificationQueryOptions", + "title": "", + "x-ms-visibility": "internal" + }, + "notificationUrl": { + "type": "string", + "description": "notificationUrl", + "x-ms-notification-url": true, + "x-ms-visibility": "internal", + "title": "" + }, + "resource": { + "type": "string", + "description": "resource", + "title": "", + "default": "Content", + "x-ms-visibility": "internal" } - } + }, + "required": [ + "changeType", + "latestSupportedTlsVersion", + "name", + "notificationContentType", + "notificationUrl", + "resource" + ] } } ] } }, - "/api/content/{contentEntityId}/sharedContent": { - "post": { + "/api/subscriptions/{subscriptionId}": { + "delete": { "responses": { "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "uri": { - "type": "string", - "description": "uri" - } - } - } + "description": "Webhook created successfully." + }, + "401": { + "description": "Webhook not created. Unauthorized!" } }, - "summary": "Get Shared Content Link", - "description": "Gets the shared content link", - "operationId": "Get-Shared-Content-Link", + "description": "Deletes a Content Gate webhook.", + "operationId": "Delete-Webhook-Trigger", "parameters": [ { - "name": "contentEntityId", + "name": "subscriptionId", "in": "path", "required": true, "type": "string", - "description": "The content item identifier.", - "x-ms-summary": "Content Item Identifier" + "x-ms-url-encoding": "single" } - ] + ], + "summary": "Deletes a Content Gate webhook", + "x-ms-visibility": "internal" } } }, @@ -1595,7 +2540,7 @@ } ], "securityDefinitions": { - "undefined": { + "oauth2_auth": { "type": "oauth2", "flow": "accessCode", "authorizationUrl": "https://login.windows.net/common/oauth2/authorize", @@ -1605,7 +2550,7 @@ }, "security": [ { - "undefined": [] + "oauth2_auth": [] } ] } \ No newline at end of file From ad7cadf27784fb892315b25faf2164b2f2c76f93 Mon Sep 17 00:00:00 2001 From: jglassonnz <72478655+jglassonnz@users.noreply.github.com> Date: Sat, 8 Jan 2022 10:42:23 +1300 Subject: [PATCH 215/219] JG Integration Connector (#1310) * Upload JG Integration Files * Update apiDefinition.swagger.json * Update apiProperties.json * Delete settings.json * Delete icon.png * Update Readme.md * Update Readme.md * Update apiDefinition.swagger.json --- .../JG Integrations/Readme.md | 17 + .../apiDefinition.swagger.json | 516 ++++++++++++++++++ .../JG Integrations/apiProperties.json | 35 ++ 3 files changed, 568 insertions(+) create mode 100644 certified-connectors/JG Integrations/Readme.md create mode 100644 certified-connectors/JG Integrations/apiDefinition.swagger.json create mode 100644 certified-connectors/JG Integrations/apiProperties.json diff --git a/certified-connectors/JG Integrations/Readme.md b/certified-connectors/JG Integrations/Readme.md new file mode 100644 index 0000000000..0d84bf2922 --- /dev/null +++ b/certified-connectors/JG Integrations/Readme.md @@ -0,0 +1,17 @@ +# JG Integrations Flow Connector +This connector was designed with our clients in mind however it provides a diverse range of tools that benefit all users. + +## Publisher: JG Software Solutions Limited +JG Software Solutions are experts in cloud automation and integration and we specialise in the Microsoft Power Automate ecosystem. + +If you would like to request an update to this connector please reach out - [flowconnector@jgsolutions.co.nz](mailto:flowconnector@jgsolutions.co.nz?subject=Request%20new%20Feature) + +## Setup +In order to use this integration you need to reach out to our team and request a login, from there we will discuss your use case and expected usage levels. You can contact our team at [flowconnector@jgsolutions.co.nz](mailto:flowconnector@jgsolutions.co.nz?subject=Request%20a%20Login) + +## Supported Operations +At the moment the connector supports the following operations however we plan to add more soon: +* `HMAC Hash`: Hashes the supplied value using HMAC. Value returned in Base64 format. +* `Regex Replace`: Replaces characters from the supplied string based on a supplied regex pattern. +* `HTML to PDF`: Converts the supplied HTML to a PDF +* `File Name String Clean`: Removes non-compatible characters from file names. diff --git a/certified-connectors/JG Integrations/apiDefinition.swagger.json b/certified-connectors/JG Integrations/apiDefinition.swagger.json new file mode 100644 index 0000000000..3a2ba90a86 --- /dev/null +++ b/certified-connectors/JG Integrations/apiDefinition.swagger.json @@ -0,0 +1,516 @@ +{ + "swagger": "2.0", + "info": { + "title": "JG Integrations", + "description": "A collection of helper functions to replace missing or paid features in flow.", + "version": "1.0", + "contact": { + "name": "Jack Glasson", + "email": "flowconnector@jgsolutions.co.nz", + "url": "https://jgsolutions.co.nz" + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://jgsolutions.co.nz" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://jgsolutions.co.nz" + }, + { + "propertyName": "Categories", + "propertyValue": "Content and Files;Collaboration" + } + ], + "host": "integrations.jgsolutions.co.nz", + "basePath": "/api/functions", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [], + "paths": { + "/crypto/hash_hmac": { + "post": { + "responses": { + "200": { + "description": "JSON Response", + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "hash": { + "type": "string", + "description": "Hashed value encoded using Base64", + "title": "Hashed Value" + } + } + } + } + }, + "summary": "HMAC Hash", + "description": "Hash content using HMAC, value returned in base64", + "operationId": "HASH_HMAC", + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "algo": { + "type": "string", + "description": "Algorithm to use", + "title": "Algorithm", + "enum": [ + "md2", + "md4", + "md5", + "sha1", + "sha224", + "sha256", + "sha384", + "sha512/224", + "sha512/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512", + "ripemd128", + "ripemd160", + "ripemd256", + "ripemd320", + "whirlpool", + "snefru", + "snefru256", + "gost", + "gost-crypto" + ], + "default": "sha256" + }, + "content": { + "type": "string", + "description": "Content in Plain Text", + "title": "Content" + }, + "key": { + "type": "string", + "description": "Encryption key in plain text", + "title": "Key" + } + }, + "required": [ + "algo", + "content", + "key" + ] + } + } + ] + } + }, + "/text/preg_replace": { + "post": { + "responses": { + "200": { + "description": "JSON Response", + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "output": { + "type": "string", + "description": "Cleaned string", + "title": "Cleaned string" + } + } + } + } + }, + "summary": "Regex Replace", + "operationId": "PREG_REPLACE", + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "description": "pattern", + "title": "Regex Pattern" + }, + "replacement": { + "type": "string", + "description": "replacement", + "title": "Replacement Value", + "default": null + }, + "subject": { + "type": "string", + "description": "subject", + "title": "Value to Search" + } + }, + "required": [ + "pattern", + "subject" + ] + } + } + ], + "description": "Replace all characters matched by REGEX Expression" + } + }, + "/manual_func": { + "post": { + "responses": { + "200": { + "description": "JSON Response", + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "output": { + "type": "string", + "description": "Processed value", + "title": "Processed Value" + } + } + } + } + }, + "summary": "Advanced PHP Functions", + "x-ms-visibility": "advanced", + "description": "Manually specify a php function and body", + "operationId": "MANUAL", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "function": { + "type": "string", + "description": "function" + }, + "data": { + "type": "string", + "description": "data" + } + }, + "required": [ + "data", + "function" + ] + } + } + ] + } + }, + "/text/html_to_pdf": { + "post": { + "responses": { + "200": { + "description": "JSON Response", + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + } + }, + "schema": { + "type": "string" + } + } + }, + "summary": "HTML to PDF", + "description": "Convert HTML to a PDF", + "operationId": "HTML_TO_PDF", + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/pdf", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "html": { + "type": "string", + "description": "HTML content to be converted", + "title": "HTML", + "format": "html" + }, + "name": { + "type": "string", + "description": "Name of the returned pdf (Alphanumeric and whitespace characters only)", + "title": "File Name" + }, + "landscape": { + "type": "boolean", + "description": "Show in landscape mode", + "title": "Landscape", + "enum": [ + true, + false + ], + "default": false + }, + "pagesize": { + "type": "string", + "description": "The page size of the returned PDF", + "title": "Page size", + "default": "a4", + "enum": [ + "[4a0", + "2a0", + "a0", + "a1", + "a2", + "a3", + "a4", + "a5", + "a6", + "a7", + "a8", + "a9", + "a10", + "b0", + "b1", + "b2", + "b3", + "b4", + "b5", + "b6", + "b7", + "b8", + "b9", + "b10", + "c0", + "c1", + "c2", + "c3", + "c4", + "c5", + "c6", + "c7", + "c8", + "c9", + "c10", + "ra0", + "ra1", + "ra2", + "ra3", + "ra4", + "sra0", + "sra1", + "sra2", + "sra3", + "sra4", + "letter", + "half-letter", + "legal", + "ledger", + "tabloid", + "executive", + "folio", + "commercial #10 envelope", + "catalog #10 1/2 envelope", + "8.5x11", + "8.5x14", + "11x17", + "]" + ] + } + }, + "required": [ + "html", + "landscape", + "name", + "pagesize" + ] + } + } + ] + } + }, + "/text/file_string": { + "post": { + "responses": { + "200": { + "description": "JSON Response", + "headers": { + "Content-Type": { + "description": "Content-Type", + "type": "string" + } + }, + "schema": { + "type": "object", + "properties": { + "output": { + "type": "string", + "description": "Cleaned string", + "title": "Cleaned string" + } + } + } + } + }, + "summary": "File Friendly String", + "description": "Remove non-alphanumeric and - ( ) _ characters", + "operationId": "FILE_STRING", + "parameters": [ + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json", + "x-ms-visibility": "internal" + }, + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "pattern": { + "type": "string", + "description": "pattern", + "default": "/[^a-zA-Z0-9 \\-\\(\\)\\_]+/", + "x-ms-visibility": "internal" + }, + "subject": { + "type": "string", + "description": "String to clean", + "title": "String to clean" + } + }, + "required": [ + "pattern", + "subject" + ] + } + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://integrations.jgsolutions.co.nz/oauth/authorize", + "tokenUrl": "https://integrations.jgsolutions.co.nz/oauth/token", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} diff --git a/certified-connectors/JG Integrations/apiProperties.json b/certified-connectors/JG Integrations/apiProperties.json new file mode 100644 index 0000000000..4a324290e3 --- /dev/null +++ b/certified-connectors/JG Integrations/apiProperties.json @@ -0,0 +1,35 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[DUMMY]]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://integrations.jgsolutions.co.nz/oauth/authorize" + }, + "tokenUrl": { + "value": "https://integrations.jgsolutions.co.nz/oauth/token" + }, + "refreshUrl": { + "value": "https://integrations.jgsolutions.co.nz/oauth/token" + } + } + } + } + }, + "iconBrandColor": "#000000", + "capabilities": [], + "publisher": "JG Software Solutions Limited", + "stackOwner": "JG Software Solutions Limited" + } +} From eaf48fdde2c7739331d33ba487e88f99e6391f0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s?= Date: Tue, 11 Jan 2022 01:09:22 +0100 Subject: [PATCH 216/219] Viafirma (#1303) * updating PDF4me connect swagger (#1284) * Viafirma's certified connector * update brand color * Remove unrelated commit * Fix definitions * Update Readme.md * Add publisher section & fix summaries and responses information * Fix grammar errors on descriptions * Fix descriptions grammar errors * Undo removal file Co-authored-by: varunynoox <38215867+varunynoox@users.noreply.github.com> Co-authored-by: Andres Fuentes Co-authored-by: Andres Fuentes --- certified-connectors/Viafirma/Readme.md | 27 ++ .../Viafirma/apiDefinition.swagger.json | 395 ++++++++++++++++++ .../Viafirma/apiProperties.json | 35 ++ 3 files changed, 457 insertions(+) create mode 100644 certified-connectors/Viafirma/Readme.md create mode 100644 certified-connectors/Viafirma/apiDefinition.swagger.json create mode 100644 certified-connectors/Viafirma/apiProperties.json diff --git a/certified-connectors/Viafirma/Readme.md b/certified-connectors/Viafirma/Readme.md new file mode 100644 index 0000000000..42cd82fa18 --- /dev/null +++ b/certified-connectors/Viafirma/Readme.md @@ -0,0 +1,27 @@ +## Viafirma Connector +Viafirma lets you to sign and send documents anywhere. Automate processes with customers, suppliers and employees with our eSignature solution. + +## Publisher: Viafirma + +## Prerequisites +You will need a [Viafirma account](https://www.viafirma.com/en/contact/) to proceed. + +## Documentation +You can have have a look at our [documentation website](https://doc.viafirma.com/documents/api/latest/en/) for further information or reach out to the support team at support@viafirma.com + +## I need help with connector implementation. Can I contact you? +Of course, just send us a message at support@viafirma.com + +## Supported Operations +The connector supports the following operations: +* `Create signature requests`: Create signature requests and get the permanent link. +* `Send signature requests via email`: Create and send signature requests via email. + +## How to get credentials +To use this connector, you need a valid user account to sign in for Viafirma. Contact with us at https://www.viafirma.com/en/contact/ + +## Known Issues and Limitations +100 signature requests per minute can be sent. + +## Deployment Instructions +Please use [these instructions](https://docs.microsoft.com/en-us/connectors/custom-connectors/paconn-cli) to deploy this connector as custom connector in Microsoft Power Automate and Power Apps. diff --git a/certified-connectors/Viafirma/apiDefinition.swagger.json b/certified-connectors/Viafirma/apiDefinition.swagger.json new file mode 100644 index 0000000000..f1061b51d0 --- /dev/null +++ b/certified-connectors/Viafirma/apiDefinition.swagger.json @@ -0,0 +1,395 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0", + "title": "Viafirma", + "description": "Send sign requests to others, save your signed documents and much more thanks to Viafirma's connector", + "contact": { + "name": "Viafirma Support", + "url": "https://soporte.viafirma.com/", + "email": "helpdesk@viafirma.com" + } + }, + "host": "services.viafirma.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/documents/api/v3/messages/": { + "post": { + "summary": "Send signature requests via email", + "description": "Create and send signature requests via email.", + "operationId": "SendSignRequest", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json\r", + "description": "Content-Type", + "x-ms-summary" : "Content-Type" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "*/*\r", + "description": "Accept", + "x-ms-summary" : "Accept" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "groupCode": { + "type": "string", + "description": "groupCode", + "x-ms-dynamic-values": { + "operationId": "WhoIAm", + "value-path": "code", + "value-collection": "groupsInfo", + "value-title": "code" + } + }, + "workflow": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "type", + "default": "WEB", + "x-ms-visibility": "internal" + } + }, + "description": "workflow", + "required": [ + "type" + ] + }, + "notification": { + "type": "object", + "properties": { + "text": { + "type": "string", + "description": "text" + }, + "detail": { + "type": "string", + "description": "detail" + }, + "sharedLink": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "email" + }, + "subject": { + "type": "string", + "description": "subject" + } + }, + "description": "sharedLink", + "required": [ + "email" + ] + } + }, + "description": "notification", + "required": [ + "sharedLink" + ] + }, + "document": { + "type": "object", + "properties": { + "templateCode": { + "type": "string", + "description": "templateCode" + } + }, + "description": "document", + "required": [ + "templateCode" + ] + }, + "callbackMails": { + "type": "string", + "description": "callbackMails" + } + }, + "default": { + "groupCode": "your_group_here", + "workflow": { + "type": "WEB" + }, + "notification": { + "text": "Signature request test", + "detail": "Notified via email", + "sharedLink": { + "appCode": "com.viafirma.documents", + "email": "your_email_here", + "subject": "Remote signature test" + } + }, + "document": { + "templateCode": "templateSample" + }, + "callbackMails": "your_email_here" + }, + "required": [ + "workflow", + "document", + "groupCode", + "notification" + ] + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Request's code" + } + } + } + } + }, + "x-ms-visibility": "important" + } + }, + "/documents/api/v3/messages/dispatch": { + "post": { + "summary": "Create signature requests", + "description": "Create signature requests and get the permanent link.", + "operationId": "CreateSignRequest", + "parameters": [ + { + "name": "Content-Type", + "in": "header", + "required": true, + "type": "string", + "default": "application/json\r", + "description": "Content-Type", + "x-ms-summary": "Content-Type" + }, + { + "name": "Accept", + "in": "header", + "required": true, + "type": "string", + "default": "*/*\r", + "description": "Accept", + "x-ms-summary": "Accept" + }, + { + "name": "body", + "in": "body", + "schema": { + "type": "object", + "properties": { + "groupCode": { + "type": "string", + "description": "groupCode", + "x-ms-dynamic-values": { + "operationId": "WhoIAm", + "value-path": "groups-key-item-output", + "value-collection": "groups", + "value-title": "groups-key-item-output" + } + }, + "workflow": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "type", + "default": "PRESENTIAL", + "x-ms-visibility": "internal" + } + }, + "description": "workflow", + "required": [ + "type" + ] + }, + "document": { + "type": "object", + "properties": { + "templateCode": { + "type": "string", + "description": "templateCode" + } + }, + "description": "document", + "required": [ + "templateCode" + ] + } + }, + "default": { + "groupCode": "your_group_here", + "workflow": { + "type": "WEB" + }, + "document": { + "templateCode": "templateSample" + } + }, + "required": [ + "workflow", + "document", + "groupCode" + ] + }, + "required": true + } + ], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Request's code" + }, + "link": { + "type": "string", + "description": "Request's permalink" + } + } + } + } + }, + "x-ms-visibility": "important" + } + }, + "/documents/api/v3/template/list/mine": { + "get": { + "summary": "Get user's templates", + "description": "List all the user's templates.", + "operationId": "GetUserTemplates", + "parameters": [], + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "Template's code" + }, + "title": { + "type": "string", + "description": "Template's title" + }, + "description": { + "type": "string", + "description": "Template's description" + }, + "groups": { + "type": "string", + "description": "List of gropus" + }, + "version": { + "type": "string", + "description": "Template's version" + } + } + } + } + }, + "x-ms-visibility": "internal" + } + }, + "/documents/api/v3/users/whoiam/": { + "get": { + "responses": { + "200": { + "description": "200", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "User code" + }, + "nationalId": { + "type": "string", + "description": "User nationality" + }, + "email": { + "type": "string", + "description": "User email" + }, + "surname": { + "type": "string", + "description": "User surname" + }, + "rol": { + "type": "string", + "description": "User rol" + } + } + } + } + }, + "summary": "Get logged user data", + "description": "Check and retrieve important information about the current user.", + "operationId": "WhoIAm", + "x-ms-visibility": "internal", + "parameters": [] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue" : "https://www.viafirma.com/" + }, + { + "propertyName": "Privacy Policy", + "propertyValue": "https://www.viafirma.com/en/privacy-policy/" + }, + { + "propertyName": "Categories", + "propertyValue": "Productivity" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://services.viafirma.com/documents/api/v3/oauth2/authz", + "tokenUrl": "https://services.viafirma.com/documents/api/v3/oauth2/token", + "scopes": {} + } + }, + "security": [ + { + "oauth2_auth": [] + } + ], + "tags": [] +} \ No newline at end of file diff --git a/certified-connectors/Viafirma/apiProperties.json b/certified-connectors/Viafirma/apiProperties.json new file mode 100644 index 0000000000..db9b3946e1 --- /dev/null +++ b/certified-connectors/Viafirma/apiProperties.json @@ -0,0 +1,35 @@ +{ + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "[[DUMMY]]", + "scopes": [], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False", + "IsOnbehalfofLoginSupported": false + }, + "customParameters": { + "authorizationUrl": { + "value": "https://services.viafirma.com/documents/api/v3/oauth2/authz" + }, + "tokenUrl": { + "value": "https://services.viafirma.com/documents/api/v3/oauth2/token" + }, + "refreshUrl": { + "value": "https://services.viafirma.com/documents/api/v3/oauth2/token" + } + } + } + } + }, + "iconBrandColor": "#fefefe", + "capabilities": [], + "publisher": "Viafirma", + "stackOwner": "Viafirma" + } +} \ No newline at end of file From b2cf0258c03abeef816812392b67a6ec01ac35e5 Mon Sep 17 00:00:00 2001 From: Robin Larsson Date: Fri, 14 Jan 2022 10:42:49 +0200 Subject: [PATCH 217/219] Added new methods: - Sending reply messages - Create WhatsApp template - OptIn/OptOut for WhatsApp --- certified-connectors/SmartDialog/README.md | 7 +- .../SmartDialog/apiDefinition.swagger.json | 2079 +++++++++++------ .../SmartDialog/apiProperties.json | 66 +- 3 files changed, 1363 insertions(+), 789 deletions(-) diff --git a/certified-connectors/SmartDialog/README.md b/certified-connectors/SmartDialog/README.md index 32ebb0c5ea..df1aafa641 100644 --- a/certified-connectors/SmartDialog/README.md +++ b/certified-connectors/SmartDialog/README.md @@ -19,6 +19,11 @@ This connector can be used to send and recieve SMS messages using the SmartDialo ## Supported Actions +- New Message (Trigger for recieving messages) - Send Message - Send WhatsApp Message -- New Message (Trigger for recieving messages) +- Send Discussion Reply Message +- Send Reply Message +- WhatsApp Opt In +- WhatsApp Opt Out +- Create WhatsApp Template diff --git a/certified-connectors/SmartDialog/apiDefinition.swagger.json b/certified-connectors/SmartDialog/apiDefinition.swagger.json index 514e91cc95..cf6c56415a 100644 --- a/certified-connectors/SmartDialog/apiDefinition.swagger.json +++ b/certified-connectors/SmartDialog/apiDefinition.swagger.json @@ -1,808 +1,1377 @@ { - "swagger": "2.0", - "info": { - "version": "1.0", - "title": "SmartDialog", - "description": "SmartDialog is a platform used to send and receive SMS- and WhatsApp messages. It offers a wide variety of smart messaging services.", - "contact": { - "name": "Arena Interactive Support", - "email": "support@arenainteractive.fi", - "url": "https://www.arenainteractive.fi/contact" - } - }, - "host": "api.arena.fi", - "basePath": "/api-integrations/v1", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [], - "paths": { - "/customers": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "customerUsers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "customerId": { + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "SmartDialog", + "description": "SmartDialog is a platform used to send and receive SMS- and WhatsApp messages. It offers a wide variety of smart messaging services.", + "contact": { + "name": "Arena Interactive Support", + "email": "support@arenainteractive.fi", + "url": "https://www.arenainteractive.fi/contact" + } + }, + "host": "api.arena.fi", + "basePath": "/api-integrations/v1", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/customers": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customerUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "customerId", + "title": "Customer Id" + }, + "customerName": { + "type": "string", + "description": "customerName", + "title": "Customer Name" + } + } + }, + "description": "customerUsers" + } + } + } + } + }, + "summary": "Get User Customers", + "description": "Get signed in User's assigned Customers.", + "operationId": "GetUserCustomers", + "x-ms-visibility": "internal", + "parameters": [] + } + }, + "/messages": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { + "type": "string", + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } + } + }, + "description": "Recipients" + } + } + } + } + }, + "summary": "Send Message", + "description": "Send a Message to recipients.", + "x-ms-visibility": "important", + "operationId": "SendMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "Customer-Id", + "in": "header", + "required": true, "type": "string", - "description": "customerId", - "title": "Customer Id" - }, - "customerName": { + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, "type": "string", - "description": "customerName", - "title": "Customer Name" - } + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + }, + "ServiceType": "OneWay", + "AllowReplyMessage": false + } + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Sender": { + "type": "string", + "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", + "title": "Message Sender", + "x-ms-visibility": "important" + }, + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "Protocol": { + "type": "string", + "description": "The protocol to use for sending the message.", + "title": "Message Protocol", + "default": "SMS", + "x-ms-visibility": "important", + "enum": [ + "SMS" + ] + }, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime", + "format": "date-time", + "x-ms-visibility": "important" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Message recipient address.", + "title": "Address", + "x-ms-visibility": "important" + }, + "Personalization": { + "type": "object", + "properties": {}, + "description": "Any placeholder values for the recipient as a simple key:value object.", + "title": "Personalization" + } + }, + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "AttachmentUri": { + "type": "string", + "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", + "title": "Attachment Uri" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + }, + "AdMessage": { + "type": "boolean", + "description": "Optional overriding flag for marking the message as an ad message", + "title": "Ad Message" + }, + "DlrUrl": { + "type": "string", + "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", + "example": "https://api.company.com/Dlr", + "title": "Dlr Url" + } + }, + "required": [ + "Sender", + "Protocol", + "Content", + "Recipients" + ] + } } - }, - "description": "customerUsers" - } - } + ] } - } }, - "summary": "Get User Customers", - "description": "Get signed in User's assigned Customers.", - "operationId": "GetUserCustomers", - "x-ms-visibility": "internal", - "parameters": [] - } - }, - "/messages": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "MessageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "MessagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" + "/messages/reply/{ParentMessageId}": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { + "type": "string", + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } + } + }, + "description": "Recipients" + } + } + } + } }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { + "summary": "Send Reply Message", + "description": "Send a Replymessage to recipients.", + "x-ms-visibility": "important", + "operationId": "SendReplyMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "ParentMessageId", + "in": "path", + "required": true, "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "Id": { + "description": "The Parent message Id to reply to.", + "x-ms-summary": "ParentMessage Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "Customer-Id", + "in": "header", + "required": true, "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + }, + "ServiceType": "OneWay", + "AllowReplyMessage": true + } + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Sender": { + "type": "string", + "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", + "title": "Message Sender", + "x-ms-visibility": "important" + }, + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "Protocol": { + "type": "string", + "description": "The protocol to use for sending the message.", + "title": "Message Protocol", + "default": "SMS", + "x-ms-visibility": "important", + "enum": [ + "SMS" + ] + }, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime", + "format": "date-time", + "x-ms-visibility": "important" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Message recipient address.", + "title": "Address", + "x-ms-visibility": "important" + }, + "Personalization": { + "type": "object", + "properties": {}, + "description": "Any placeholder values for the recipient as a simple key:value object.", + "title": "Personalization" + } + }, + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "AttachmentUri": { + "type": "string", + "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", + "title": "Attachment Uri" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + }, + "AdMessage": { + "type": "boolean", + "description": "Optional overriding flag for marking the message as an ad message", + "title": "Ad Message" + }, + "DlrUrl": { + "type": "string", + "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", + "example": "https://api.company.com/Dlr", + "title": "Dlr Url" + } + }, + "required": [ + "Sender", + "Protocol", + "Content", + "Recipients" + ] + } } - }, - "description": "Recipients" - } - } + ] } - } }, - "summary": "Send Message", - "description": "Send a Message to recipients.", - "x-ms-visibility": "important", - "operationId": "SendMessage", - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "Customer-Id", - "in": "header", - "required": true, - "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service-Id", - "in": "header", - "required": true, - "type": "string", - "description": "The Service to use for sending.", - "x-ms-summary": "Service", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" + "/messages/discussion/reply": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { + "type": "string", + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } + } + }, + "description": "Recipients" + }, + "ThreadId": { + "type": "string", + "description": "Identifier of Thread that the message was sent to." + } + } + } + } }, - "ServiceType": "OneWay" - } + "summary": "Send Discussion Reply Message", + "description": "Send a Discussion Reply Message to recipients.", + "x-ms-visibility": "important", + "operationId": "SendDiscussionReplyMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "CustomerId", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "ThreadId": { + "type": "string", + "description": "Id of the existing Thread to reply to.", + "title": "Thread Id", + "x-ms-visibility": "important" + }, + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + } + }, + "required": [ + "ThreadId", + "Content" + ] + } + } + ] } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "Sender": { - "type": "string", - "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", - "title": "Message Sender", - "x-ms-visibility": "important" - }, - "Content": { - "type": "string", - "description": "The content of the message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "Protocol": { - "type": "string", - "description": "The protocol to use for sending the message.", - "title": "Message Protocol", - "default": "SMS", - "x-ms-visibility": "important", - "enum": [ - "SMS" - ] - }, - "SendDateTime": { - "type": "string", - "description": "The date and time to send the message. Leave empty to send instantly.", - "title": "Send Datetime", - "format": "date-time", - "x-ms-visibility": "important" - }, - "Recipients": { - "type": "array", - "items": { + }, + "/service/{Service}/pipelines/actions": { + "x-ms-notification-content": { + "schema": { "type": "object", "properties": { - "Address": { - "type": "string", - "description": "Message recipient address.", - "title": "Address", - "x-ms-visibility": "important" - }, - "Personalization": { - "type": "object", - "properties": {}, - "description": "Any placeholder values for the recipient as a simple key:value object.", - "title": "Personalization" - } - }, - "required": [ - "Address" - ] - }, - "description": "Recipients" - }, - "AttachmentUri": { - "type": "string", - "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", - "title": "Attachment Uri" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional", - "title": "Customer Data" - }, - "AdMessage": { - "type": "boolean", - "description": "Optional overriding flag for marking the message as an ad message", - "title": "Ad Message" + "sender": { + "type": "string", + "description": "The message sender.", + "title": "Message Sender", + "x-ms-visibility": "important" + }, + "recipient": { + "type": "string", + "description": "The recipient of the message.", + "title": "Message Recipient", + "x-ms-visibility": "important" + }, + "content": { + "type": "string", + "description": "The content of the received message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "timestamp": { + "type": "string", + "description": "The timestamp of the message.", + "title": "Message Timestamp", + "x-ms-visibility": "important", + "format": "date-time" + }, + "protocol": { + "type": "string", + "description": "The protocol of the received message.", + "title": "Message Protocol", + "x-ms-visibility": "important" + }, + "attachments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The filename of the attachment.", + "title": "Attachment Filename", + "x-ms-visibility": "important" + }, + "mimeType": { + "type": "string", + "description": "The mime type of the attachment.", + "title": "Attachment Mime Type", + "x-ms-visibility": "important" + }, + "resourceLocation": { + "type": "string", + "description": "The attachment resource location.", + "title": "Attachment Resource Location", + "x-ms-visibility": "important" + } + } + }, + "description": "attachments" + }, + "messageId": { + "type": "string", + "description": "The unique message Id of the received message.", + "title": "Message Id", + "x-ms-visibility": "important" + } + } }, - "DlrUrl": { - "type": "string", - "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", - "example": "https://api.company.com/Dlr", - "title": "Dlr Url" - } - }, - "required": [ - "Sender", - "Protocol", - "Content", - "Recipients" - ] - } - } - ] - } - }, - "/service/{Service}/pipelines/actions": { - "x-ms-notification-content": { - "schema": { - "type": "object", - "properties": { - "sender": { - "type": "string", - "description": "The message sender.", - "title": "Message Sender", - "x-ms-visibility": "important" - }, - "recipient": { - "type": "string", - "description": "The recipient of the message.", - "title": "Message Recipient", - "x-ms-visibility": "important" - }, - "content": { - "type": "string", - "description": "The content of the received message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "timestamp": { - "type": "string", - "description": "The timestamp of the message.", - "title": "Message Timestamp", - "x-ms-visibility": "important", - "format": "date-time" + "description": "New message callback response" }, - "protocol": { - "type": "string", - "description": "The protocol of the received message.", - "title": "Message Protocol", - "x-ms-visibility": "important" - }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The filename of the attachment.", - "title": "Attachment Filename", - "x-ms-visibility": "important" - }, - "mimeType": { - "type": "string", - "description": "The mime type of the attachment.", - "title": "Attachment Mime Type", - "x-ms-visibility": "important" - }, - "resourceLocation": { - "type": "string", - "description": "The attachment resource location.", - "title": "Attachment Resource Location", - "x-ms-visibility": "important" - } - } - }, - "description": "attachments" + "post": { + "responses": { + "201": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ActionId" + } + } + } + } + }, + "consumes": [ + "application/json" + ], + "operationId": "NewMessage", + "summary": "New Message", + "description": "When a new message arrives to a 2-Way service.", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Customer", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service", + "in": "path", + "required": true, + "type": "string", + "description": "The 2-Way service to use.", + "x-ms-summary": "Service", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer" + }, + "ServiceType": "TwoWay" + } + } + }, + { + "name": "Create webhook request body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The action name.", + "title": "Action Name", + "x-ms-visibility": "internal", + "default": "PowerAutomate (Auto Created Webhook)" + }, + "actionType": { + "type": "string", + "description": "The type of action to create.", + "title": "Action Type", + "x-ms-visibility": "internal", + "default": "HttpRequest" + }, + "description": { + "type": "string", + "description": "The action description.", + "title": "Action Description", + "x-ms-visibility": "internal", + "default": "PowerAutomate auto-created webhook. Please don´t modify. Will be removed by PowerAutomate , when the Flow/Logic App is disabled or removed" + }, + "options": { + "type": "object", + "properties": { + "endpointUrl": { + "type": "string", + "description": "Webhook callback url.", + "title": "Endpoint Url", + "x-ms-visibility": "internal", + "x-ms-notification-url": true + }, + "httpVerb": { + "type": "string", + "description": "The http method to use for creating the webhook.", + "title": "Http Method", + "x-ms-visibility": "internal", + "default": "POST" + } + }, + "description": "options", + "required": [ + "endpointUrl", + "httpVerb" + ] + } + }, + "required": [ + "actionType", + "description", + "name", + "options" + ] + } + } + ] } - } }, - "description": "New message callback response" - }, - "post": { - "responses": { - "201": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ActionId" - } - } + "/services/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Service Identifier.", + "title": "Service Id" + }, + "name": { + "type": "string", + "description": "", + "title": "Service Name" + } + } + } + } + } + }, + "summary": "Get Customer Services", + "description": "Get a specific Customer's services.", + "operationId": "GetCustomerServices", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Customer", + "x-ms-url-encoding": "single", + "description": "The Customer to use for getting services." + }, + { + "name": "ServiceType", + "in": "header", + "required": true, + "type": "string", + "default": "OneWay", + "x-ms-visibility": "internal", + "x-ms-summary": "Service Type", + "description": "Type of service to fetch." + }, + { + "name": "AllowReplyMessage", + "in": "header", + "required": true, + "type": "boolean", + "default": false, + "x-ms-visibility": "internal", + "x-ms-summary": "Allow Reply Message", + "description": "Filter by services that support reply messages." + } + ] } - } }, - "consumes": [ - "application/json" - ], - "operationId": "NewMessage", - "summary": "New Message", - "description": "When a new message arrives to a 2-Way service.", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Customer", - "in": "header", - "required": true, - "type": "string", - "description": "The Customer to use.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service", - "in": "path", - "required": true, - "type": "string", - "description": "The 2-Way service to use.", - "x-ms-summary": "Service", - "x-ms-url-encoding": "single", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer" + "/pipelines/{Pipeline-Id}/actions/{Action-Id}": { + "delete": { + "responses": { + "204": { + "description": "default", + "schema": {} + } }, - "ServiceType": "TwoWay" - } + "summary": "Delete webhook", + "description": "Action used to delete the web hook created by the NewMessage trigger.", + "operationId": "DeleteTrigger", + "parameters": [ + { + "name": "Pipeline-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Pipeline Id", + "x-ms-url-encoding": "single", + "description": "Identifier of the action pipeline." + }, + { + "name": "Action-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Action Id", + "x-ms-url-encoding": "single", + "description": "Identifier of the two-way service pipeline-action to delete." + } + ], + "x-ms-visibility": "internal" } - }, - { - "name": "Create webhook request body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The action name.", - "title": "Action Name", - "x-ms-visibility": "internal", - "default": "PowerAutomate (Auto Created Webhook)" - }, - "actionType": { - "type": "string", - "description": "The type of action to create.", - "title": "Action Type", - "x-ms-visibility": "internal", - "default": "HttpRequest" - }, - "description": { - "type": "string", - "description": "The action description.", - "title": "Action Description", - "x-ms-visibility": "internal", - "default": "PowerAutomate auto-created webhook. Please don\u00b4t modify. Will be removed by PowerAutomate , when the Flow/Logic App is disabled or removed" + }, + "/whatsapp/templates/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The Template name.", + "title": "Template Name", + "x-ms-visibility": "internal" + }, + "displayName": { + "type": "string", + "description": "The template Displayname.", + "title": "Displayname" + }, + "extensionParameters": { + "type": "object", + "properties": { + "rawContent": { + "type": "string", + "description": "The Templace content.", + "title": "Template Content", + "x-ms-visibility": "internal" + } + } + } + } + } + } + } }, - "options": { - "type": "object", - "properties": { - "endpointUrl": { - "type": "string", - "description": "Webhook callback url.", - "title": "Endpoint Url", - "x-ms-visibility": "internal", - "x-ms-notification-url": true + "operationId": "GetCustomerWhatsAppTemplates", + "summary": "Get Customer WhatsApp Templates", + "description": "Get the selected Customer's WhatsApp templates.", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" }, - "httpVerb": { - "type": "string", - "description": "The http method to use for creating the webhook.", - "title": "Http Method", - "x-ms-visibility": "internal", - "default": "POST" + { + "name": "TemplateId", + "in": "query", + "required": false, + "type": "string" } - }, - "description": "options", - "required": [ - "endpointUrl", - "httpVerb" - ] - } - }, - "required": [ - "actionType", - "description", - "name", - "options" - ] + ] } - } - ] - } - }, - "/services/{Customer-Id}": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Service Identifier.", - "title": "Service Id" - }, - "name": { - "type": "string", - "description": "", - "title": "Service Name" - } - } - } - } - } - }, - "summary": "Get Customer Services", - "description": "Get a specific Customer's services.", - "operationId": "GetCustomerServices", - "x-ms-visibility": "internal", - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Customer", - "x-ms-url-encoding": "single", - "description": "The Customer to use for getting services." - }, - { - "name": "ServiceType", - "in": "header", - "required": true, - "type": "string", - "default": "OneWay", - "x-ms-visibility": "internal", - "x-ms-summary": "Service Type", - "description": "Type of service to fetch." - } - ] - } - }, - "/pipelines/{Pipeline-Id}/actions/{Action-Id}": { - "delete": { - "responses": { - "204": { - "description": "default", - "schema": {} - } }, - "summary": "Delete webhook", - "description": "Action used to delete the web hook created by the NewMessage trigger.", - "operationId": "DeleteTrigger", - "parameters": [ - { - "name": "Pipeline-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Pipeline Id", - "x-ms-url-encoding": "single", - "description": "Identifier of the action pipeline." - }, - { - "name": "Action-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Action Id", - "x-ms-url-encoding": "single", - "description": "Identifier of the two-way service pipeline-action to delete." - } - ], - "x-ms-visibility": "internal" - } - }, - "/whatsapp/templates/{Customer-Id}": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The Template name.", - "title": "Template Name", - "x-ms-visibility": "internal" - }, - "displayName": { - "type": "string", - "description": "The template Displayname.", - "title": "Displayname" - }, - "extensionParameters": { - "type": "object", - "properties": { - "rawContent": { + "/whatsapp/templates/{Customer-Id}/{IdentityNumber}": { + "post": { + "responses": { + "default": { + "description": "default", + "schema": {} + } + }, + "operationId": "CreateWhatsappTemplate", + "summary": "Create WhatsApp template", + "description": "Create a new WhatsApp template.", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + }, + "x-ms-summary": "Customer", + "description": "The Customer to create the Template for." + }, + { + "name": "IdentityNumber", + "in": "path", + "required": true, "type": "string", - "description": "The Templace content.", - "title": "Template Content", - "x-ms-visibility": "internal" - } + "x-ms-visibility": "important", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetCustomerWhatsappIdentities", + "value-path": "inputSource/address", + "value-title": "inputSource/address", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + } + } + }, + "description": "WhatsApp IdentityNumber used for the template.", + "x-ms-summary": "IdentityNumber" + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "DisplayName": { + "type": "string", + "description": "Template Displayname.", + "maxLength": 100, + "title": "Displayname" + }, + "RawContent": { + "type": "string", + "description": "Template content.", + "title": "Content" + }, + "Category": { + "type": "string", + "description": "WhatsApp template category.", + "title": "Template Category", + "enum": [ + "Account Update", + "Alert Update", + "Appointment Update", + "Issue Resolution", + "Payment Update", + "Personal Finance Update", + "Reservation Update", + "Shipping Update", + "Ticket Update", + "Transportation Update" + ] + }, + "Language": { + "type": "string", + "description": "2-character code for template language.", + "title": "Template Language" + }, + "Buttons": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "Type of Button.", + "title": "Button Type", + "enum": [ + "Call", + "QuickReply", + "Url" + ] + }, + "Label": { + "type": "string", + "description": "Button Label.", + "title": "Button Label" + }, + "Data": { + "type": "string", + "description": "Button data. Url (Url), phone number (Call) or text (QuickReply). Max length is 2000 for Url, and 20 for phone number and text.", + "title": "Button Data" + } + } + }, + "description": "WhatsApp template Buttons." + }, + "AttachmentUrl": { + "type": "string", + "description": "URL to an example attachment.", + "title": "Attachment Url" + } + }, + "required": [ + "DisplayName", + "Category", + "Language", + "RawContent" + ] + } } - } - } - } + ] } - } }, - "operationId": "GetCustomerWhatsAppTemplates", - "summary": "Get Customer WhatsApp Templates", - "description": "Get the selected Customer's WhatsApp templates.", - "x-ms-visibility": "internal", - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "x-ms-url-encoding": "single", - "required": true, - "type": "string" - } - ] - } - }, - "/messages/templates/whatsapp": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "messagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" + "/messages/templates/whatsapp": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "messagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "id": { + "type": "string", + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } + } + }, + "description": "recipients" + } + } + } + } }, - "recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "address": { + "consumes": [ + "application/json" + ], + "operationId": "SendWhatsappTemplateMessage", + "x-ms-visibility": "important", + "summary": "Send WhatsApp Message", + "description": "Send WhatsApp template message.", + "parameters": [ + { + "name": "Customer-Id", + "in": "header", + "required": true, "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "id": { + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + }, + "ServiceType": "OneWay", + "AllowReplyMessage": false + } + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "TemplateName": { + "type": "string", + "description": "The Template to use for sending.", + "title": "WhatsApp Template", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerWhatsAppTemplates", + "value-path": "id", + "value-title": "extensionParameters/rawContent", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + } + } + } + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { + "type": "string", + "description": "Message recipient address.", + "title": "Address" + } + }, + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "BodyParameters": { + "type": "array", + "items": { + "type": "string", + "description": "Array of string parameters to be used in the body of the selected template.", + "title": "Template Body Parameters", + "x-ms-visibility": "important" + }, + "description": "BodyParameters" + }, + "HeaderParameters": { + "type": "array", + "items": { + "type": "string", + "description": "Array of string parameters to be used in the header of the selected template.", + "title": "Template Header Parameters" + }, + "description": "HeaderParameters" + }, + "Buttons": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "The button type. Only one type per template, may contain multiple of the same type.", + "title": "Type", + "enum": [ + "Call", + "QuickReply", + "Url" + ] + }, + "Data": { + "type": "string", + "description": "The text of the button.", + "title": "Text" + } + } + }, + "description": "Buttons" + }, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime" + }, + "AttachmentUri": { + "type": "string", + "description": "The Attachment Uri if the template contains an attachment.", + "title": "Attachment Uri" + }, + "UseSmsFallback": { + "type": "boolean", + "description": "Should SMS be used as fallback.", + "title": "Use SMS Fallback" + }, + "DlrUrl": { + "type": "string", + "description": "Delivery report Url that will recieve a callback when the sendprocess completes.", + "title": "Dlr Url" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + } + }, + "required": [ + "TemplateName", + "Recipients", + "BodyParameters" + ] + } } - }, - "description": "recipients" - } - } + ] } - } }, - "consumes": [ - "application/json" - ], - "operationId": "SendWhatsappTemplateMessage", - "x-ms-visibility": "important", - "summary": "Send WhatsApp Message", - "description": "Send WhatsApp template message.", - "parameters": [ - { - "name": "Customer-Id", - "in": "header", - "required": true, - "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service-Id", - "in": "header", - "required": true, - "type": "string", - "description": "The Service to use for sending.", - "x-ms-summary": "Service", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" + "/whatsapp/identities/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "inputSource": { + "type": "object", + "properties": { + "address": { + "type": "string", + "description": "WhatsApp identity number.", + "title": "Identity Number" + } + }, + "description": "inputSource" + } + } + } + } + } }, - "ServiceType": "OneWay" - } + "operationId": "GetCustomerWhatsappIdentities", + "x-ms-visibility": "internal", + "summary": "Get Customer WhatsApp Identities", + "description": "Gets the Customers available WhatsApp identities.", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + }, + "x-ms-visibility": "important" + } + ] } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "TemplateName": { - "type": "string", - "description": "The Template to use for sending.", - "title": "WhatsApp Template", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerWhatsAppTemplates", - "value-path": "id", - "value-title": "extensionParameters/rawContent", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - } + }, + "/whatsapp/opt-in/sender/{Sender}/recipient/{Recipient}": { + "delete": { + "responses": { + "204": { + "description": "default", + "schema": {} } - } }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { + "operationId": "WhatsAppOptOut", + "x-ms-visibility": "important", + "summary": "WhatsApp Opt Out", + "description": "WhatsApp Opt Out for sender and recipient.", + "parameters": [ + { + "name": "Sender", + "in": "path", + "required": true, "type": "string", - "description": "Message recipient address.", - "title": "Address" - } + "x-ms-summary": "Sender address", + "x-ms-url-encoding": "single", + "description": "Registered Whatsapp identity number to opt-out from." }, - "required": [ - "Address" - ] - }, - "description": "Recipients" - }, - "BodyParameters": { - "type": "array", - "items": { - "type": "string", - "description": "Array of string parameters to be used in the body of the selected template.", - "title": "Template Body Parameters", - "x-ms-visibility": "important" - }, - "description": "BodyParameters" - }, - "HeaderParameters": { - "type": "array", - "items": { - "type": "string", - "description": "Array of string parameters to be used in the header of the selected template.", - "title": "Template Header Parameters" - }, - "description": "HeaderParameters" + { + "name": "Recipient", + "in": "path", + "required": true, + "type": "string", + "description": "Recipent number to remove from opt-in.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Recipient address" + } + ] + }, + "post": { + "responses": { + "204": { + "description": "default", + "schema": {} + } }, - "Buttons": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Type": { + "operationId": "WhatsAppOptIn", + "x-ms-visibility": "important", + "summary": "WhatsApp Opt In", + "description": "WhatsApp Opt In for sender and recipient.", + "parameters": [ + { + "name": "Sender", + "in": "path", + "required": true, "type": "string", - "description": "The button type. Only one type per template, may contain multiple of the same type.", - "title": "Type", - "enum": [ - "Call", - "QuickReply", - "Url" - ] - }, - "Data": { + "x-ms-summary": "Sender address", + "x-ms-url-encoding": "single", + "description": "Registered Whatsapp identity number to opt-in to." + }, + { + "name": "Recipient", + "in": "path", + "required": true, "type": "string", - "description": "The text of the button.", - "title": "Text" - } + "x-ms-url-encoding": "single", + "description": "Recipient number to opt-in.", + "x-ms-summary": "Recipient address" } - }, - "description": "Buttons" - }, - "SendDateTime": { - "type": "string", - "description": "The date and time to send the message. Leave empty to send instantly.", - "title": "Send Datetime" - }, - "AttachmentUri": { - "type": "string", - "description": "The Attachment Uri if the template contains an attachment.", - "title": "Attachment Uri" - }, - "UseSmsFallback": { - "type": "boolean", - "description": "Should SMS be used as fallback.", - "title": "Use SMS Fallback" - }, - "DlrUrl": { - "type": "string", - "description": "Delivery report Url that will recieve a callback when the sendprocess completes.", - "title": "Dlr Url" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional", - "title": "Customer Data" - } - }, - "required": [ - "TemplateName", - "Recipients", - "BodyParameters" - ] + ] } - } - ] - } - } - }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.arenainteractive.fi" + } }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.arenainteractive.fi/privacypolicy" + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.arenainteractive.fi" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.arenainteractive.fi/privacypolicy" + }, + { + "propertyName": "Categories", + "propertyValue": "Communication;Collaboration" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize", + "tokenUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token", + "scopes": { + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply": "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + } + } }, - { - "propertyName": "Categories", - "propertyValue": "Communication;Collaboration" - } - ], - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": { - "oauth2_auth": { - "type": "oauth2", - "flow": "accessCode", - "authorizationUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize", - "tokenUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token", - "scopes": { - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp": "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp" - } - } - }, - "security": [ - { - "oauth2_auth": [ - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp" - ] - } - ], - "tags": [] + "security": [ + { + "oauth2_auth": [ + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + ] + } + ], + "tags": [] } \ No newline at end of file diff --git a/certified-connectors/SmartDialog/apiProperties.json b/certified-connectors/SmartDialog/apiProperties.json index 9a9bb9d37e..4ca16eae50 100644 --- a/certified-connectors/SmartDialog/apiProperties.json +++ b/certified-connectors/SmartDialog/apiProperties.json @@ -1,36 +1,36 @@ { - "properties": { - "connectionParameters": { - "token": { - "type": "oauthSetting", - "oAuthSettings": { - "identityProvider": "oauth2", - "clientId": "", - "scopes": [ - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp" - ], - "redirectMode": "Global", - "redirectUrl": "https://global.consent.azure-apim.net/redirect", - "properties": { - "IsFirstParty": "False" - }, - "customParameters": { - "authorizationUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize" - }, - "tokenUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" - }, - "refreshUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "", + "scopes": [ + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize" + }, + "tokenUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" + }, + "refreshUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" + } + } + } } - } - } - } - }, - "iconBrandColor": "#254A8E", - "capabilities": [], - "publisher": "Arena Interactive Oy", - "stackOwner": "Arena Interactive Oy" - } + }, + "iconBrandColor": "#254A8E", + "capabilities": [], + "publisher": "Arena Interactive Oy", + "stackOwner": "Arena Interactive Oy" + } } \ No newline at end of file From 2d950c3d6b8ece44ccbe42173d470a0616366aad Mon Sep 17 00:00:00 2001 From: Robin Larsson Date: Fri, 14 Jan 2022 11:58:25 +0200 Subject: [PATCH 218/219] Removed default value and made boolean parameter not required --- certified-connectors/SmartDialog/apiDefinition.swagger.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/certified-connectors/SmartDialog/apiDefinition.swagger.json b/certified-connectors/SmartDialog/apiDefinition.swagger.json index cf6c56415a..238b7d376f 100644 --- a/certified-connectors/SmartDialog/apiDefinition.swagger.json +++ b/certified-connectors/SmartDialog/apiDefinition.swagger.json @@ -778,9 +778,8 @@ { "name": "AllowReplyMessage", "in": "header", - "required": true, + "required": false, "type": "boolean", - "default": false, "x-ms-visibility": "internal", "x-ms-summary": "Allow Reply Message", "description": "Filter by services that support reply messages." From 7cb200af836e5e9450403b8c40be0160d5948682 Mon Sep 17 00:00:00 2001 From: Robin Larsson Date: Mon, 17 Jan 2022 09:21:44 +0200 Subject: [PATCH 219/219] Fixed indentation and empty response schema --- .../SmartDialog/apiDefinition.swagger.json | 2612 ++++++++--------- .../SmartDialog/apiProperties.json | 66 +- 2 files changed, 1337 insertions(+), 1341 deletions(-) diff --git a/certified-connectors/SmartDialog/apiDefinition.swagger.json b/certified-connectors/SmartDialog/apiDefinition.swagger.json index 238b7d376f..3668df4069 100644 --- a/certified-connectors/SmartDialog/apiDefinition.swagger.json +++ b/certified-connectors/SmartDialog/apiDefinition.swagger.json @@ -1,1376 +1,1372 @@ { - "swagger": "2.0", - "info": { - "version": "1.0", - "title": "SmartDialog", - "description": "SmartDialog is a platform used to send and receive SMS- and WhatsApp messages. It offers a wide variety of smart messaging services.", - "contact": { - "name": "Arena Interactive Support", - "email": "support@arenainteractive.fi", - "url": "https://www.arenainteractive.fi/contact" - } - }, - "host": "api.arena.fi", - "basePath": "/api-integrations/v1", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [], - "paths": { - "/customers": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "customerUsers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "customerId": { - "type": "string", - "description": "customerId", - "title": "Customer Id" - }, - "customerName": { - "type": "string", - "description": "customerName", - "title": "Customer Name" - } - } - }, - "description": "customerUsers" - } - } - } + "swagger": "2.0", + "info": { + "version": "1.0", + "title": "SmartDialog", + "description": "SmartDialog is a platform used to send and receive SMS- and WhatsApp messages. It offers a wide variety of smart messaging services.", + "contact": { + "name": "Arena Interactive Support", + "email": "support@arenainteractive.fi", + "url": "https://www.arenainteractive.fi/contact" + } + }, + "host": "api.arena.fi", + "basePath": "/api-integrations/v1", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [], + "paths": { + "/customers": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "customerUsers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "customerId": { + "type": "string", + "description": "customerId", + "title": "Customer Id" + }, + "customerName": { + "type": "string", + "description": "customerName", + "title": "Customer Name" + } } - }, - "summary": "Get User Customers", - "description": "Get signed in User's assigned Customers.", - "operationId": "GetUserCustomers", - "x-ms-visibility": "internal", - "parameters": [] + }, + "description": "customerUsers" + } + } } + } }, - "/messages": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "MessageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "MessagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "Id": { - "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } - } - }, - "description": "Recipients" - } - } - } - } + "summary": "Get User Customers", + "description": "Get signed in User's assigned Customers.", + "operationId": "GetUserCustomers", + "x-ms-visibility": "internal", + "parameters": [] + } + }, + "/messages": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" }, - "summary": "Send Message", - "description": "Send a Message to recipients.", - "x-ms-visibility": "important", - "operationId": "SendMessage", - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "Customer-Id", - "in": "header", - "required": true, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service-Id", - "in": "header", - "required": true, + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { "type": "string", - "description": "The Service to use for sending.", - "x-ms-summary": "Service", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - }, - "ServiceType": "OneWay", - "AllowReplyMessage": false - } - } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "Sender": { - "type": "string", - "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", - "title": "Message Sender", - "x-ms-visibility": "important" - }, - "Content": { - "type": "string", - "description": "The content of the message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "Protocol": { - "type": "string", - "description": "The protocol to use for sending the message.", - "title": "Message Protocol", - "default": "SMS", - "x-ms-visibility": "important", - "enum": [ - "SMS" - ] - }, - "SendDateTime": { - "type": "string", - "description": "The date and time to send the message. Leave empty to send instantly.", - "title": "Send Datetime", - "format": "date-time", - "x-ms-visibility": "important" - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Message recipient address.", - "title": "Address", - "x-ms-visibility": "important" - }, - "Personalization": { - "type": "object", - "properties": {}, - "description": "Any placeholder values for the recipient as a simple key:value object.", - "title": "Personalization" - } - }, - "required": [ - "Address" - ] - }, - "description": "Recipients" - }, - "AttachmentUri": { - "type": "string", - "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", - "title": "Attachment Uri" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional.", - "title": "Customer Data" - }, - "AdMessage": { - "type": "boolean", - "description": "Optional overriding flag for marking the message as an ad message", - "title": "Ad Message" - }, - "DlrUrl": { - "type": "string", - "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", - "example": "https://api.company.com/Dlr", - "title": "Dlr Url" - } - }, - "required": [ - "Sender", - "Protocol", - "Content", - "Recipients" - ] - } + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } } - ] + }, + "description": "Recipients" + } + } } + } }, - "/messages/reply/{ParentMessageId}": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "MessageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "MessagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "Id": { - "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } - } - }, - "description": "Recipients" - } - } - } - } + "summary": "Send Message", + "description": "Send a Message to recipients.", + "x-ms-visibility": "important", + "operationId": "SendMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "Customer-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + }, + "ServiceType": "OneWay", + "AllowReplyMessage": false + } + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Sender": { + "type": "string", + "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", + "title": "Message Sender", + "x-ms-visibility": "important" + }, + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "Protocol": { + "type": "string", + "description": "The protocol to use for sending the message.", + "title": "Message Protocol", + "default": "SMS", + "x-ms-visibility": "important", + "enum": [ + "SMS" + ] }, - "summary": "Send Reply Message", - "description": "Send a Replymessage to recipients.", - "x-ms-visibility": "important", - "operationId": "SendReplyMessage", - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "ParentMessageId", - "in": "path", - "required": true, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime", + "format": "date-time", + "x-ms-visibility": "important" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "description": "The Parent message Id to reply to.", - "x-ms-summary": "ParentMessage Id", - "x-ms-visibility": "important", - "x-ms-url-encoding": "single" + "description": "Message recipient address.", + "title": "Address", + "x-ms-visibility": "important" + }, + "Personalization": { + "type": "object", + "properties": {}, + "description": "Any placeholder values for the recipient as a simple key:value object.", + "title": "Personalization" + } }, - { - "name": "Customer-Id", - "in": "header", - "required": true, + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "AttachmentUri": { + "type": "string", + "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", + "title": "Attachment Uri" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + }, + "AdMessage": { + "type": "boolean", + "description": "Optional overriding flag for marking the message as an ad message", + "title": "Ad Message" + }, + "DlrUrl": { + "type": "string", + "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", + "example": "https://api.company.com/Dlr", + "title": "Dlr Url" + } + }, + "required": [ + "Sender", + "Protocol", + "Content", + "Recipients" + ] + } + } + ] + } + }, + "/messages/reply/{ParentMessageId}": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service-Id", - "in": "header", - "required": true, + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { "type": "string", - "description": "The Service to use for sending.", - "x-ms-summary": "Service", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - }, - "ServiceType": "OneWay", - "AllowReplyMessage": true - } - } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "Sender": { - "type": "string", - "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", - "title": "Message Sender", - "x-ms-visibility": "important" - }, - "Content": { - "type": "string", - "description": "The content of the message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "Protocol": { - "type": "string", - "description": "The protocol to use for sending the message.", - "title": "Message Protocol", - "default": "SMS", - "x-ms-visibility": "important", - "enum": [ - "SMS" - ] - }, - "SendDateTime": { - "type": "string", - "description": "The date and time to send the message. Leave empty to send instantly.", - "title": "Send Datetime", - "format": "date-time", - "x-ms-visibility": "important" - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Message recipient address.", - "title": "Address", - "x-ms-visibility": "important" - }, - "Personalization": { - "type": "object", - "properties": {}, - "description": "Any placeholder values for the recipient as a simple key:value object.", - "title": "Personalization" - } - }, - "required": [ - "Address" - ] - }, - "description": "Recipients" - }, - "AttachmentUri": { - "type": "string", - "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", - "title": "Attachment Uri" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional.", - "title": "Customer Data" - }, - "AdMessage": { - "type": "boolean", - "description": "Optional overriding flag for marking the message as an ad message", - "title": "Ad Message" - }, - "DlrUrl": { - "type": "string", - "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", - "example": "https://api.company.com/Dlr", - "title": "Dlr Url" - } - }, - "required": [ - "Sender", - "Protocol", - "Content", - "Recipients" - ] - } + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } } - ] + }, + "description": "Recipients" + } + } } + } }, - "/messages/discussion/reply": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "MessageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "MessagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "Id": { - "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } - } - }, - "description": "Recipients" - }, - "ThreadId": { - "type": "string", - "description": "Identifier of Thread that the message was sent to." - } - } - } - } + "summary": "Send Reply Message", + "description": "Send a Replymessage to recipients.", + "x-ms-visibility": "important", + "operationId": "SendReplyMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "ParentMessageId", + "in": "path", + "required": true, + "type": "string", + "description": "The Parent message Id to reply to.", + "x-ms-summary": "ParentMessage Id", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single" + }, + { + "name": "Customer-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" }, - "summary": "Send Discussion Reply Message", - "description": "Send a Discussion Reply Message to recipients.", - "x-ms-visibility": "important", - "operationId": "SendDiscussionReplyMessage", - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "CustomerId", - "in": "header", - "required": true, - "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "ThreadId": { - "type": "string", - "description": "Id of the existing Thread to reply to.", - "title": "Thread Id", - "x-ms-visibility": "important" - }, - "Content": { - "type": "string", - "description": "The content of the message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional.", - "title": "Customer Data" - } - }, - "required": [ - "ThreadId", - "Content" - ] - } - } - ] + "ServiceType": "OneWay", + "AllowReplyMessage": true + } } - }, - "/service/{Service}/pipelines/actions": { - "x-ms-notification-content": { - "schema": { - "type": "object", - "properties": { - "sender": { - "type": "string", - "description": "The message sender.", - "title": "Message Sender", - "x-ms-visibility": "important" - }, - "recipient": { - "type": "string", - "description": "The recipient of the message.", - "title": "Message Recipient", - "x-ms-visibility": "important" - }, - "content": { - "type": "string", - "description": "The content of the received message.", - "title": "Message Content", - "x-ms-visibility": "important" - }, - "timestamp": { - "type": "string", - "description": "The timestamp of the message.", - "title": "Message Timestamp", - "x-ms-visibility": "important", - "format": "date-time" - }, - "protocol": { - "type": "string", - "description": "The protocol of the received message.", - "title": "Message Protocol", - "x-ms-visibility": "important" - }, - "attachments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The filename of the attachment.", - "title": "Attachment Filename", - "x-ms-visibility": "important" - }, - "mimeType": { - "type": "string", - "description": "The mime type of the attachment.", - "title": "Attachment Mime Type", - "x-ms-visibility": "important" - }, - "resourceLocation": { - "type": "string", - "description": "The attachment resource location.", - "title": "Attachment Resource Location", - "x-ms-visibility": "important" - } - } - }, - "description": "attachments" - }, - "messageId": { - "type": "string", - "description": "The unique message Id of the received message.", - "title": "Message Id", - "x-ms-visibility": "important" - } - } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "Sender": { + "type": "string", + "description": "The sender of the message, can be alphanumeric, long code or short code (restrictions apply).", + "title": "Message Sender", + "x-ms-visibility": "important" }, - "description": "New message callback response" - }, - "post": { - "responses": { - "201": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "ActionId" - } - } - } - } + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" }, - "consumes": [ - "application/json" - ], - "operationId": "NewMessage", - "summary": "New Message", - "description": "When a new message arrives to a 2-Way service.", - "x-ms-trigger": "single", - "parameters": [ - { - "name": "Customer", - "in": "header", - "required": true, - "type": "string", - "description": "The Customer to use.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service", - "in": "path", - "required": true, + "Protocol": { + "type": "string", + "description": "The protocol to use for sending the message.", + "title": "Message Protocol", + "default": "SMS", + "x-ms-visibility": "important", + "enum": [ + "SMS" + ] + }, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime", + "format": "date-time", + "x-ms-visibility": "important" + }, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "description": "The 2-Way service to use.", - "x-ms-summary": "Service", - "x-ms-url-encoding": "single", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer" - }, - "ServiceType": "TwoWay" - } - } + "description": "Message recipient address.", + "title": "Address", + "x-ms-visibility": "important" + }, + "Personalization": { + "type": "object", + "properties": {}, + "description": "Any placeholder values for the recipient as a simple key:value object.", + "title": "Personalization" + } }, - { - "name": "Create webhook request body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The action name.", - "title": "Action Name", - "x-ms-visibility": "internal", - "default": "PowerAutomate (Auto Created Webhook)" - }, - "actionType": { - "type": "string", - "description": "The type of action to create.", - "title": "Action Type", - "x-ms-visibility": "internal", - "default": "HttpRequest" - }, - "description": { - "type": "string", - "description": "The action description.", - "title": "Action Description", - "x-ms-visibility": "internal", - "default": "PowerAutomate auto-created webhook. Please don´t modify. Will be removed by PowerAutomate , when the Flow/Logic App is disabled or removed" - }, - "options": { - "type": "object", - "properties": { - "endpointUrl": { - "type": "string", - "description": "Webhook callback url.", - "title": "Endpoint Url", - "x-ms-visibility": "internal", - "x-ms-notification-url": true - }, - "httpVerb": { - "type": "string", - "description": "The http method to use for creating the webhook.", - "title": "Http Method", - "x-ms-visibility": "internal", - "default": "POST" - } - }, - "description": "options", - "required": [ - "endpointUrl", - "httpVerb" - ] - } - }, - "required": [ - "actionType", - "description", - "name", - "options" - ] - } - } - ] + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "AttachmentUri": { + "type": "string", + "description": "Attachment Uri to be used when sending WhatsApp message that contains an attachment.", + "title": "Attachment Uri" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + }, + "AdMessage": { + "type": "boolean", + "description": "Optional overriding flag for marking the message as an ad message", + "title": "Ad Message" + }, + "DlrUrl": { + "type": "string", + "description": "Url for Delivery status callback via http-get. You may add querystring values to url, they will be preserved.", + "example": "https://api.company.com/Dlr", + "title": "Dlr Url" + } + }, + "required": [ + "Sender", + "Protocol", + "Content", + "Recipients" + ] } - }, - "/services/{Customer-Id}": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "Service Identifier.", - "title": "Service Id" - }, - "name": { - "type": "string", - "description": "", - "title": "Service Name" - } - } - } - } - } + } + ] + } + }, + "/messages/discussion/reply": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "MessageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" + }, + "MessagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" }, - "summary": "Get Customer Services", - "description": "Get a specific Customer's services.", - "operationId": "GetCustomerServices", - "x-ms-visibility": "internal", - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "required": true, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "x-ms-summary": "Customer", - "x-ms-url-encoding": "single", - "description": "The Customer to use for getting services." - }, - { - "name": "ServiceType", - "in": "header", - "required": true, + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "Id": { "type": "string", - "default": "OneWay", - "x-ms-visibility": "internal", - "x-ms-summary": "Service Type", - "description": "Type of service to fetch." - }, - { - "name": "AllowReplyMessage", - "in": "header", - "required": false, - "type": "boolean", - "x-ms-visibility": "internal", - "x-ms-summary": "Allow Reply Message", - "description": "Filter by services that support reply messages." + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } } - ] + }, + "description": "Recipients" + }, + "ThreadId": { + "type": "string", + "description": "Identifier of Thread that the message was sent to." + } + } } + } }, - "/pipelines/{Pipeline-Id}/actions/{Action-Id}": { - "delete": { - "responses": { - "204": { - "description": "default", - "schema": {} - } + "summary": "Send Discussion Reply Message", + "description": "Send a Discussion Reply Message to recipients.", + "x-ms-visibility": "important", + "operationId": "SendDiscussionReplyMessage", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "CustomerId", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "ThreadId": { + "type": "string", + "description": "Id of the existing Thread to reply to.", + "title": "Thread Id", + "x-ms-visibility": "important" }, - "summary": "Delete webhook", - "description": "Action used to delete the web hook created by the NewMessage trigger.", - "operationId": "DeleteTrigger", - "parameters": [ - { - "name": "Pipeline-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Pipeline Id", - "x-ms-url-encoding": "single", - "description": "Identifier of the action pipeline." - }, - { - "name": "Action-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-summary": "Action Id", - "x-ms-url-encoding": "single", - "description": "Identifier of the two-way service pipeline-action to delete." - } - ], - "x-ms-visibility": "internal" + "Content": { + "type": "string", + "description": "The content of the message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + } + }, + "required": [ + "ThreadId", + "Content" + ] } + } + ] + } + }, + "/service/{Service}/pipelines/actions": { + "x-ms-notification-content": { + "schema": { + "type": "object", + "properties": { + "sender": { + "type": "string", + "description": "The message sender.", + "title": "Message Sender", + "x-ms-visibility": "important" + }, + "recipient": { + "type": "string", + "description": "The recipient of the message.", + "title": "Message Recipient", + "x-ms-visibility": "important" + }, + "content": { + "type": "string", + "description": "The content of the received message.", + "title": "Message Content", + "x-ms-visibility": "important" + }, + "timestamp": { + "type": "string", + "description": "The timestamp of the message.", + "title": "Message Timestamp", + "x-ms-visibility": "important", + "format": "date-time" + }, + "protocol": { + "type": "string", + "description": "The protocol of the received message.", + "title": "Message Protocol", + "x-ms-visibility": "important" + }, + "attachments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The filename of the attachment.", + "title": "Attachment Filename", + "x-ms-visibility": "important" + }, + "mimeType": { + "type": "string", + "description": "The mime type of the attachment.", + "title": "Attachment Mime Type", + "x-ms-visibility": "important" + }, + "resourceLocation": { + "type": "string", + "description": "The attachment resource location.", + "title": "Attachment Resource Location", + "x-ms-visibility": "important" + } + } + }, + "description": "attachments" + }, + "messageId": { + "type": "string", + "description": "The unique message Id of the received message.", + "title": "Message Id", + "x-ms-visibility": "important" + } + } }, - "/whatsapp/templates/{Customer-Id}": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "The Template name.", - "title": "Template Name", - "x-ms-visibility": "internal" - }, - "displayName": { - "type": "string", - "description": "The template Displayname.", - "title": "Displayname" - }, - "extensionParameters": { - "type": "object", - "properties": { - "rawContent": { - "type": "string", - "description": "The Templace content.", - "title": "Template Content", - "x-ms-visibility": "internal" - } - } - } - } - } - } - } + "description": "New message callback response" + }, + "post": { + "responses": { + "201": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "ActionId" + } + } + } + } + }, + "consumes": [ + "application/json" + ], + "operationId": "NewMessage", + "summary": "New Message", + "description": "When a new message arrives to a 2-Way service.", + "x-ms-trigger": "single", + "parameters": [ + { + "name": "Customer", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service", + "in": "path", + "required": true, + "type": "string", + "description": "The 2-Way service to use.", + "x-ms-summary": "Service", + "x-ms-url-encoding": "single", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer" }, - "operationId": "GetCustomerWhatsAppTemplates", - "summary": "Get Customer WhatsApp Templates", - "description": "Get the selected Customer's WhatsApp templates.", - "x-ms-visibility": "internal", - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "x-ms-url-encoding": "single", - "required": true, - "type": "string" + "ServiceType": "TwoWay" + } + } + }, + { + "name": "Create webhook request body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The action name.", + "title": "Action Name", + "x-ms-visibility": "internal", + "default": "PowerAutomate (Auto Created Webhook)" + }, + "actionType": { + "type": "string", + "description": "The type of action to create.", + "title": "Action Type", + "x-ms-visibility": "internal", + "default": "HttpRequest" + }, + "description": { + "type": "string", + "description": "The action description.", + "title": "Action Description", + "x-ms-visibility": "internal", + "default": "PowerAutomate auto-created webhook. Please don´t modify. Will be removed by PowerAutomate , when the Flow/Logic App is disabled or removed" + }, + "options": { + "type": "object", + "properties": { + "endpointUrl": { + "type": "string", + "description": "Webhook callback url.", + "title": "Endpoint Url", + "x-ms-visibility": "internal", + "x-ms-notification-url": true }, - { - "name": "TemplateId", - "in": "query", - "required": false, - "type": "string" + "httpVerb": { + "type": "string", + "description": "The http method to use for creating the webhook.", + "title": "Http Method", + "x-ms-visibility": "internal", + "default": "POST" } - ] + }, + "description": "options", + "required": [ + "endpointUrl", + "httpVerb" + ] + } + }, + "required": [ + "actionType", + "description", + "name", + "options" + ] } + } + ] + } + }, + "/services/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Service Identifier.", + "title": "Service Id" + }, + "name": { + "type": "string", + "description": "", + "title": "Service Name" + } + } + } + } + } }, - "/whatsapp/templates/{Customer-Id}/{IdentityNumber}": { - "post": { - "responses": { - "default": { - "description": "default", - "schema": {} - } - }, - "operationId": "CreateWhatsappTemplate", - "summary": "Create WhatsApp template", - "description": "Create a new WhatsApp template.", - "consumes": [ - "application/json" - ], - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "required": true, - "type": "string", - "x-ms-visibility": "important", - "x-ms-url-encoding": "single", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - }, - "x-ms-summary": "Customer", - "description": "The Customer to create the Template for." - }, - { - "name": "IdentityNumber", - "in": "path", - "required": true, + "summary": "Get Customer Services", + "description": "Get a specific Customer's services.", + "operationId": "GetCustomerServices", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Customer", + "x-ms-url-encoding": "single", + "description": "The Customer to use for getting services." + }, + { + "name": "ServiceType", + "in": "header", + "required": true, + "type": "string", + "default": "OneWay", + "x-ms-visibility": "internal", + "x-ms-summary": "Service Type", + "description": "Type of service to fetch." + }, + { + "name": "AllowReplyMessage", + "in": "header", + "required": false, + "type": "boolean", + "x-ms-visibility": "internal", + "x-ms-summary": "Allow Reply Message", + "description": "Filter by services that support reply messages." + } + ] + } + }, + "/pipelines/{Pipeline-Id}/actions/{Action-Id}": { + "delete": { + "responses": { + "204": { + "description": "Webhook deleted" + } + }, + "summary": "Delete webhook", + "description": "Action used to delete the web hook created by the NewMessage trigger.", + "operationId": "DeleteTrigger", + "parameters": [ + { + "name": "Pipeline-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Pipeline Id", + "x-ms-url-encoding": "single", + "description": "Identifier of the action pipeline." + }, + { + "name": "Action-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Action Id", + "x-ms-url-encoding": "single", + "description": "Identifier of the two-way service pipeline-action to delete." + } + ], + "x-ms-visibility": "internal" + } + }, + "/whatsapp/templates/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "The Template name.", + "title": "Template Name", + "x-ms-visibility": "internal" + }, + "displayName": { + "type": "string", + "description": "The template Displayname.", + "title": "Displayname" + }, + "extensionParameters": { + "type": "object", + "properties": { + "rawContent": { "type": "string", - "x-ms-visibility": "important", - "x-ms-url-encoding": "single", - "x-ms-dynamic-values": { - "operationId": "GetCustomerWhatsappIdentities", - "value-path": "inputSource/address", - "value-title": "inputSource/address", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - } - } - }, - "description": "WhatsApp IdentityNumber used for the template.", - "x-ms-summary": "IdentityNumber" - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "DisplayName": { - "type": "string", - "description": "Template Displayname.", - "maxLength": 100, - "title": "Displayname" - }, - "RawContent": { - "type": "string", - "description": "Template content.", - "title": "Content" - }, - "Category": { - "type": "string", - "description": "WhatsApp template category.", - "title": "Template Category", - "enum": [ - "Account Update", - "Alert Update", - "Appointment Update", - "Issue Resolution", - "Payment Update", - "Personal Finance Update", - "Reservation Update", - "Shipping Update", - "Ticket Update", - "Transportation Update" - ] - }, - "Language": { - "type": "string", - "description": "2-character code for template language.", - "title": "Template Language" - }, - "Buttons": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Type": { - "type": "string", - "description": "Type of Button.", - "title": "Button Type", - "enum": [ - "Call", - "QuickReply", - "Url" - ] - }, - "Label": { - "type": "string", - "description": "Button Label.", - "title": "Button Label" - }, - "Data": { - "type": "string", - "description": "Button data. Url (Url), phone number (Call) or text (QuickReply). Max length is 2000 for Url, and 20 for phone number and text.", - "title": "Button Data" - } - } - }, - "description": "WhatsApp template Buttons." - }, - "AttachmentUrl": { - "type": "string", - "description": "URL to an example attachment.", - "title": "Attachment Url" - } - }, - "required": [ - "DisplayName", - "Category", - "Language", - "RawContent" - ] - } + "description": "The Templace content.", + "title": "Template Content", + "x-ms-visibility": "internal" + } } - ] + } + } + } } + } }, - "/messages/templates/whatsapp": { - "post": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Newly created message's identifier.", - "title": "Message Id" - }, - "messagePartCount": { - "type": "integer", - "format": "int32", - "description": "Approximated number of message parts for this message.", - "title": "Message Part Count" - }, - "recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "address": { - "type": "string", - "description": "Recipient address (phone number/email/user id etc.).", - "title": "Recipient Address" - }, - "id": { - "type": "string", - "description": "Recipient identifier used for receiving delivery status information.", - "title": "Recipient Id" - } - } - }, - "description": "recipients" - } - } - } - } + "operationId": "GetCustomerWhatsAppTemplates", + "summary": "Get Customer WhatsApp Templates", + "description": "Get the selected Customer's WhatsApp templates.", + "x-ms-visibility": "internal", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "x-ms-url-encoding": "single", + "required": true, + "type": "string" + }, + { + "name": "TemplateId", + "in": "query", + "required": false, + "type": "string" + } + ] + } + }, + "/whatsapp/templates/{Customer-Id}/{IdentityNumber}": { + "post": { + "responses": { + "204": { + "description": "WhatsApp template created" + } + }, + "operationId": "CreateWhatsappTemplate", + "summary": "Create WhatsApp template", + "description": "Create a new WhatsApp template.", + "consumes": [ + "application/json" + ], + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + }, + "x-ms-summary": "Customer", + "description": "The Customer to create the Template for." + }, + { + "name": "IdentityNumber", + "in": "path", + "required": true, + "type": "string", + "x-ms-visibility": "important", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetCustomerWhatsappIdentities", + "value-path": "inputSource/address", + "value-title": "inputSource/address", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + } + } + }, + "description": "WhatsApp IdentityNumber used for the template.", + "x-ms-summary": "IdentityNumber" + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "DisplayName": { + "type": "string", + "description": "Template Displayname.", + "maxLength": 100, + "title": "Displayname" + }, + "RawContent": { + "type": "string", + "description": "Template content.", + "title": "Content" + }, + "Category": { + "type": "string", + "description": "WhatsApp template category.", + "title": "Template Category", + "enum": [ + "Account Update", + "Alert Update", + "Appointment Update", + "Issue Resolution", + "Payment Update", + "Personal Finance Update", + "Reservation Update", + "Shipping Update", + "Ticket Update", + "Transportation Update" + ] + }, + "Language": { + "type": "string", + "description": "2-character code for template language.", + "title": "Template Language" }, - "consumes": [ - "application/json" - ], - "operationId": "SendWhatsappTemplateMessage", - "x-ms-visibility": "important", - "summary": "Send WhatsApp Message", - "description": "Send WhatsApp template message.", - "parameters": [ - { - "name": "Customer-Id", - "in": "header", - "required": true, + "Buttons": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Type": { "type": "string", - "description": "The Customer to use for sending.", - "x-ms-summary": "Customer", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - } - }, - { - "name": "Service-Id", - "in": "header", - "required": true, + "description": "Type of Button.", + "title": "Button Type", + "enum": [ + "Call", + "QuickReply", + "Url" + ] + }, + "Label": { "type": "string", - "description": "The Service to use for sending.", - "x-ms-summary": "Service", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerServices", - "value-path": "id", - "value-title": "name", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - }, - "ServiceType": "OneWay", - "AllowReplyMessage": false - } - } - }, - { - "name": "Request Body", - "in": "body", - "required": true, - "schema": { - "type": "object", - "properties": { - "TemplateName": { - "type": "string", - "description": "The Template to use for sending.", - "title": "WhatsApp Template", - "x-ms-visibility": "important", - "x-ms-dynamic-values": { - "operationId": "GetCustomerWhatsAppTemplates", - "value-path": "id", - "value-title": "extensionParameters/rawContent", - "parameters": { - "Customer-Id": { - "parameter": "Customer-Id" - } - } - } - }, - "Recipients": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Address": { - "type": "string", - "description": "Message recipient address.", - "title": "Address" - } - }, - "required": [ - "Address" - ] - }, - "description": "Recipients" - }, - "BodyParameters": { - "type": "array", - "items": { - "type": "string", - "description": "Array of string parameters to be used in the body of the selected template.", - "title": "Template Body Parameters", - "x-ms-visibility": "important" - }, - "description": "BodyParameters" - }, - "HeaderParameters": { - "type": "array", - "items": { - "type": "string", - "description": "Array of string parameters to be used in the header of the selected template.", - "title": "Template Header Parameters" - }, - "description": "HeaderParameters" - }, - "Buttons": { - "type": "array", - "items": { - "type": "object", - "properties": { - "Type": { - "type": "string", - "description": "The button type. Only one type per template, may contain multiple of the same type.", - "title": "Type", - "enum": [ - "Call", - "QuickReply", - "Url" - ] - }, - "Data": { - "type": "string", - "description": "The text of the button.", - "title": "Text" - } - } - }, - "description": "Buttons" - }, - "SendDateTime": { - "type": "string", - "description": "The date and time to send the message. Leave empty to send instantly.", - "title": "Send Datetime" - }, - "AttachmentUri": { - "type": "string", - "description": "The Attachment Uri if the template contains an attachment.", - "title": "Attachment Uri" - }, - "UseSmsFallback": { - "type": "boolean", - "description": "Should SMS be used as fallback.", - "title": "Use SMS Fallback" - }, - "DlrUrl": { - "type": "string", - "description": "Delivery report Url that will recieve a callback when the sendprocess completes.", - "title": "Dlr Url" - }, - "CustomerData": { - "type": "string", - "maxLength": 255, - "description": "Billing/grouping data for this message, optional.", - "title": "Customer Data" - } - }, - "required": [ - "TemplateName", - "Recipients", - "BodyParameters" - ] - } + "description": "Button Label.", + "title": "Button Label" + }, + "Data": { + "type": "string", + "description": "Button data. Url (Url), phone number (Call) or text (QuickReply). Max length is 2000 for Url, and 20 for phone number and text.", + "title": "Button Data" + } } - ] + }, + "description": "WhatsApp template Buttons." + }, + "AttachmentUrl": { + "type": "string", + "description": "URL to an example attachment.", + "title": "Attachment Url" + } + }, + "required": [ + "DisplayName", + "Category", + "Language", + "RawContent" + ] } - }, - "/whatsapp/identities/{Customer-Id}": { - "get": { - "responses": { - "200": { - "description": "default", - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "inputSource": { - "type": "object", - "properties": { - "address": { - "type": "string", - "description": "WhatsApp identity number.", - "title": "Identity Number" - } - }, - "description": "inputSource" - } - } - } - } - } + } + ] + } + }, + "/messages/templates/whatsapp": { + "post": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Newly created message's identifier.", + "title": "Message Id" }, - "operationId": "GetCustomerWhatsappIdentities", - "x-ms-visibility": "internal", - "summary": "Get Customer WhatsApp Identities", - "description": "Gets the Customers available WhatsApp identities.", - "parameters": [ - { - "name": "Customer-Id", - "in": "path", - "required": true, + "messagePartCount": { + "type": "integer", + "format": "int32", + "description": "Approximated number of message parts for this message.", + "title": "Message Part Count" + }, + "recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "address": { "type": "string", - "x-ms-url-encoding": "single", - "x-ms-dynamic-values": { - "operationId": "GetUserCustomers", - "value-path": "customerId", - "value-collection": "customerUsers", - "value-title": "customerName" - }, - "x-ms-visibility": "important" + "description": "Recipient address (phone number/email/user id etc.).", + "title": "Recipient Address" + }, + "id": { + "type": "string", + "description": "Recipient identifier used for receiving delivery status information.", + "title": "Recipient Id" + } } - ] + }, + "description": "recipients" + } + } } + } }, - "/whatsapp/opt-in/sender/{Sender}/recipient/{Recipient}": { - "delete": { - "responses": { - "204": { - "description": "default", - "schema": {} + "consumes": [ + "application/json" + ], + "operationId": "SendWhatsappTemplateMessage", + "x-ms-visibility": "important", + "summary": "Send WhatsApp Message", + "description": "Send WhatsApp template message.", + "parameters": [ + { + "name": "Customer-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Customer to use for sending.", + "x-ms-summary": "Customer", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + } + }, + { + "name": "Service-Id", + "in": "header", + "required": true, + "type": "string", + "description": "The Service to use for sending.", + "x-ms-summary": "Service", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerServices", + "value-path": "id", + "value-title": "name", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + }, + "ServiceType": "OneWay", + "AllowReplyMessage": false + } + } + }, + { + "name": "Request Body", + "in": "body", + "required": true, + "schema": { + "type": "object", + "properties": { + "TemplateName": { + "type": "string", + "description": "The Template to use for sending.", + "title": "WhatsApp Template", + "x-ms-visibility": "important", + "x-ms-dynamic-values": { + "operationId": "GetCustomerWhatsAppTemplates", + "value-path": "id", + "value-title": "extensionParameters/rawContent", + "parameters": { + "Customer-Id": { + "parameter": "Customer-Id" + } } + } }, - "operationId": "WhatsAppOptOut", - "x-ms-visibility": "important", - "summary": "WhatsApp Opt Out", - "description": "WhatsApp Opt Out for sender and recipient.", - "parameters": [ - { - "name": "Sender", - "in": "path", - "required": true, + "Recipients": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Address": { "type": "string", - "x-ms-summary": "Sender address", - "x-ms-url-encoding": "single", - "description": "Registered Whatsapp identity number to opt-out from." + "description": "Message recipient address.", + "title": "Address" + } }, - { - "name": "Recipient", - "in": "path", - "required": true, + "required": [ + "Address" + ] + }, + "description": "Recipients" + }, + "BodyParameters": { + "type": "array", + "items": { + "type": "string", + "description": "Array of string parameters to be used in the body of the selected template.", + "title": "Template Body Parameters", + "x-ms-visibility": "important" + }, + "description": "BodyParameters" + }, + "HeaderParameters": { + "type": "array", + "items": { + "type": "string", + "description": "Array of string parameters to be used in the header of the selected template.", + "title": "Template Header Parameters" + }, + "description": "HeaderParameters" + }, + "Buttons": { + "type": "array", + "items": { + "type": "object", + "properties": { + "Type": { "type": "string", - "description": "Recipent number to remove from opt-in.", - "x-ms-url-encoding": "single", - "x-ms-summary": "Recipient address" - } - ] - }, - "post": { - "responses": { - "204": { - "description": "default", - "schema": {} + "description": "The button type. Only one type per template, may contain multiple of the same type.", + "title": "Type", + "enum": [ + "Call", + "QuickReply", + "Url" + ] + }, + "Data": { + "type": "string", + "description": "The text of the button.", + "title": "Text" + } } + }, + "description": "Buttons" + }, + "SendDateTime": { + "type": "string", + "description": "The date and time to send the message. Leave empty to send instantly.", + "title": "Send Datetime" }, - "operationId": "WhatsAppOptIn", - "x-ms-visibility": "important", - "summary": "WhatsApp Opt In", - "description": "WhatsApp Opt In for sender and recipient.", - "parameters": [ - { - "name": "Sender", - "in": "path", - "required": true, + "AttachmentUri": { + "type": "string", + "description": "The Attachment Uri if the template contains an attachment.", + "title": "Attachment Uri" + }, + "UseSmsFallback": { + "type": "boolean", + "description": "Should SMS be used as fallback.", + "title": "Use SMS Fallback" + }, + "DlrUrl": { + "type": "string", + "description": "Delivery report Url that will recieve a callback when the sendprocess completes.", + "title": "Dlr Url" + }, + "CustomerData": { + "type": "string", + "maxLength": 255, + "description": "Billing/grouping data for this message, optional.", + "title": "Customer Data" + } + }, + "required": [ + "TemplateName", + "Recipients", + "BodyParameters" + ] + } + } + ] + } + }, + "/whatsapp/identities/{Customer-Id}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "inputSource": { + "type": "object", + "properties": { + "address": { "type": "string", - "x-ms-summary": "Sender address", - "x-ms-url-encoding": "single", - "description": "Registered Whatsapp identity number to opt-in to." + "description": "WhatsApp identity number.", + "title": "Identity Number" + } }, - { - "name": "Recipient", - "in": "path", - "required": true, - "type": "string", - "x-ms-url-encoding": "single", - "description": "Recipient number to opt-in.", - "x-ms-summary": "Recipient address" - } - ] + "description": "inputSource" + } + } + } } - } + } + }, + "operationId": "GetCustomerWhatsappIdentities", + "x-ms-visibility": "internal", + "summary": "Get Customer WhatsApp Identities", + "description": "Gets the Customers available WhatsApp identities.", + "parameters": [ + { + "name": "Customer-Id", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "x-ms-dynamic-values": { + "operationId": "GetUserCustomers", + "value-path": "customerId", + "value-collection": "customerUsers", + "value-title": "customerName" + }, + "x-ms-visibility": "important" + } + ] + } }, - "x-ms-connector-metadata": [ - { - "propertyName": "Website", - "propertyValue": "https://www.arenainteractive.fi" + "/whatsapp/opt-in/sender/{Sender}/recipient/{Recipient}": { + "delete": { + "responses": { + "204": { + "description": "WhatsApp OptIn deleted" + } }, - { - "propertyName": "Privacy policy", - "propertyValue": "https://www.arenainteractive.fi/privacypolicy" + "operationId": "WhatsAppOptOut", + "x-ms-visibility": "important", + "summary": "WhatsApp Opt Out", + "description": "WhatsApp Opt Out for sender and recipient.", + "parameters": [ + { + "name": "Sender", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Sender address", + "x-ms-url-encoding": "single", + "description": "Registered Whatsapp identity number to opt-out from." + }, + { + "name": "Recipient", + "in": "path", + "required": true, + "type": "string", + "description": "Recipent number to remove from opt-in.", + "x-ms-url-encoding": "single", + "x-ms-summary": "Recipient address" + } + ] + }, + "post": { + "responses": { + "204": { + "description": "WhatsApp OptIn created" + } }, - { - "propertyName": "Categories", - "propertyValue": "Communication;Collaboration" - } - ], - "definitions": {}, - "parameters": {}, - "responses": {}, - "securityDefinitions": { - "oauth2_auth": { - "type": "oauth2", - "flow": "accessCode", - "authorizationUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize", - "tokenUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token", - "scopes": { - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply": "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" - } - } + "operationId": "WhatsAppOptIn", + "x-ms-visibility": "important", + "summary": "WhatsApp Opt In", + "description": "WhatsApp Opt In for sender and recipient.", + "parameters": [ + { + "name": "Sender", + "in": "path", + "required": true, + "type": "string", + "x-ms-summary": "Sender address", + "x-ms-url-encoding": "single", + "description": "Registered Whatsapp identity number to opt-in to." + }, + { + "name": "Recipient", + "in": "path", + "required": true, + "type": "string", + "x-ms-url-encoding": "single", + "description": "Recipient number to opt-in.", + "x-ms-summary": "Recipient address" + } + ] + } + } + }, + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://www.arenainteractive.fi" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://www.arenainteractive.fi/privacypolicy" }, - "security": [ - { - "oauth2_auth": [ - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" - ] - } - ], - "tags": [] + { + "propertyName": "Categories", + "propertyValue": "Communication;Collaboration" + } + ], + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "oauth2_auth": { + "type": "oauth2", + "flow": "accessCode", + "authorizationUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize", + "tokenUrl": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token", + "scopes": { + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply": "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + } + } + }, + "security": [ + { + "oauth2_auth": [ + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + ] + } + ], + "tags": [] } \ No newline at end of file diff --git a/certified-connectors/SmartDialog/apiProperties.json b/certified-connectors/SmartDialog/apiProperties.json index 4ca16eae50..7a3c5ed54a 100644 --- a/certified-connectors/SmartDialog/apiProperties.json +++ b/certified-connectors/SmartDialog/apiProperties.json @@ -1,36 +1,36 @@ { - "properties": { - "connectionParameters": { - "token": { - "type": "oauthSetting", - "oAuthSettings": { - "identityProvider": "oauth2", - "clientId": "", - "scopes": [ - "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" - ], - "redirectMode": "Global", - "redirectUrl": "https://global.consent.azure-apim.net/redirect", - "properties": { - "IsFirstParty": "False" - }, - "customParameters": { - "authorizationUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize" - }, - "tokenUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" - }, - "refreshUrl": { - "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" - } - } - } + "properties": { + "connectionParameters": { + "token": { + "type": "oauthSetting", + "oAuthSettings": { + "identityProvider": "oauth2", + "clientId": "", + "scopes": [ + "offline_access https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Gateway.Send https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Customer.Services https://arenafi.onmicrosoft.com/smartdialog-integrations-api/User.Customers https://arenafi.onmicrosoft.com/smartdialog-integrations-api/TwoWay.Management https://arenafi.onmicrosoft.com/smartdialog-integrations-api/WhatsApp https://arenafi.onmicrosoft.com/smartdialog-integrations-api/Discussion.Reply" + ], + "redirectMode": "Global", + "redirectUrl": "https://global.consent.azure-apim.net/redirect", + "properties": { + "IsFirstParty": "False" + }, + "customParameters": { + "authorizationUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/authorize" + }, + "tokenUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" + }, + "refreshUrl": { + "value": "https://arenafi.b2clogin.com/arenafi.onmicrosoft.com/B2C_1A_SmartDialog_Integrations/oauth2/v2.0/token" } - }, - "iconBrandColor": "#254A8E", - "capabilities": [], - "publisher": "Arena Interactive Oy", - "stackOwner": "Arena Interactive Oy" - } + } + } + } + }, + "iconBrandColor": "#254A8E", + "capabilities": [], + "publisher": "Arena Interactive Oy", + "stackOwner": "Arena Interactive Oy" + } } \ No newline at end of file